| | |
| | | return modelGeo.post("/entitydb/list/canview", params); |
| | | } |
| | | |
| | | // export function getListCanview(params) { |
| | | // return modelGeo.post("/entitydb/list/canview", params); |
| | | // } |
| | | export function getmapConfig(params) { |
| | | return modelGeo.post("/entitydb/map/config", params); |
| | | } |
| | | export function getQueryEentity(params) { |
| | | return modelGeo.post("/entitydbdata/query/entity", params); |
| | | } |
| | | export function getSettingPublickey(params) { |
| | | return modelGeo.get("/setting/publickey", params); |
| | | } |
| | | export function getQueryEentity2() { |
| | | return modelGeo.post("/entitydbdata/query/entity?layerid=432a7d4f-b136-4649-91a3-52709db9c3ef&dbid=a02c1f922bd64a0ea5979dbebc60d337&geometry=%7B%22type%22%3A%22Polygon%22%2C%22coordinates%22%3A%5B%5B%5B120.26718884999998%2C14.807266503837244%5D%2C%5B120.26172124567293%2C14.805548890345191%5D%2C%5B120.2583422638269%2C14.80105218429488%5D%2C%5B120.25834249053803%2C14.795494078804275%5D%2C%5B120.26172161249924%2C14.790997581217345%5D%2C%5B120.26718884999998%2C14.789280096562752%5D%2C%5B120.2726560875007%2C14.790997581217345%5D%2C%5B120.27603520946194%2C14.795494078804275%5D%2C%5B120.27603543617307%2C14.80105218429488%5D%2C%5B120.27265645432705%2C14.805548890345191%5D%2C%5B120.26718884999998%2C14.807266503837244%5D%5D%5D%7D&returnCountOnly=true&token=15e972cfc0e24bf490ac57f9847cb3c2"); |
| | | } |
| | | |
| | | |
| | | // /entitydbdata/query/entity |
| | | |
| | |
| | | earthCtrl.userScene.flyTo(res); |
| | | }, |
| | | setPointToCrical(lon, lat, distance) { |
| | | const radius = distance ? distance : 100; |
| | | var point = turf.point([lon, lat]); |
| | | var buffered = turf.buffer(point, radius, { units: "miles", steps: 64 }); |
| | | var buffered = turf.circle([lon, lat], distance, { |
| | | units: "kilometers", |
| | | steps: 10, |
| | | properties: { foo: "bar" } |
| | | }); |
| | | console.log(buffered); |
| | | |
| | | const coord = buffered.geometry.coordinates[0]; |
| | | const std = coord.map((item) => { |
| | | const rs = turf.toMercator(turf.point(item)); |
| | | return rs.geometry.coordinates |
| | | }); |
| | | buffered.geometry.coordinates[0] =std |
| | | return buffered; |
| | | } |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import axios from "axios"; |
| | | import mapConfig from "./mapConfig"; |
| | | import * as turf from "@turf/turf"; |
| | | import mapServer from "./mapServer"; |
| | | import { getToken } from "../../../utils/auth"; |
| | | import modelLayer from "./modelLayer"; |
| | | import { |
| | | getPublickey, |
| | | getQueryEentity, |
| | | getSettingPublickey, |
| | | getQueryEentity2 |
| | | } from "../../../api/modelBase.js"; |
| | | import { nextTick } from "vue"; |
| | | import JSEncrypt from "jsencrypt"; |
| | | const layerJson = { |
| | | layerData: null, |
| | | url: null, |
| | | coord: null, |
| | | rectangularSensor: null, |
| | | init(url) { |
| | | this.url = url; |
| | | this.getJsonLayer(); |
| | | }, |
| | | getJsonLayer() { |
| | | const that = this; |
| | | Cesium.GeoJsonDataSource.load(this.url, { |
| | | stroke: Cesium.Color.fromCssColorString("#FFFFFF"), //å¤è¾¹å½¢æçº¿çé¢è² |
| | | fill: Cesium.Color.fromCssColorString("#FFFFFF"), //å¤è¾¹å½¢æçº¿çé¢è² |
| | | strokeWidth: 1, //å¤è¾¹å½¢æçº¿ 宽度 |
| | | clampToGround: true //å¤è¾¹å½¢æçº¿ åºå®å¨å°é¢ä¸true/false |
| | | }).then((dataSource) => { |
| | | const entities = dataSource.entities.values; |
| | | that.layerData = dataSource; |
| | | entities.map((item) => { |
| | | item.polygon.heightReference = |
| | | Cesium.HeightReference.RELATIVE_TO_GROUND; // è´´å° |
| | | item.polygon.height = 0; // è·å°é«åº¦0ç±³ |
| | | item.polygon.extrudedHeightReference = |
| | | Cesium.HeightReference.RELATIVE_TO_GROUND; //æä¼¸ |
| | | item.polygon.extrudedHeight = item.properties["ELEVATION"]; // æä¼¸é«åº¦ |
| | | var polyPositions = item.polygon.hierarchy.getValue().positions; |
| | | var polyCenter = Cesium.BoundingSphere.fromPoints(polyPositions).center; //ä¸å¿ç¹ |
| | | polyCenter = Cesium.Ellipsoid.WGS84.scaleToGeodeticSurface(polyCenter); |
| | | item.position = polyCenter; |
| | | if (item.id == "965") { |
| | | that.coord = { |
| | | lon: item.properties["lon"]._value, |
| | | lat: item.properties["lat"]._value |
| | | }; |
| | | } |
| | | item.label = { |
| | | text: "", |
| | | font: "500 20px Helvetica", |
| | | scale: 1, |
| | | style: Cesium.LabelStyle.FILL, |
| | | fillColor: Cesium.Color.WHITE, |
| | | |
| | | eyeOffset: new Cesium.Cartesian3( |
| | | 0.0, |
| | | item.polygon.extrudedHeight + 1, |
| | | -(item.polygon.extrudedHeight + 1) |
| | | ), |
| | | verticalOrigin: Cesium.VerticalOrigin.BOTTOM, |
| | | showBackground: true, |
| | | distanceDisplayCondition: new Cesium.DistanceDisplayCondition( |
| | | 50.0, |
| | | 500.0 |
| | | ), |
| | | backgroundColor: new Cesium.Color(26 / 255, 196 / 255, 228 / 255, 1.0) //èæ¯é¡è² |
| | | }; |
| | | }); |
| | | Viewer.dataSources.add(dataSource); |
| | | }); |
| | | }, |
| | | setQyeryData(res) { |
| | | this.setTitleSetRest(); |
| | | if (res.indexOf("æµ·åéæé") > -1) { |
| | | this.setQueryExtent2(); |
| | | } else if (res.indexOf("åäºç®æ ") > -1) { |
| | | this.setQueryByFiled("åäºç®æ ", "#409EFF", false); |
| | | } else if (res.indexOf("æ°å®
") > -1) { |
| | | this.setQueryByFiled("æ°å®
", "#808080", false); |
| | | } else if (res.indexOf("ç»æµç®æ ") > -1) { |
| | | this.setQueryByFiled("ç»æµç®æ ", "#FFFF00", true); |
| | | } else if (res.indexOf("å ¤ä¸°") > -1) { |
| | | // this.setQueryTF("SubicBayWeapon_wfs", "weapons", "å ¤ä¸°ç³»ç»"); |
| | | this.setQueryTF2("å ¤ä¸°ç³»ç»"); |
| | | } |
| | | }, |
| | | |
| | | getPublickey(res) { |
| | | const encrypt = new JSEncrypt(); |
| | | encrypt.setPublicKey(modelLayer.publickey + ""); |
| | | return encrypt.encrypt(res); |
| | | }, |
| | | setQueryTF2(name) { |
| | | const obj = "weaponname = '" + name + "'" + ""; |
| | | const filed = this.getPublickey(obj); |
| | | const layer = modelLayer.layers.filter((item) => { |
| | | if (item.name == "æ¦å¨ç¹") { |
| | | return item; |
| | | } |
| | | }); |
| | | if (layer.length <= 0) return; |
| | | getQueryEentity({ |
| | | token: getToken(), |
| | | start: 1, |
| | | count: 0, |
| | | containCount: true, |
| | | layerid: layer[0].id, |
| | | dbid: modelLayer.dbid, |
| | | where: filed |
| | | }).then((response) => { |
| | | if (response.code != 200) return; |
| | | const geom = response.data.items[0]; |
| | | const position = [geom._x, geom._y, 0]; |
| | | const cylinder = { |
| | | radius: 1000, //åå¾ |
| | | angle: 30, //æ«æè§åº¦ï¼å¯éï¼ |
| | | speed: 5, //åéï¼å¯éï¼ |
| | | stackPartitions: 80, //横åç½æ ¼æ°ï¼å¯éï¼ |
| | | slicePartitions: 80, //纵åç½æ ¼æ°ï¼å¯éï¼ |
| | | wallColor: "rgba(255,255,255,0)" //æ«æå¢é¢è²ï¼å¯éï¼ |
| | | }; |
| | | this.rectangularSensor = earthCtrl.factory.createRectangularSensor( |
| | | position, |
| | | cylinder |
| | | ); |
| | | Viewer.zoomTo(this.rectangularSensor.item); |
| | | }); |
| | | }, |
| | | setQueryByFiled(name, color, label) { |
| | | const obj = "targettype = '" + name + "'" + ""; |
| | | const filed = this.getPublickey(obj); |
| | | var objItem = mapServer.listData.filter((item) => { |
| | | if (item.type === "Tileset") { |
| | | return item; |
| | | } |
| | | }); |
| | | if (objItem.length <= 0) return; |
| | | var tileset = objItem[0]; |
| | | getQueryEentity({ |
| | | token: getToken(), |
| | | start: 1, |
| | | count: 0, |
| | | containCount: true, |
| | | layerid: tileset.layerId, |
| | | dbid: modelLayer.dbid, |
| | | where: filed |
| | | }).then((response) => { |
| | | if (response.code != 200) return; |
| | | var std = []; |
| | | const items = response.data.items; |
| | | items.map((item) => { |
| | | if (item.targettype == name) { |
| | | std.push(item.seid); |
| | | } |
| | | }); |
| | | nextTick(() => { |
| | | if (std.length <= 0) return; |
| | | this.setTilesetColorChange(tileset, std, color); |
| | | }); |
| | | }); |
| | | }, |
| | | setTitleSetRest() { |
| | | if (this.rectangularSensor) { |
| | | this.rectangularSensor.wall.forEach((wall) => { |
| | | Viewer.entities.remove(wall); |
| | | }); |
| | | Viewer.entities.remove(this.rectangularSensor.item); |
| | | this.rectangularSensor = null; |
| | | } |
| | | var objItem = mapServer.listData.filter((item) => { |
| | | if (item.type === "Tileset") { |
| | | return item; |
| | | } |
| | | }); |
| | | if (objItem.length <= 0) return; |
| | | var tileset = objItem[0].layer; |
| | | tileset.style = new Cesium.Cesium3DTileStyle({ |
| | | color: { |
| | | evaluateColor: (feature) => { |
| | | return new Cesium.Color.fromCssColorString("#FFFFFF"); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | setTilesetColorChange(model, ids, color) { |
| | | var tileset = model.layer; |
| | | tileset.style = new Cesium.Cesium3DTileStyle({ |
| | | color: { |
| | | evaluateColor: (feature) => { |
| | | const id = feature.getProperty("id"); |
| | | if (ids.indexOf(id) > -1) { |
| | | return new SmartEarth.Cesium.Color.fromCssColorString(color); |
| | | } else { |
| | | return new SmartEarth.Cesium.Color.fromCssColorString("#FFFFFF"); |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | getTileSet() { |
| | | var objItem = mapServer.listData.filter((item) => { |
| | | if (item.type === "Tileset") { |
| | | return item; |
| | | } |
| | | }); |
| | | if (objItem.length <= 0) { |
| | | return null; |
| | | } |
| | | return objItem[0]; |
| | | }, |
| | | setQueryExtent2() { |
| | | const tileset = this.getTileSet(); |
| | | if (!tileset) { |
| | | return; |
| | | } |
| | | const obj = "ejfl like '%空ååºå°%'"; |
| | | const filed = this.getPublickey(obj); |
| | | getQueryEentity({ |
| | | token: getToken(), |
| | | start: 1, |
| | | count: 0, |
| | | containCount: true, |
| | | layerid: tileset.layerId, |
| | | dbid: modelLayer.dbid, |
| | | where: filed |
| | | }).then((response) => { |
| | | if (response.code != 200) return; |
| | | const items = response.data.items[0]; |
| | | |
| | | this.getQueryGeomExtent(items, tileset.layerId); |
| | | }); |
| | | }, |
| | | getQueryGeomExtent(items, layerid) { |
| | | var geom = mapConfig.setPointToCrical(items.lon, items.lat, 1); |
| | | const token = getToken(); |
| | | const url = |
| | | config.modelBase.url + |
| | | config.modelBase.geo + |
| | | "/entitydbdata/query/entity"; |
| | | |
| | | axios |
| | | .post( |
| | | url, |
| | | { |
| | | layerid: layerid, |
| | | dbid: modelLayer.dbid, |
| | | geometry: JSON.stringify(geom.geometry), |
| | | returnCountOnly: true, |
| | | token: token |
| | | }, |
| | | { |
| | | headers: { |
| | | Authorization: token, |
| | | "Content-Type": "application/x-www-form-urlencoded" |
| | | // 'Cookie': "token=" + token, |
| | | // 'Token': token |
| | | } |
| | | } |
| | | ) |
| | | .then((response) => { |
| | | this.getLayerModelList(url, response.data.data, geom.geometry, layerid); |
| | | }); |
| | | }, |
| | | getLayerModelList(url, count, geom, layerid) { |
| | | const token = getToken(); |
| | | |
| | | axios |
| | | .post( |
| | | url, |
| | | { |
| | | token: token, |
| | | dbid: modelLayer.dbid, |
| | | layerid: layerid, |
| | | start: 1, |
| | | count: count, |
| | | containCount: true, |
| | | geometry: JSON.stringify(geom) |
| | | }, |
| | | { |
| | | headers: { |
| | | Authorization: token, |
| | | "Content-Type": "application/x-www-form-urlencoded" |
| | | } |
| | | } |
| | | ) |
| | | .then((response) => { |
| | | var std = []; |
| | | const items = response.data.data.items; |
| | | items.map((val) => { |
| | | std.push(val.seid); |
| | | }); |
| | | |
| | | nextTick(() => { |
| | | var objItem = mapServer.listData.filter((item) => { |
| | | if (item.type === "Tileset") { |
| | | return item; |
| | | } |
| | | }); |
| | | if (objItem.length <= 0) return; |
| | | var tileset = objItem[0]; |
| | | if (std.length <= 0) return; |
| | | this.setTilesetColorChange(tileset, std, "#FF0000"); |
| | | }); |
| | | }); |
| | | }, |
| | | setQueryExtent(res) { |
| | | const geom = mapConfig.setPointToCrical(res.lon, res.lat, 5000); |
| | | var arr = []; |
| | | const coord = geom.geometry.coordinates[0]; |
| | | coord.map((item) => { |
| | | if (arr.length == 0) { |
| | | arr = item; |
| | | } else { |
| | | arr = [...arr, ...item]; |
| | | } |
| | | }); |
| | | arr = arr.toString().replaceAll(",", " "); |
| | | this.getQuery(this.url, arr, this.layerData); |
| | | }, |
| | | getQuery(url, area, layer) { |
| | | const entity = layer.entities.values; |
| | | entity.filter((rs) => { |
| | | rs.polygon.material = new Cesium.Color.fromCssColorString("#FFFFFF"); |
| | | }); |
| | | axios |
| | | .get(url, { |
| | | params: { |
| | | version: "1.3.0", |
| | | request: "GetFeature", |
| | | typename: "GeoEntity", |
| | | propertyname: "*", |
| | | format: "json", |
| | | filter: `<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc"><ogc:Intersects><ogc:PropertyName /><gml:Polygon xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326"><gml:exterior><gml:LinearRing><gml:posList>${area}</gml:posList></gml:LinearRing></gml:exterior></gml:Polygon></ogc:Intersects></ogc:Filter>` |
| | | } |
| | | }) |
| | | .then((res) => { |
| | | const obj = res.data.features; |
| | | obj.filter((item) => { |
| | | entity.filter((rs) => { |
| | | if (item.id == rs.id) { |
| | | rs.polygon.material = Cesium.Color.RED; |
| | | } |
| | | }); |
| | | }); |
| | | }); |
| | | }, |
| | | setQueryTF(content, layer, name) { |
| | | const url = this.getQueryUrl(content, layer); |
| | | axios.get(url).then((res) => { |
| | | const data = res.data.features; |
| | | const obj = data.filter((item) => { |
| | | if (item.properties.weaponname == name) { |
| | | return item; |
| | | } |
| | | }); |
| | | if (obj.length <= 0) return; |
| | | var centroid = turf.centroid(obj[0]); |
| | | const geom = centroid.geometry.coordinates; |
| | | const position = [geom[0], geom[1], 0]; |
| | | const cylinder = { |
| | | radius: 1000, //åå¾ |
| | | angle: 30, //æ«æè§åº¦ï¼å¯éï¼ |
| | | speed: 5, //åéï¼å¯éï¼ |
| | | stackPartitions: 80, //横åç½æ ¼æ°ï¼å¯éï¼ |
| | | slicePartitions: 80, //纵åç½æ ¼æ°ï¼å¯éï¼ |
| | | wallColor: "rgba(255,255,255,0)" //æ«æå¢é¢è²ï¼å¯éï¼ |
| | | }; |
| | | const item = earthCtrl.factory.createRectangularSensor( |
| | | position, |
| | | cylinder |
| | | ); |
| | | Viewer.zoomTo(item.item); |
| | | }); |
| | | }, |
| | | getQueryUrl(content, layer) { |
| | | return ( |
| | | "https://cim.smartearth.cn/SEserver/wfsserver/" + |
| | | content + |
| | | "?version=1.1.0&request=GetFeature&format=json&typename=" + |
| | | layer |
| | | ); |
| | | } |
| | | }; |
| | | export default layerJson; |
| | |
| | | } |
| | | }, |
| | | addTileSetLayer(res) { |
| | | // const model = earthCtrl.factory.create3DTilesets({ |
| | | // url: res.url |
| | | // }); |
| | | // var model = Viewer.scene.primitives.add( |
| | | // new Cesium.Cesium3DTileset({ |
| | | // // url: res.url |
| | | // url:'https://cim.smartearth.cn/SEServer/c3dserver/WhiteBox/tileset.json' |
| | | // }) |
| | | // ); |
| | | const tileset = new Cesium.Cesium3DTileset({ |
| | | url: res.url |
| | | }); |
| | | earthCtrl.primitives.add(tileset); |
| | | |
| | | |
| | | Viewer.scene.primitives.add(tileset); |
| | | // const that = this; |
| | | // tileset.readyPromise.then((tileObj) => { |
| | | // tileObj.tileVisible.addEventListener((tile) => { |
| | | // if (Cesium.defined(tile.content)) { |
| | | // var featuresLength = tile.content.featuresLength; |
| | | // for (var i = 0; i < featuresLength; i++) { |
| | | // var feature = tile.content.getFeature(i); |
| | | // // console.log(feature.getProperty("id")); |
| | | // } |
| | | // } |
| | | // }); |
| | | // }); |
| | | this.listData.push({ |
| | | layer: tileset, |
| | | type: this.sourceType |
| | | type: this.sourceType, |
| | | layerId: res.id |
| | | }); |
| | | }, |
| | | traverseVisibleTiles() { |
| | |
| | | import modelLayer from "./modelLayer";
|
| | | import wfsConfig from "./wfsConfig";
|
| | | import mapInfo from "./mapInfo";
|
| | | import layerJson from "./mapJsonLayer";
|
| | |
|
| | | const mapViewer = {
|
| | | configTooles: null,
|
| | |
| | | sourceType: "arcgis",
|
| | | url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer"
|
| | | });
|
| | | // earthCtrl.factory.createTerrainLayer({
|
| | | // sourceType: "ctb",
|
| | | // url: "https://tiles1.geovisearth.com/base/v1/terrain?token=486dac3bec56d7d7c2a581c150be2bd937462f1e8f3bc9c78b5658b396122405"
|
| | | // });
|
| | |
|
| | | mapServer.addServer({
|
| | | sourceType: "tms",
|
| | | url: "http://192.168.11.41:9001/gisserver/tmsserver/SubicBayArea"
|
| | | });
|
| | | modelLayer.init();
|
| | | mapInfo.setEntityQueryInput();
|
| | |
|
| | | const url =
|
| | | "http://103.135.160.14:9038/gisserver/wfsserver/SubicBayAreaVector_wfs?version=1.1.0&request=GetFeature&format=json&typename=GeoEntity";
|
| | | const areaBox =
|
| | | "120.28915940000012 14.809144082000034 120.28915940000012 14.837205054000039 120.31165600000003 14.837205054000039 120.31165600000003 14.809144082000034 120.28915940000012 14.809144082000034";
|
| | |
|
| | | Cesium.GeoJsonDataSource.load(url, {
|
| | | stroke: Cesium.Color.fromCssColorString("#FFF0F5"), //å¤è¾¹å½¢æçº¿çé¢è²
|
| | | fill: Cesium.Color.fromCssColorString("#FFF0F5"), //å¤è¾¹å½¢æçº¿çé¢è²
|
| | | strokeWidth: 1, //å¤è¾¹å½¢æçº¿ 宽度
|
| | | clampToGround: true //å¤è¾¹å½¢æçº¿ åºå®å¨å°é¢ä¸true/false
|
| | | }).then((dataSource) => {
|
| | | const entities = dataSource.entities.values;
|
| | | entities.map((item) => {
|
| | | item.polygon.heightReference =
|
| | | Cesium.HeightReference.RELATIVE_TO_GROUND; // è´´å°
|
| | | item.polygon.height = 0; // è·å°é«åº¦0ç±³
|
| | | item.polygon.extrudedHeightReference =
|
| | | Cesium.HeightReference.RELATIVE_TO_GROUND; //æä¼¸
|
| | | item.polygon.extrudedHeight = item.properties["ELEVATION"]; // æä¼¸é«åº¦
|
| | |
|
| | | var polyPositions = item.polygon.hierarchy.getValue().positions;
|
| | | var polyCenter = Cesium.BoundingSphere.fromPoints(polyPositions).center; //ä¸å¿ç¹
|
| | | polyCenter = Cesium.Ellipsoid.WGS84.scaleToGeodeticSurface(polyCenter);
|
| | | item.position = polyCenter;
|
| | |
|
| | | item.label = {
|
| | | //æåæ ç¾
|
| | | text: "",
|
| | | font: "500 20px Helvetica", // 15pt monospace
|
| | | scale: 1,
|
| | | style: Cesium.LabelStyle.FILL,
|
| | | fillColor: Cesium.Color.WHITE,
|
| | |
|
| | | eyeOffset: new Cesium.Cartesian3(
|
| | | 0.0,
|
| | | item.polygon.extrudedHeight + 1,
|
| | | -(item.polygon.extrudedHeight + 1)
|
| | | ),
|
| | |
|
| | | verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
|
| | | showBackground: true,
|
| | | distanceDisplayCondition: new Cesium.DistanceDisplayCondition(50.0, 500.0),
|
| | | // heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
|
| | | // disableDepthTestDistance: Number.POSITIVE_INFINITY,
|
| | | backgroundColor: new Cesium.Color(26 / 255, 196 / 255, 228 / 255, 1.0) //èæ¯é¡è²
|
| | | };
|
| | | });
|
| | | Viewer.dataSources.add(dataSource);
|
| | | this.setQueryProperty(dataSource, "åäºç®æ ");
|
| | | this.getQuery(url, areaBox, dataSource);
|
| | | });
|
| | | },
|
| | | setQueryProperty(layer, property) {
|
| | | const entity = layer.entities.values;
|
| | | entity.filter((rs) => {
|
| | | if (rs.properties["TargetType"]._value == property) {
|
| | | rs.polygon.material = Cesium.Color.RED;
|
| | | // æ¾ç¤ºæåæ ç¾
|
| | | rs.label.text = rs.properties["TYPE"];
|
| | | }
|
| | | });
|
| | | },
|
| | | getQuery(url, area, layer) {
|
| | | axios
|
| | | .get(url, {
|
| | | params: {
|
| | | version: "1.3.0",
|
| | | request: "GetFeature",
|
| | | typename: "GeoEntity",
|
| | | propertyname: "*",
|
| | | format: "json",
|
| | | filter: `<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc"><ogc:Intersects><ogc:PropertyName /><gml:Polygon xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326"><gml:exterior><gml:LinearRing><gml:posList>${area}</gml:posList></gml:LinearRing></gml:exterior></gml:Polygon></ogc:Intersects></ogc:Filter>`
|
| | | }
|
| | | })
|
| | | .then((res) => {
|
| | | const obj = res.data.features;
|
| | |
|
| | | // const dataSource = Viewer.dataSources._dataSources.filter((item) => {
|
| | | // if (item.name == layer) {
|
| | | // return item;
|
| | | // }
|
| | | // });
|
| | | const entity = layer.entities.values;
|
| | | // const entity = dataSource[0].entities.values;
|
| | | obj.filter((item) => {
|
| | | entity.filter((rs) => {
|
| | | if (item.id == rs.id) {
|
| | | rs.polygon.material = Cesium.Color.CORNFLOWERBLUE;
|
| | | }
|
| | | });
|
| | | });
|
| | | });
|
| | | },
|
| | | getLayerModelCount(res) {
|
| | | axios
|
| | | .post(
|
| | | res.url,
|
| | | {
|
| | | dbid: res.dbid,
|
| | | geometry: res.geometry,
|
| | | layerid: res.layerid,
|
| | | returnCountOnly: res.containCount,
|
| | | token: res.token
|
| | | },
|
| | | {
|
| | | headers: {
|
| | | Authorization: res.token,
|
| | | "Content-Type": res.contentType
|
| | | }
|
| | | }
|
| | | )
|
| | | .then((response) => {
|
| | | if (response.status === 200) {
|
| | | this.getLayerModelList(res, response.data.data);
|
| | | } else {
|
| | | this.getLayerModelList(res, 200);
|
| | | }
|
| | | });
|
| | | },
|
| | | getLayerModelList(res, count) {
|
| | | axios
|
| | | .post(
|
| | | res.url,
|
| | | {
|
| | | dbid: res.dbid,
|
| | | geometry: res.geometry,
|
| | | layerid: res.layerid,
|
| | | containCount: res.containCount,
|
| | | token: res.token,
|
| | | count: count,
|
| | | start: 1,
|
| | | outfields: res.outfields
|
| | | },
|
| | | {
|
| | | headers: {
|
| | | Authorization: res.token,
|
| | | "Content-Type": res.contentType
|
| | | }
|
| | | }
|
| | | )
|
| | | .then((response) => {
|
| | | console.log("List", response);
|
| | | });
|
| | | // const url = layerJson.getQueryUrl("SubicBayAreaVector_wfs", "GeoEntity");
|
| | | // layerJson.init(url);
|
| | | }
|
| | | };
|
| | | export default mapViewer;
|
| | |
| | | import { |
| | | getPublickey, |
| | | getSecurityLogin, |
| | | getListCanview |
| | | getListCanview, |
| | | getmapConfig, |
| | | getQueryEentity, |
| | | getSettingPublickey |
| | | } from "../../../api/modelBase.js"; |
| | | import JSEncrypt from "jsencrypt"; |
| | | import store from "../../../store/index.js"; |
| | |
| | | modelBase: null, |
| | | dbid: null, |
| | | geom: null, |
| | | // è·åPublickey |
| | | layers: null, |
| | | publickey: null, |
| | | init() { |
| | | this.modelBase = config.modelBase; |
| | | getPublickey().then((response) => { |
| | | const password = this.modelBase.password; |
| | | const userId = this.modelBase.userId; |
| | | const publickey = response.data; |
| | | const encrypt = new JSEncrypt(); |
| | | encrypt.setPublicKey(publickey); |
| | | let encrypted = encrypt.encrypt(password.substring(0, 50)) + ""; |
| | | let submit = { |
| | | userid: userId, |
| | | password: encrypted |
| | | }; |
| | | this.setLoginsubmit(submit); |
| | | this.getSettingPublicKey(); |
| | | const token = getToken(); |
| | | console.log("token", token); |
| | | if (token) { |
| | | this.getModelLayerList(); |
| | | } else { |
| | | getPublickey().then((response) => { |
| | | const password = this.modelBase.password; |
| | | const userId = this.modelBase.userId; |
| | | const publickey = response.data; |
| | | const encrypt = new JSEncrypt(); |
| | | encrypt.setPublicKey(publickey); |
| | | let encrypted = encrypt.encrypt(password.substring(0, 50)) + ""; |
| | | let submit = { |
| | | userid: userId, |
| | | password: encrypted |
| | | }; |
| | | this.setLoginsubmit(submit); |
| | | }); |
| | | } |
| | | }, |
| | | getSettingPublicKey() { |
| | | getSettingPublickey().then((response) => { |
| | | this.publickey = response.data; |
| | | }); |
| | | }, |
| | | // è·åToken |
| | | setLoginsubmit(res) { |
| | | // const token = getToken(); |
| | | // if (token) { |
| | | getSecurityLogin(res).then((response) => { |
| | | const val = response.data.token; |
| | | setToken(val); |
| | | this.getModelLayerList(); |
| | | }); |
| | | // } else { |
| | | // this.getModelLayerList( ); |
| | | // } |
| | | }, |
| | | // è·åå表 |
| | | getModelLayerList() { |
| | |
| | | }); |
| | | if (obj.length > 0) { |
| | | this.dbid = obj[0].dbid; |
| | | this.getmapConfig(); |
| | | } |
| | | }); |
| | | this.setLayerQuery(); |
| | | }, |
| | | getmapConfig() { |
| | | getmapConfig({ |
| | | dbid: this.dbid, |
| | | token: getToken() |
| | | }).then((response) => { |
| | | if (response.code != 200) return; |
| | | const layers = response.data.layers; |
| | | this.layers = layers; |
| | | for (var i in layers) { |
| | | if (layers[i].name == "建ç") { |
| | | const url = layers[i].lod_url["3d"][""]; |
| | | |
| | | mapServer.addServer({ |
| | | sourceType: "Tileset", |
| | | url: url, |
| | | id: layers[i].id |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | setLayerQuery() { |
| | | const token = getToken(); |
| | | this.geom = mapConfig.setPointToCrical(120.27, 14.79, null); |
| | | |
| | | const obj = { |
| | | type: "FeatureCollection", |
| | | totalFeatures: 1086, |
| | | features: [this.geom] |
| | | }; |
| | | // const obj = { |
| | | // type: "FeatureCollection", |
| | | // totalFeatures: 1086, |
| | | // features: [this.geom] |
| | | // }; |
| | | // earthCtrl.factory.createFeatureLayer({ |
| | | // sourceType: "geojson", |
| | | // url: obj, |
| | |
| | | // |
| | | a.push([ |
| | | // "${id} == '1_b092c0c26de646b984801e29fba37f82'", |
| | | '${id} == 1_b092c0c26de646b984801e29fba37f82', |
| | | 'color("purple", 0.5)' |
| | | "${id} == 1_b092c0c26de646b984801e29fba37f82", |
| | | 'color("purple", 0.5)' |
| | | ]); |
| | | a.push(["true", "color('#E8F1F2', 0.5)"]); |
| | | console.log( tileset); |
| | | console.log(tileset); |
| | | tileset.style = new Cesium.Cesium3DTileStyle({ |
| | | // color: "vec4(1.0,1.0,1.0, 1.0)", // çº¢è² |
| | | color: { |
| | |
| | | [ |
| | | // "${id} == '1_b092c0c26de646b984801e29fba37f82'", |
| | | '${targettype} == "åäºç®æ "', |
| | | 'color("purple", 0.5)' |
| | | 'color("purple", 0.5)' |
| | | ] |
| | | ] |
| | | } |
| | |
| | | import store from "../../../store";
|
| | |
|
| | | const msgData = {
|
| | | mine: null,
|
| | | imgurl: null,
|
| | | getRole(type, msg) {
|
| | | if (type == "markDown") {
|
| | | return {
|
| | | msg: {
|
| | | date: this.getDate(),
|
| | | text: { text: msg },
|
| | | mine: false,
|
| | | name: "[GeoAgent]",
|
| | | img: this.getImgUrl("ai"),
|
| | | file: null,
|
| | | fileList: [],
|
| | | markDown: true
|
| | | }
|
| | | };
|
| | | }
|
| | | const imgurl = this.getImgUrl(type);
|
| | | var roleMsg = this.getTest(msg);
|
| | | this.imgurl = this.getImgUrl(type);
|
| | | this.mine = this.getMine(type);
|
| | | return {
|
| | | msg: this.getMsg(imgurl, roleMsg[0])
|
| | | };
|
| | | var roleMsg = this.getTest(msg);
|
| | | |
| | | const obj = {
|
| | | msg: this.getMsg(this.imgurl,roleMsg)
|
| | | }
|
| | | return obj ;
|
| | | },
|
| | | getLoader() {
|
| | | this.mine = true;
|
| | | var url = config.imgUrl + aiData.aiRole_img;
|
| | | const showload =
|
| | | " <div class='parentBox'> <div class='loadBox'> <div class='loaderContantBox'></div> </div> </div>";
|
| | | return this.getMsg(url, [
|
| | | {
|
| | | type: "loader",
|
| | | val: showload
|
| | | }
|
| | | ]);
|
| | | },
|
| | | getRagData(res, more, msg) {
|
| | | |
| | | return [
|
| | | {
|
| | | type: "rag",
|
| | | acction: res.a,
|
| | | question: res.q,
|
| | | more: more,
|
| | | msg: msg,
|
| | | source: res.sourceName
|
| | | }
|
| | | ];
|
| | | },
|
| | | getImgUrl(type) {
|
| | | var url = config.imgUrl;
|
| | | if (type == "ai") {
|
| | | url = url + aiData.aiRole_img;
|
| | | } else if (type == "role") {
|
| | | url = url + aiData.role_img;
|
| | | }
|
| | | return url;
|
| | | },
|
| | | getMine(type) {
|
| | | if (type == "ai") {
|
| | | return true;
|
| | | } else if (type == "role") {
|
| | | return false;
|
| | | }
|
| | | },
|
| | |
|
| | | getTest(res) {
|
| | | var flag = aiData.aiMsg.indexOf(res);
|
| | | var data = aiData.msg[flag];
|
| | | return [{ text: res }, data];
|
| | | return [
|
| | | {
|
| | | type: "text",
|
| | | val: res
|
| | | }
|
| | | ];
|
| | | },
|
| | | setShowMsg(res) {
|
| | | var obj = { text: this.getAiToRoleMsg(res) };
|
| | |
| | | }
|
| | | return val;
|
| | | },
|
| | | getImgUrl(type) {
|
| | | var url = config.imgUrl;
|
| | | if (type == "ai") {
|
| | | url = url + aiData.aiRole_img;
|
| | | } else if (type == "role") {
|
| | | url = url + aiData.role_img;
|
| | | }
|
| | | return url;
|
| | | },
|
| | |
|
| | | getMine(type) {
|
| | | if (type == "ai") {
|
| | | return true;
|
| | | } else if (type == "role") {
|
| | | return false;
|
| | | }
|
| | | },
|
| | | setmsgtab(tab) {
|
| | | var url = config.imgUrl + aiData.aiRole_img;
|
| | | var thead = tab[0];
|
| | |
| | | }
|
| | | }, 150);
|
| | | },
|
| | | getLoader() {
|
| | | this.mine = true;
|
| | | var url = config.imgUrl + aiData.aiRole_img;
|
| | | var msg = {
|
| | | // text: "<div class='loading'></div>"
|
| | | text: " <div class='parentBox'> <div class='loadBox'> <div class='loaderContantBox'></div> </div> </div>"
|
| | | };
|
| | | return this.getMsg(url, msg);
|
| | | },
|
| | |
|
| | | getMsg(imgurl, msg) {
|
| | | // const fileContent = [];
|
| | | // const fileMile = null;
|
| | |
|
| | | // if (msg.text.indexOf("èæ¯å
æ¹¾") > -1) {
|
| | | // fileContent = [
|
| | | // {
|
| | | // name: "å·²æ¾å°2份ç¸å
³ææ¡£",
|
| | | // url: "testUrl"
|
| | | // },
|
| | | // {
|
| | | // name: "Markdown.md",
|
| | | // url: "http://192.168.11.66:12316/Markdown.md"
|
| | | // },
|
| | | // {
|
| | | // name: "Markdown.md",
|
| | | // url: "http://192.168.11.66:12316/Markdown1.md"
|
| | | // }
|
| | | // ];
|
| | | // fileMile = fileContent[0].url;
|
| | | // return {
|
| | | // date: this.getDate(),
|
| | | // text: msg,
|
| | | // mine: false,
|
| | | // name: this.mine ? "[GeoAgent]" : "[æ¨]",
|
| | | // img: imgurl,
|
| | | // file: fileMile,
|
| | | // fileList: fileConten,
|
| | | // markDown: false
|
| | | // };
|
| | | // }
|
| | | return {
|
| | | date: this.getDate(),
|
| | | text: msg,
|
| | | list: msg,
|
| | | mine: false,
|
| | | name: this.mine ? "[GeoAgent]" : "[æ¨]",
|
| | | img: imgurl,
|
| | | markDown: false
|
| | | img: imgurl
|
| | | };
|
| | | },
|
| | | getDate() {
|
| | |
| | | <div class="body">
|
| | | <div :style="pageConfig.width | setWidth">
|
| | | <div class="web__main" ref="main">
|
| | | <div
|
| | | class="web__main-item"
|
| | | v-for="(item, index) in list"
|
| | | :key="loding(index)"
|
| | | :class="{ 'web__main-item--mine': item.mine }"
|
| | | >
|
| | | <div class="web__main-item" v-for="(item, index) in list" :key="loding(index)"
|
| | | :class="{ 'web__main-item--mine': item.mine }">
|
| | | |
| | | <div class="web__main_content">
|
| | | <div>
|
| | | <img :src="item.img" />
|
| | |
| | | <div style="display: flex">
|
| | | {{ item.name }}
|
| | |
|
| | | <div style="margin-left: 10px" v-show="item.file">
|
| | | <!-- <div style="margin-left: 10px" v-show="item.file">
|
| | | <el-select
|
| | | @change="(val) => setFileChange(val)"
|
| | | v-model="item.file"
|
| | |
| | | >
|
| | | </el-option>
|
| | | </el-select>
|
| | | </div>
|
| | | </div> -->
|
| | | </div>
|
| | |
|
| | | <div>
|
| | |
| | | </div>
|
| | | </cite>
|
| | | </div>
|
| | | <div v-show="item.markDown == true" class="web__main-text">
|
| | | <VueMarkdown
|
| | | class="web_Main_markDown"
|
| | | :source="item.text.text"
|
| | | ></VueMarkdown>
|
| | | <div class="web__main-text">
|
| | | <div v-for="(res, key) in item.list" :key="key">
|
| | | <div v-if="res.type === 'text'">
|
| | | {{ res.val }}
|
| | | </div>
|
| | | <div v-else-if="res.type == 'loader'">
|
| | | <span v-html="handleDetail(res.val)" ref="content"></span>
|
| | | </div>
|
| | | <div style="margin-bottom:10px" v-else-if="res.type == 'rag'">
|
| | | <div v-show="res.acction">
|
| | | {{ res.acction }}
|
| | | </div>
|
| | | <div> {{ res.question }} </div>
|
| | | <div style="display: flex;">
|
| | | æ¥æº: {{ res.source }}
|
| | | <div @click.stop="setRagMoreList(res.msg)" class="setRagMore" v-show="res.more">
|
| | | ...æ´å¤
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | |
|
| | | </div>
|
| | | <div v-show="item.markDown == false" class="web__main-text">
|
| | | <div class="web__main-arrow"></div>
|
| | | <span
|
| | | v-html="handleDetail(item.text.text)"
|
| | | ref="content"
|
| | | ></span>
|
| | | <ul class="web__main-list" v-if="item.text.list">
|
| | | <li
|
| | | @click="handleItemMsg(citem)"
|
| | | v-for="(citem, cindex) in item.text.list"
|
| | | :key="cindex"
|
| | | >
|
| | | {{ citem.text }}
|
| | | </li>
|
| | | </ul>
|
| | | </div>
|
| | |
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | <el-dialog
|
| | | :visible.sync="show"
|
| | | width="40%"
|
| | | append-to-body
|
| | | :before-close="handleClose"
|
| | | class="web__dialog"
|
| | | >
|
| | | <el-dialog :visible.sync="show" width="40%" append-to-body :before-close="handleClose" class="web__dialog">
|
| | | <img :src="imgSrc" v-if="imgSrc" style="width: 100%; object-fit: cover" />
|
| | | <video
|
| | | :src="videoSrc"
|
| | | v-if="videoSrc"
|
| | | style="width: 100%; object-fit: cover"
|
| | | controls="controls"
|
| | | ></video>
|
| | | <audio
|
| | | :src="audioSrc"
|
| | | v-if="audioSrc"
|
| | | style="width: 100%; object-fit: cover"
|
| | | controls="controls"
|
| | | ></audio>
|
| | | <video :src="videoSrc" v-if="videoSrc" style="width: 100%; object-fit: cover" controls="controls"></video>
|
| | | <audio :src="audioSrc" v-if="audioSrc" style="width: 100%; object-fit: cover" controls="controls"></audio>
|
| | | </el-dialog>
|
| | | </div>
|
| | | </template>
|
| | |
| | | setWidth(value) {
|
| | | let width = value;
|
| | | if (`${value}`.match(/^\d+$/)) {
|
| | | width = value-30 + "px";
|
| | | width = value - 30 + "px";
|
| | | }
|
| | | if(width=="100vh"){
|
| | | if (width == "100vh") {
|
| | | return "99vh"
|
| | | }
|
| | | return width;
|
| | |
| | | show: false,
|
| | | imgSrc: "",
|
| | | videoSrc: "",
|
| | | audioSrc: ""
|
| | | audioSrc: "",
|
| | | isDisabled: true,
|
| | | };
|
| | | },
|
| | | watch: {
|
| | |
| | | }
|
| | | },
|
| | | methods: {
|
| | | setRagMoreList(res) {
|
| | | if (this.isDisabled) {
|
| | | this.isDisabled = false;
|
| | | setTimeout(() => {
|
| | | bus.$emit("setRagMoreListAll", res);
|
| | | }, 500);
|
| | | setTimeout(() => {
|
| | | this.isDisabled = false;
|
| | | }, 3000)
|
| | | }
|
| | |
|
| | | },
|
| | | setFileChange(res) {
|
| | | if (res == "testUrl") return;
|
| | | axios.get(res).then((response) => {
|
| | |
| | | cursor: pointer;
|
| | | display: block;
|
| | | }
|
| | |
|
| | | .web__msg--img[data-class="iconBox"] {
|
| | | max-width: 24px;
|
| | | min-width: unset;
|
| | |
| | | font-size: 20px;
|
| | | background: #555555;
|
| | | padding: 10px !important;
|
| | | border-radius:10px !important;
|
| | | margin-top:10px ;
|
| | | border-radius: 10px !important;
|
| | | margin-top: 10px;
|
| | |
|
| | | }
|
| | |
|
| | |
| | | padding-left: 0px;
|
| | | font-style: normal;
|
| | | }
|
| | |
|
| | | .citeTitle {
|
| | | width: 100%;
|
| | | display: flex;
|
| | | justify-content: space-between;
|
| | | }
|
| | |
|
| | | .web__main-text {
|
| | | /* max-width: 40%; */
|
| | | width: 100%;
|
| | |
| | | font-size: 16px;
|
| | | word-break: break-all;
|
| | | }
|
| | |
|
| | | .web__main_content {
|
| | | width: calc(100% - 50px);
|
| | | width: calc(100% - 50px);
|
| | | padding: 10px 0px;
|
| | | display: flex;
|
| | | }
|
| | |
|
| | | .web__main_Date {
|
| | | flex: 1;
|
| | | padding: 0px 15px;
|
| | | }
|
| | |
|
| | | .web__main_Date cite {
|
| | | line-height: 24px;
|
| | | font-size: 14px;
|
| | |
| | | display: flex;
|
| | | justify-content: space-between;
|
| | | }
|
| | |
|
| | | .web__main-arrow {
|
| | | top: 6px;
|
| | | left: -8px;
|
| | |
| | | font-size: 16px;
|
| | | color: #f2f2f2;
|
| | | }
|
| | |
|
| | | .web__main-text img {
|
| | | max-width: 200px;
|
| | | }
|
| | |
|
| | | .setRagMore {
|
| | | margin-left: 10px;
|
| | |
|
| | | }
|
| | |
|
| | | .setRagMore:hover {
|
| | | color: #409EFF;
|
| | |
|
| | | }
|
| | | </style>
|
| | | <style>
|
| | |
| | | /* background: rgb(31, 31, 31); */
|
| | | padding: 20px;
|
| | | }
|
| | |
|
| | | .loadBox .loaderContantBox {
|
| | | color: white;
|
| | | font-size: 40px;
|
| | |
| | |
|
| | | @keyframes round {
|
| | | 0% {
|
| | | transform: rotate(0deg); /* å¼å§æè½¬ div å
ç´ */
|
| | | transform: rotate(0deg);
|
| | | /* å¼å§æè½¬ div å
ç´ */
|
| | | }
|
| | |
|
| | | 100% {
|
| | | transform: rotate(360deg); /* ç»ææè½¬ div å
ç´ */
|
| | | transform: rotate(360deg);
|
| | | /* ç»ææè½¬ div å
ç´ */
|
| | | }
|
| | | }
|
| | | </style>
|
| | |
|
| | |
|
| | | <style >
|
| | | .web_Main_markDown h1 {
|
| | | <style>
|
| | | .web_Main_markDown h1 {
|
| | | line-height: 30px !important;
|
| | | font-size: 20px !important;
|
| | | }
|
| | | .web_Main_markDown h2 {
|
| | |
|
| | | .web_Main_markDown h2 {
|
| | | line-height: 25px !important;
|
| | | font-size: 18px !important;
|
| | | margin-left: 10px;
|
| | | }
|
| | |
|
| | | .web_Main_markDown h3 {
|
| | | line-height: 25px !important;
|
| | | font-size: 18px !important;
|
| | | margin-left: 10px;
|
| | | }
|
| | |
|
| | | .web_Main_markDown li {
|
| | | line-height: 20px !important;
|
| | | font-size: 16px !important;
|
| | | margin-left: 20px;
|
| | | }
|
| | |
|
| | | .web_Main_markDown p {
|
| | | line-height: 20px !important;
|
| | | font-size: 16px !important;
|
| | | margin-left: 20px;
|
| | | }
|
| | | .web_Main_markDown {
|
| | | background: #555555;
|
| | | padding: 10px;
|
| | | border-radius: 10px;
|
| | |
|
| | | .web_Main_markDown {
|
| | | background: #555555;
|
| | | padding: 10px;
|
| | | border-radius: 10px;
|
| | | }
|
| | | </style> |
| | |
| | | state: {
|
| | | setMenuFlag: false,
|
| | | setMsgData: null,
|
| | | setScreenFlag: true,
|
| | | setScreenFlag: false,
|
| | | erroInfoMessage: null,
|
| | | token: null
|
| | | token: null,
|
| | | ragList: []
|
| | | },
|
| | | mutations: {},
|
| | | actions: {},
|
| | |
| | | (config) => { |
| | | // å¯ä»¥å¨è¿éæ·»å 请æ±å¤´çä¿¡æ¯ |
| | | let token = getToken(); |
| | | console.log("213",token); |
| | | |
| | | if (token) { |
| | | config.headers["Authorization"] = token; |
| | | } |
| | |
| | | import { getAIMessage, getV1Fastgpt } from "../../api/api.js";
|
| | | import mapInfo from "../../assets/js/map/mapInfo.js";
|
| | | import axios from "axios";
|
| | | import layerJson from "../../assets/js/map/mapJsonLayer.js";
|
| | | import { factors } from "@turf/turf";
|
| | | export default {
|
| | | name: "jwChat",
|
| | |
|
| | |
| | | }, config.loadTime);
|
| | | bus.$on("mapInfo", (res) => {
|
| | | if (res) {
|
| | | this.setMapInfo(res);
|
| | | // this.setMapInfo(res);
|
| | | }
|
| | | });
|
| | | bus.$on("setInsertMarkDown", (res) => {
|
| | | if (res) {
|
| | | this.setMarkDownInfo(res);
|
| | | }
|
| | | });
|
| | | bus.$on("setRagMoreListAll", res => {
|
| | | if (res) {
|
| | | this.setRagMoreList(res);
|
| | | }
|
| | | });
|
| | | // axios.get("http://192.168.11.89:12315/Markdown.md").then((response) => {
|
| | |
| | | methods: {
|
| | | bindEnter() {
|
| | | const msg = this.inputMsg;
|
| | |
|
| | | if (!msg) return;
|
| | |
|
| | | this.getMsg("role", msg);
|
| | |
|
| | | this.setLoading();
|
| | | setTimeout(() => {
|
| | |
|
| | | this.setMsgStart(msg);
|
| | | }, 200);
|
| | | },
|
| | | async setMsgStart(res) {
|
| | |
|
| | | if (res == "ä¸ç»´å®æ¯") {
|
| | | if (res.indexOf("åäºç®æ ") > -1 || res.indexOf("æ°å®
") > -1 || res.indexOf("ç»æµç®æ ") > -1 || res.indexOf("æµ·åéæé") > -1 || res.indexOf("å ¤ä¸°") > -1) {
|
| | | this.$store.state.setScreenFlag = true;
|
| | | this.list.splice(-1, 1);
|
| | | this.loading = false;
|
| | | layerJson.setQyeryData(res);
|
| | | }
|
| | | // else if(res.indexOf("èæ¯å
æ¹¾") > -1){
|
| | | // this.$store.state.setScreenFlag = true;
|
| | | // this.list.splice(-1, 1);
|
| | | // this.loading = false;
|
| | | // this.$nextTick(() => {
|
| | | // setTimeout(() => {
|
| | | // mapInfo.setEntityQueryInput();
|
| | | // }, 1000);
|
| | | // });
|
| | | // } |
| | | else if (res == "ä¸ç»´å®æ¯") {
|
| | | layerJson.setTitleSetRest();
|
| | | this.setV1Fastgpt(res)
|
| | | } else {
|
| | | const data = await getAIMessage(res);
|
| | | if (data.status == 200) {
|
| | | |
| | | if (data.code == 200) {
|
| | | if (data.content) {
|
| | | this.getMsg("ai", data.content);
|
| | | } else {
|
| | |
| | | }
|
| | | }
|
| | | },
|
| | | async setV1Fastgpt(res) {
|
| | | const data = await getV1Fastgpt(res);
|
| | | const obj = data.split(/[\n]/)
|
| | | const list_a = [];
|
| | | obj.filter(item => {
|
| | | if (item.indexOf("data: ") > -1) {
|
| | | if (item.indexOf('nodeId') > -1) {
|
| | | } else if(item.indexOf("content")>-1){
|
| | | const a = JSON.parse(item.split('data: '))
|
| | | console.log(a);
|
| | | // if (a.choices[0].content) {
|
| | | // console.log(a.choices[0].content);
|
| | | // }
|
| | | setRagMoreList(res) {
|
| | | const obj = this.$store.state.ragList
|
| | | const val_data = obj.filter(item => {
|
| | | if (item.quest === res) {
|
| | | return item;
|
| | | }
|
| | | });
|
| | | if (val_data.length <= 0) return
|
| | |
|
| | |
|
| | |
|
| | | this.$store.state.ragList = obj;
|
| | | const val_obj = val_data[0]
|
| | | const key = val_obj.index;
|
| | | const val = val_obj.val;
|
| | | this.list[key].list[0].more = false;
|
| | | var flag = 1;
|
| | | var intValTime = setInterval(() => {
|
| | | if (flag >= val.length) {
|
| | | const obj = JSON.parse(JSON.stringify(this.list))
|
| | | this.list = obj
|
| | | for (var i in obj) {
|
| | | if (obj[i].quest === res) {
|
| | | obj.splice(i, 1)
|
| | | }
|
| | | }
|
| | |
|
| | | clearInterval(intValTime)
|
| | | return
|
| | | }
|
| | | const valitem = val[flag];
|
| | | const roleMsg = msgData.getRagData(valitem, false, "");
|
| | | this.list[key].list.push(roleMsg[0])
|
| | | flag++
|
| | | }, 1000);
|
| | |
|
| | | },
|
| | | setRagInterval(flag, index, res) {
|
| | | if (flag < res.length) {
|
| | | const obj = res[flag]
|
| | |
|
| | | this.list[index].list.push(roleMsg[0])
|
| | | setTimeout(() => {
|
| | | flag++;
|
| | | this.setRagInterval(flag, index, res)
|
| | | }, 1000);
|
| | | } else {
|
| | | return
|
| | | }
|
| | | },
|
| | | async setV1Fastgpt(res) {
|
| | | const data = await getV1Fastgpt(res);
|
| | | |
| | | const length = this.list.length - 1;
|
| | | const obj = data[0].quoteList
|
| | | this.$store.state.ragList.push({
|
| | | quest: res,
|
| | | index: length,
|
| | | val: obj
|
| | | })
|
| | | // console.log(list_a)
|
| | | // const a = val_data[0].split('data: ');
|
| | | // const b = JSON.parse(a[1]);
|
| | | // console.log(b)
|
| | | // const c = b[1].historyPreview.length - 1;
|
| | | // const d = b[1].historyPreview[c].value
|
| | | // this.getMsg("ai", d);
|
| | | var roleMsg = msgData.getRagData(obj[0], true, res);
|
| | | this.list[length].list = roleMsg
|
| | | this.loading = false;
|
| | | },
|
| | | setMarkDownInfo(res) {
|
| | |
|
| | | var roleMsg = msgData.getRole("markDown", res);
|
| | | this.list.push(roleMsg.msg);
|
| | | //
|
| | |
| | | },
|
| | | getMsg(type, msg) {
|
| | | var roleMsg = msgData.getRole(type, msg);
|
| | | |
| | |
|
| | | if (this.loading) {
|
| | |
|
| | | this.loading = false;
|
| | | const length = this.list.length - 1;
|
| | | this.list[length].text = roleMsg.msg.text;
|
| | |
|
| | | |
| | | this.list[this.list.length - 1].list = roleMsg.msg.list;
|
| | | } else {
|
| | | this.list.push(roleMsg.msg);
|
| | | }
|