|
@@ -1,566 +1,587 @@
|
|
|
-<template>
|
|
|
- <CrMap ref="cmap" @onEditProperty="onEditProperty"></CrMap>
|
|
|
- <view class="cr-tools-left">
|
|
|
- <ToolButton v-for="(item, index) in leftTools" :id="item.id" :title="item.title" :describe="item.describe" :icon="item.icon" @onclick="onToolsClick" />
|
|
|
- </view>
|
|
|
- <view class="cr-tools-right">
|
|
|
- <ToolButton v-for="(item, index) in rightTools" :id="item.id" :title="item.title" :describe="item.describe" :icon="item.icon" @onclick="onToolsClick" />
|
|
|
- </view>
|
|
|
- <jtDialog class="jt-tools-dialog" :showDialog="showDialog" title="动态标绘" height="calc(100% - 50px)" width="300px" top="0px" @closeJTDialog="closeDialog">
|
|
|
- <el-row :gutter="20">
|
|
|
- <el-col :span="8" v-for="(item, index) in dynamicDrawTools" @click="onDrawToolsClick(item)">
|
|
|
- <el-avatar shape="circle" :size="50" style="background-color: bisque;"><i :class="item.iconName" /></el-avatar>
|
|
|
- <cite>{{ item.title }}</cite>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </jtDialog>
|
|
|
-
|
|
|
- <!-- 墙的编辑框 -->
|
|
|
- <dialogEditProperty ref="dialogEdit" :params="editParams" @submit="submit" @remove="remove" v-model:showDialog="showEditDialog"></dialogEditProperty>
|
|
|
-</template>
|
|
|
-<script setup>
|
|
|
-import { Dialog } from 'vant';
|
|
|
-/* 引入弹出对话框 */
|
|
|
-import jtDialog from '../components/jt-dialog/dialog.vue';
|
|
|
-/* 引入墙的编辑对话框 */
|
|
|
-import dialogEditProperty from '../components/jt-dialog/dialogEditProperty.vue';
|
|
|
-</script>
|
|
|
-<script>
|
|
|
-/* 引入三维地图控件 */
|
|
|
-import CrMap from '../components/CrMap/CrMap.vue';
|
|
|
-import { DrawTools } from '../components/CrMap/DrawTools.js';
|
|
|
-import { ref } from 'vue';
|
|
|
-/* 引入工具按钮 */
|
|
|
-import ToolButtom from '../components/ToolButton/ToolButton.vue';
|
|
|
-export default {
|
|
|
- components: {
|
|
|
- CrMap
|
|
|
- },
|
|
|
- /* 返回数据 */
|
|
|
- data() {
|
|
|
- return {
|
|
|
- leftTools: [],
|
|
|
- rightTools: [],
|
|
|
- showOverlay: false,
|
|
|
- poputNavTitle: '物体样式调整',
|
|
|
- color: {
|
|
|
- red: 0,
|
|
|
- green: 100,
|
|
|
- blue: 255,
|
|
|
- alpha: 6
|
|
|
- },
|
|
|
- height: 120,
|
|
|
- dialogVisible: false,
|
|
|
- showDialog: false,
|
|
|
- editParams: undefined,
|
|
|
- showEditDialog: false,
|
|
|
- dynamicDrawTools: []
|
|
|
- };
|
|
|
- },
|
|
|
- /* 创建 */
|
|
|
- created() {
|
|
|
- let _self = this;
|
|
|
- /* 工具标题初始化 */
|
|
|
- this.leftTools.push({
|
|
|
- title: '长度量测',
|
|
|
- describe: '在地图上点击需要测量对象的特征位置,即可实时计算长度并展示',
|
|
|
- icon: 'app-icon-map-measurelength',
|
|
|
- id: 'length'
|
|
|
- });
|
|
|
- this.leftTools.push({
|
|
|
- title: '面积量测',
|
|
|
- describe: '在地图上点击需要测量的对象特征位置,即可实时计算面积并展示',
|
|
|
- icon: 'app-icon-map-measurearea',
|
|
|
- id: 'area'
|
|
|
- });
|
|
|
- this.leftTools.push({
|
|
|
- title: '高度测量',
|
|
|
- describe: '在地图上点击需要测量的对象特征位置,即可实时计算高度并展示',
|
|
|
- icon: 'app-icon-map-measureheight',
|
|
|
- id: 'height'
|
|
|
- });
|
|
|
- this.leftTools.push({
|
|
|
- title: '空间测量',
|
|
|
- describe: '在地图上点击需要测量的对象特征位置,即可实时计算空间距离并展示',
|
|
|
- icon: 'app-icon-map-measurespace',
|
|
|
- id: 'space'
|
|
|
- });
|
|
|
- this.leftTools.push({
|
|
|
- title: '三角测量',
|
|
|
- describe: '在地图上点击需要测量对象的特征位置,即可实时计算长度并展示',
|
|
|
- icon: 'app-icon-map-measuretriangle',
|
|
|
- id: 'triangle'
|
|
|
- });
|
|
|
- this.leftTools.push({
|
|
|
- title: '点击查询',
|
|
|
- describe: '点击后,在需要查询的位置单击,即可查询该位置的全部可见图层数据',
|
|
|
- icon: 'app-icon-map-query-point',
|
|
|
- id: 'queryByPoint'
|
|
|
- });
|
|
|
- this.leftTools.push({
|
|
|
- title: '多点查询',
|
|
|
- describe: '点击后,在需要查询的位置单击,即可查询该位置的全部可见图层数据',
|
|
|
- icon: 'app-icon-map-query-multiple-point',
|
|
|
- id: 'queryByMultiplePoint'
|
|
|
- });
|
|
|
- this.leftTools.push({
|
|
|
- title: '线查询',
|
|
|
- describe: '点击后,在需要查询的位置单击,即可查询该位置的全部可见图层数据',
|
|
|
- icon: 'app-icon-map-query-point',
|
|
|
- id: 'queryByLine'
|
|
|
- });
|
|
|
- this.leftTools.push({
|
|
|
- title: '圆查询',
|
|
|
- describe: '点击后,在需要查询的位置单击,即可查询该位置的全部可见图层数据',
|
|
|
- icon: 'app-icon-map-query-point',
|
|
|
- id: 'queryByCircle'
|
|
|
- });
|
|
|
- this.leftTools.push({
|
|
|
- title: '矩形查询',
|
|
|
- describe: '点击后,在需要查询的位置单击,即可查询该位置的全部可见图层数据',
|
|
|
- icon: 'app-icon-map-query-point',
|
|
|
- id: 'queryByRectangle'
|
|
|
- });
|
|
|
- this.leftTools.push({
|
|
|
- title: '区域查询',
|
|
|
- describe: '点击后,在地图上绘制查询区域,单击开始查询,即可查询该区域内的全部可见图层数据',
|
|
|
- icon: 'app-icon-map-query-polygon',
|
|
|
- id: 'queryByPolygon'
|
|
|
- });
|
|
|
- this.leftTools.push({
|
|
|
- title: '清理绘制',
|
|
|
- describe: '在地图上单击绘制底部,右键结束绘制拉伸',
|
|
|
- icon: 'app-icon-map-clean',
|
|
|
- id: 'toolsClear'
|
|
|
- });
|
|
|
-
|
|
|
- this.rightTools.push({
|
|
|
- title: '图层管理',
|
|
|
- describe: '点击即可打开图层控制窗口,进行图层及标注的显示/隐藏',
|
|
|
- icon: 'app-icon-map-layer',
|
|
|
- id: 'layerControl'
|
|
|
- });
|
|
|
- this.rightTools.push({
|
|
|
- title: '动态标绘',
|
|
|
- describe: '点击即可打开图层控制窗口,进行图层及标注的显示/隐藏',
|
|
|
- icon: 'app-icon-tools-draw',
|
|
|
- id: 'dynamicDraw'
|
|
|
- });
|
|
|
- this.rightTools.push({
|
|
|
- title: '重置地图',
|
|
|
- describe: '点击即可重置地图范围为初始显示范围',
|
|
|
- icon: 'app-icon-map-initlocation',
|
|
|
- id: 'initMapExtent'
|
|
|
- });
|
|
|
- this.rightTools.push({
|
|
|
- title: '坐标查询',
|
|
|
- describe: '在地图上需要查询坐标的位置上点击,即可查询该位置的地理坐标',
|
|
|
- icon: 'app-icon-map-querycoord',
|
|
|
- id: 'coordQuery'
|
|
|
- });
|
|
|
- this.rightTools.push({
|
|
|
- title: '坐标定位',
|
|
|
- describe: '点击后,弹出坐标输入框,输入正确的位置坐标后点击定位,即可在地图上展示坐标位置',
|
|
|
- icon: 'app-icon-map-inputcoord-location',
|
|
|
- id: 'inputLocation'
|
|
|
- });
|
|
|
- this.rightTools.push({
|
|
|
- title: '相机视角',
|
|
|
- describe: '点击后,弹出坐标输入框,输入正确的位置坐标后点击定位,即可在地图上展示坐标位置',
|
|
|
- icon: 'app-icon-map-camera-view',
|
|
|
- id: 'cameraView'
|
|
|
- });
|
|
|
- this.rightTools.push({
|
|
|
- title: '物体拾取',
|
|
|
- describe: '点击后,在地图上的实体上单击,即可拾取该实体',
|
|
|
- icon: 'app-icon-map-pick',
|
|
|
- id: 'pick'
|
|
|
- });
|
|
|
- this.rightTools.push({
|
|
|
- title: '清扫工具',
|
|
|
- describe: '清除地图上的各类绘制内容',
|
|
|
- icon: 'app-icon-map-clean',
|
|
|
- id: 'clear'
|
|
|
- });
|
|
|
- /* 动态标绘工具 */
|
|
|
- this.dynamicDrawTools.push({
|
|
|
- iconName: 'app-icon app-icon-draw-line',
|
|
|
- title: '贴地线',
|
|
|
- id: 'layLine',
|
|
|
- message: '绘制贴地线'
|
|
|
- });
|
|
|
- this.dynamicDrawTools.push({
|
|
|
- iconName: 'app-icon app-icon-draw-arrow-line',
|
|
|
- title: '箭头线',
|
|
|
- id: 'arrowLine',
|
|
|
- message: '绘制箭头线'
|
|
|
- });
|
|
|
- this.dynamicDrawTools.push({
|
|
|
- iconName: 'app-icon app-icon-draw-dynamic-line',
|
|
|
- title: '流动线',
|
|
|
- id: 'dynamicLine',
|
|
|
- message: '绘制流动线'
|
|
|
- });
|
|
|
- this.dynamicDrawTools.push({
|
|
|
- iconName: 'app-icon app-icon-draw-grow-line',
|
|
|
- title: '发光线',
|
|
|
- id: 'glowLine',
|
|
|
- message: '绘制发光线'
|
|
|
- });
|
|
|
- this.dynamicDrawTools.push({
|
|
|
- iconName: 'app-icon app-icon-draw-outline-line',
|
|
|
- title: '描边线',
|
|
|
- id: 'outlineLine',
|
|
|
- message: '绘制描边线'
|
|
|
- });
|
|
|
- this.dynamicDrawTools.push({
|
|
|
- iconName: 'app-icon app-icon-draw-sline',
|
|
|
- title: '空间线',
|
|
|
- id: 'spatialLine',
|
|
|
- message: '绘制空间线'
|
|
|
- });
|
|
|
- this.dynamicDrawTools.push({
|
|
|
- iconName: 'app-icon app-icon-draw-polygon',
|
|
|
- title: '贴地面',
|
|
|
- id: 'layPolygon',
|
|
|
- message: '绘制贴地面'
|
|
|
- });
|
|
|
- this.dynamicDrawTools.push({
|
|
|
- iconName: 'app-icon app-icon-draw-rectangle',
|
|
|
- title: '贴地矩形',
|
|
|
- id: 'layRectangle',
|
|
|
- message: '绘制贴地矩形'
|
|
|
- });
|
|
|
- this.dynamicDrawTools.push({
|
|
|
- iconName: 'app-icon app-icon-draw-circle',
|
|
|
- title: '贴地圆',
|
|
|
- id: 'layCircle',
|
|
|
- message: '绘制贴地圆'
|
|
|
- });
|
|
|
- this.dynamicDrawTools.push({
|
|
|
- iconName: 'app-icon app-icon-draw-dynamic-circle',
|
|
|
- title: '扩散圆',
|
|
|
- id: 'dynamicCircle',
|
|
|
- message: '绘制扩散圆'
|
|
|
- });
|
|
|
- this.dynamicDrawTools.push({
|
|
|
- iconName: 'app-icon app-icon-draw-dwall',
|
|
|
- title: '动态围栏',
|
|
|
- id: 'dynamicWall',
|
|
|
- message: '绘制动态围栏'
|
|
|
- });
|
|
|
- this.dynamicDrawTools.push({
|
|
|
- iconName: 'app-icon app-icon-draw-wall',
|
|
|
- title: '普通围栏',
|
|
|
- id: 'normalWall',
|
|
|
- message: '绘制普通围栏'
|
|
|
- });
|
|
|
- this.dynamicDrawTools.push({
|
|
|
- iconName: 'app-icon app-icon-draw-text',
|
|
|
- title: '立体广告',
|
|
|
- id: 'textBoard',
|
|
|
- message: '绘制立体广告文字'
|
|
|
- });
|
|
|
- this.dynamicDrawTools.push({
|
|
|
- iconName: 'app-icon app-icon-draw-house',
|
|
|
- title: '房屋',
|
|
|
- id: 'house',
|
|
|
- message: '绘制房屋'
|
|
|
- });
|
|
|
- this.dynamicDrawTools.push({
|
|
|
- iconName: 'app-icon app-icon-draw-video',
|
|
|
- title: '视频墙',
|
|
|
- id: 'videoWall',
|
|
|
- message: '绘制视频墙'
|
|
|
- });
|
|
|
- this.dynamicDrawTools.push({
|
|
|
- iconName: 'app-icon app-icon-draw-odline',
|
|
|
- title: 'OD线',
|
|
|
- id: 'odLine',
|
|
|
- message: '绘制OD线'
|
|
|
- });
|
|
|
- this.dynamicDrawTools.push({
|
|
|
- iconName: 'app-icon app-icon-map-clean',
|
|
|
- title: '清除标绘',
|
|
|
- id: 'clear',
|
|
|
- message: '清除标绘'
|
|
|
- });
|
|
|
- this.editParams = DrawTools.initEditPropertyParams();
|
|
|
- },
|
|
|
-
|
|
|
- methods: {
|
|
|
- /**
|
|
|
- * 工具点击事件
|
|
|
- * @param {String} toolsId 工具Id
|
|
|
- */
|
|
|
- onToolsClick(toolsId) {
|
|
|
- let _self = this;
|
|
|
- switch (toolsId) {
|
|
|
- case 'length':
|
|
|
- _self.$refs['cmap'].onMeasureLength();
|
|
|
- break;
|
|
|
- case 'area':
|
|
|
- _self.$refs['cmap'].onMeasureArea();
|
|
|
- break;
|
|
|
- case 'height':
|
|
|
- _self.$refs['cmap'].onMeasureHeight();
|
|
|
- break;
|
|
|
- case 'space':
|
|
|
- _self.$refs['cmap'].onMeasureSpatialLength();
|
|
|
- break;
|
|
|
- case 'triangle':
|
|
|
- _self.$refs['cmap'].onMeasureTriangle();
|
|
|
- break;
|
|
|
- case 'toolsClear':
|
|
|
- _self.$refs['cmap'].onToolsClear();
|
|
|
- break;
|
|
|
- case 'queryByPolygon':
|
|
|
- _self.$refs['cmap'].onQueryByPolygon();
|
|
|
- break;
|
|
|
- case 'queryByPoint':
|
|
|
- _self.$refs['cmap'].onQueryByPoint();
|
|
|
- break;
|
|
|
- case 'queryByMultiplePoint':
|
|
|
- _self.$refs['cmap'].onQueryByMultiplePoint();
|
|
|
- break;
|
|
|
- case 'queryByLine':
|
|
|
- _self.$refs['cmap'].onQueryByLine();
|
|
|
- break;
|
|
|
- case 'queryByCircle':
|
|
|
- _self.$refs['cmap'].onQueryByCircle();
|
|
|
- break;
|
|
|
- case 'queryByRectangle':
|
|
|
- _self.$refs['cmap'].onQueryByRectangle();
|
|
|
- break;
|
|
|
- case 'layerControl':
|
|
|
- // _self.$refs['cmap'].onTestDemo();
|
|
|
- // this.showDialog = true;
|
|
|
- this.showEditDialog = true;
|
|
|
- break;
|
|
|
- case 'dynamicDraw':
|
|
|
- // _self.$refs['cmap'].onTestDemo();
|
|
|
- this.showDialog = true;
|
|
|
- break;
|
|
|
- case 'cameraView':
|
|
|
- _self.$refs['cmap'].onGetCameraViewer();
|
|
|
- break;
|
|
|
- case 'pick':
|
|
|
- break;
|
|
|
- case 'inputLocation':
|
|
|
- let points = [118.163976, 35.01653, 118.164976, 35.01453, 118.162976, 35.01453];
|
|
|
- _self.$refs['cmap'].onDrawFeacture(points);
|
|
|
- break;
|
|
|
- default:
|
|
|
- // Dialog.alert({
|
|
|
- // title: '点击了',
|
|
|
- // message: toolsId
|
|
|
- // });
|
|
|
- this.dialogVisible = true;
|
|
|
- break;
|
|
|
- }
|
|
|
- },
|
|
|
-
|
|
|
- closeDialog() {
|
|
|
- this.showDialog = false;
|
|
|
- },
|
|
|
-
|
|
|
- /**
|
|
|
- * 标绘工具点击事件
|
|
|
- * @param {Object} item 工具项
|
|
|
- */
|
|
|
- onDrawToolsClick(item) {
|
|
|
- this.$message(item.message);
|
|
|
- switch (item.id) {
|
|
|
- case 'layLine':
|
|
|
- this.$refs['cmap'].onMouseDrawEditLine();
|
|
|
- break;
|
|
|
- case 'arrowLine':
|
|
|
- this.$refs['cmap'].onMouseDrawEditArrowLine();
|
|
|
- break;
|
|
|
- case 'dynamicLine':
|
|
|
- this.$refs['cmap'].onMouseDrawEditDynamicLine();
|
|
|
- break;
|
|
|
- case 'glowLine':
|
|
|
- this.$refs['cmap'].onMouseDrawEditGrawLine();
|
|
|
- break;
|
|
|
- case 'outlineLine':
|
|
|
- this.$refs['cmap'].onMouseDrawEditOutlineLine();
|
|
|
- break;
|
|
|
- case 'layPolygon':
|
|
|
- this.$refs['cmap'].onMouseDrawEditPolygon();
|
|
|
- break;
|
|
|
- case 'spatialLine':
|
|
|
- this.$refs['cmap'].onMouseDrawEditSpatialPolyline();
|
|
|
- break;
|
|
|
- case 'layRectangle':
|
|
|
- this.$refs['cmap'].onMouseDrawEditRectangle();
|
|
|
- break;
|
|
|
- case 'layCircle':
|
|
|
- this.$refs['cmap'].onMouseDrawEditCircle();
|
|
|
- break;
|
|
|
- case 'dynamicCircle':
|
|
|
- this.$refs['cmap'].onMouseDrawDynamicCircle();
|
|
|
- break;
|
|
|
- case 'dynamicWall':
|
|
|
- this.$refs['cmap'].onMouseDrawDynamicEditWall();
|
|
|
- break;
|
|
|
- case 'normalWall':
|
|
|
- this.$refs['cmap'].onMouseDrawColorEditWall();
|
|
|
- break;
|
|
|
- case 'textBoard':
|
|
|
- this.$refs['cmap'].onMouseDrawEditText();
|
|
|
- break;
|
|
|
- case 'house':
|
|
|
- this.$refs['cmap'].onMoouseDrawPolygonBody();
|
|
|
- break;
|
|
|
- case 'videoWall':
|
|
|
- this.$refs['cmap'].onMouseDrawEditVideoWall();
|
|
|
- break;
|
|
|
- case 'odLine':
|
|
|
- this.$refs['cmap'].onMouseDrawEditOdline();
|
|
|
- break;
|
|
|
- case 'clear':
|
|
|
- this.$refs['cmap'].onClearDraw();
|
|
|
- break;
|
|
|
- }
|
|
|
- this.showDialog = false;
|
|
|
- },
|
|
|
-
|
|
|
- /**
|
|
|
- * 属性编辑调用
|
|
|
- * @param {JSON} param 传递的编辑参数
|
|
|
- */
|
|
|
- onEditProperty(param) {
|
|
|
- // console.log('===传递参数,打开编辑框>>>', param);
|
|
|
- /* 打开对话框 */
|
|
|
- this.showEditDialog = true;
|
|
|
- /* 赋值参数 */
|
|
|
- for (let key in this.editParams) {
|
|
|
- this.editParams[key] = param[key];
|
|
|
- }
|
|
|
- this.$refs['dialogEdit'].updateParams(this.editParams);
|
|
|
- },
|
|
|
-
|
|
|
- /**
|
|
|
- * 实体属性提交更改
|
|
|
- * @param {JSON} param 参数
|
|
|
- */
|
|
|
- submit(param) {
|
|
|
- // console.log('===>>>对话框提交的参数', param);
|
|
|
- this.$refs['cmap'].onSubmitEditProperty(param);
|
|
|
- },
|
|
|
-
|
|
|
- /**
|
|
|
- * 移除实体
|
|
|
- */
|
|
|
- remove() {
|
|
|
- this.$refs['cmap'].onRemoveEditEntity();
|
|
|
- }
|
|
|
- }
|
|
|
-};
|
|
|
-</script>
|
|
|
-
|
|
|
-<style lang="scss" scoped>
|
|
|
-.cr-color-label {
|
|
|
- padding-left: 15px;
|
|
|
- height: 30px;
|
|
|
- line-height: 30px;
|
|
|
- color: rgb(144, 225, 255);
|
|
|
- font-weight: bold;
|
|
|
- text-align: left;
|
|
|
- background-color: rgb(29, 99, 248);
|
|
|
-}
|
|
|
-
|
|
|
-/* 弹框子内容容器样式 */
|
|
|
-.cr-popup-content .cr-popup-child-content {
|
|
|
- padding: 10px;
|
|
|
- display: flex;
|
|
|
- flex-direction: column;
|
|
|
- width: calc(100% - 20px);
|
|
|
-}
|
|
|
-
|
|
|
-/* 弹出框 主要内容 子内容子项通用样式 */
|
|
|
-.cr-popup-content .cr-popup-child-content > * {
|
|
|
- margin: 10px 0px;
|
|
|
- font-family: 'Alimama_ShuHeiTi_Bold' !important;
|
|
|
-}
|
|
|
-
|
|
|
-/* 临时设置帧率位置 */
|
|
|
-.cesium-performanceDisplay-defaultContainer {
|
|
|
- top: unset;
|
|
|
- bottom: 80px;
|
|
|
- right: unset;
|
|
|
- left: 10px;
|
|
|
-}
|
|
|
-
|
|
|
-.jt-slider-button {
|
|
|
- width: 20px;
|
|
|
- height: 18px;
|
|
|
- color: rgb(202, 94, 92);
|
|
|
- font-size: 10px;
|
|
|
- line-height: 18px;
|
|
|
- text-align: center;
|
|
|
- background-color: rgb(202, 94, 92);
|
|
|
- border-radius: 100px;
|
|
|
-}
|
|
|
-
|
|
|
-.van-slider {
|
|
|
- margin: 10px !important;
|
|
|
- width: calc(100% - 20px) !important;
|
|
|
-}
|
|
|
-
|
|
|
-.cr-edit-buttons {
|
|
|
- display: flex;
|
|
|
- flex-direction: row;
|
|
|
-}
|
|
|
-
|
|
|
-.cr-edit-buttons > * {
|
|
|
- flex: 1;
|
|
|
- margin-left: 8px !important;
|
|
|
- height: 34px !important;
|
|
|
-}
|
|
|
-
|
|
|
-.cr-edit-buttons > :first-child {
|
|
|
- margin-left: 0px !important;
|
|
|
-}
|
|
|
-
|
|
|
-/* 工具框样式 */
|
|
|
-.jt-tools-dialog {
|
|
|
- top: 0px;
|
|
|
- .el-col {
|
|
|
- padding: 10px;
|
|
|
- }
|
|
|
-
|
|
|
- .el-col:hover {
|
|
|
- cursor: pointer;
|
|
|
- background-color: rgba(0, 0, 0, 0.5);
|
|
|
- }
|
|
|
-
|
|
|
- i {
|
|
|
- display: inline-block;
|
|
|
- width: 100%;
|
|
|
- height: 36px;
|
|
|
- line-height: 36px;
|
|
|
- text-align: center;
|
|
|
- border-radius: 5px;
|
|
|
- font-size: 30px;
|
|
|
- color: rgba(252, 152, 0, 1);
|
|
|
- transition: all 0.3s;
|
|
|
- -webkit-transition: all 0.3s;
|
|
|
- }
|
|
|
-
|
|
|
- cite {
|
|
|
- position: relative;
|
|
|
- top: 5px;
|
|
|
- display: block;
|
|
|
- color: rgba(255, 255, 255, 1);
|
|
|
- text-overflow: ellipsis;
|
|
|
- overflow: hidden;
|
|
|
- white-space: nowrap;
|
|
|
- font-size: 14px;
|
|
|
- font-style: normal;
|
|
|
- text-align: center;
|
|
|
- font-family: 'Alimama_ShuHeiTi_Bold';
|
|
|
- }
|
|
|
-}
|
|
|
-</style>
|
|
|
+<template>
|
|
|
+ <CrMap ref="cmap" @onEditProperty="onEditProperty"></CrMap>
|
|
|
+ <view class="cr-tools-left">
|
|
|
+ <ToolButton v-for="(item, index) in leftTools" :id="item.id" :title="item.title" :describe="item.describe"
|
|
|
+ :icon="item.icon" @onclick="onToolsClick" />
|
|
|
+ </view>
|
|
|
+ <view class="cr-tools-right">
|
|
|
+ <ToolButton v-for="(item, index) in rightTools" :id="item.id" :title="item.title" :describe="item.describe"
|
|
|
+ :icon="item.icon" @onclick="onToolsClick" />
|
|
|
+ </view>
|
|
|
+ <jtDialog class="jt-tools-dialog" :showDialog="showDialog" title="动态标绘" height="calc(100% - 50px)" width="300px"
|
|
|
+ top="0px" @closeJTDialog="closeDialog">
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8" v-for="(item, index) in dynamicDrawTools" @click="onDrawToolsClick(item)">
|
|
|
+ <el-avatar shape="circle" :size="50" style="background-color: bisque;"><i
|
|
|
+ :class="item.iconName" /></el-avatar>
|
|
|
+ <cite>{{ item.title }}</cite>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </jtDialog>
|
|
|
+
|
|
|
+ <!-- 墙的编辑框 -->
|
|
|
+ <dialogEditProperty ref="dialogEdit" :params="editParams" @submit="submit" @remove="remove"
|
|
|
+ v-model:showDialog="showEditDialog"></dialogEditProperty>
|
|
|
+</template>
|
|
|
+<script setup>
|
|
|
+ import {
|
|
|
+ Dialog
|
|
|
+ } from 'vant';
|
|
|
+ /* 引入弹出对话框 */
|
|
|
+ import jtDialog from '../components/jt-dialog/dialog.vue';
|
|
|
+ /* 引入墙的编辑对话框 */
|
|
|
+ import dialogEditProperty from '../components/jt-dialog/dialogEditProperty.vue';
|
|
|
+</script>
|
|
|
+<script>
|
|
|
+ /* 引入三维地图控件 */
|
|
|
+ import CrMap from '../components/CrMap/CrMap.vue';
|
|
|
+ import {
|
|
|
+ DrawTools
|
|
|
+ } from '../components/CrMap/DrawTools.js';
|
|
|
+ import {
|
|
|
+ ref
|
|
|
+ } from 'vue';
|
|
|
+ /* 引入工具按钮 */
|
|
|
+ import ToolButtom from '../components/ToolButton/ToolButton.vue';
|
|
|
+ export default {
|
|
|
+ components: {
|
|
|
+ CrMap
|
|
|
+ },
|
|
|
+ /* 返回数据 */
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ leftTools: [],
|
|
|
+ rightTools: [],
|
|
|
+ showOverlay: false,
|
|
|
+ poputNavTitle: '物体样式调整',
|
|
|
+ color: {
|
|
|
+ red: 0,
|
|
|
+ green: 100,
|
|
|
+ blue: 255,
|
|
|
+ alpha: 6
|
|
|
+ },
|
|
|
+ height: 120,
|
|
|
+ dialogVisible: false,
|
|
|
+ showDialog: false,
|
|
|
+ editParams: undefined,
|
|
|
+ showEditDialog: false,
|
|
|
+ dynamicDrawTools: []
|
|
|
+ };
|
|
|
+ },
|
|
|
+ /* 创建 */
|
|
|
+ created() {
|
|
|
+ let _self = this;
|
|
|
+ /* 工具标题初始化 */
|
|
|
+ this.leftTools.push({
|
|
|
+ title: '长度量测',
|
|
|
+ describe: '在地图上点击需要测量对象的特征位置,即可实时计算长度并展示',
|
|
|
+ icon: 'app-icon-map-measurelength',
|
|
|
+ id: 'length'
|
|
|
+ });
|
|
|
+ this.leftTools.push({
|
|
|
+ title: '面积量测',
|
|
|
+ describe: '在地图上点击需要测量的对象特征位置,即可实时计算面积并展示',
|
|
|
+ icon: 'app-icon-map-measurearea',
|
|
|
+ id: 'area'
|
|
|
+ });
|
|
|
+ this.leftTools.push({
|
|
|
+ title: '高度测量',
|
|
|
+ describe: '在地图上点击需要测量的对象特征位置,即可实时计算高度并展示',
|
|
|
+ icon: 'app-icon-map-measureheight',
|
|
|
+ id: 'height'
|
|
|
+ });
|
|
|
+ this.leftTools.push({
|
|
|
+ title: '空间测量',
|
|
|
+ describe: '在地图上点击需要测量的对象特征位置,即可实时计算空间距离并展示',
|
|
|
+ icon: 'app-icon-map-measurespace',
|
|
|
+ id: 'space'
|
|
|
+ });
|
|
|
+ this.leftTools.push({
|
|
|
+ title: '三角测量',
|
|
|
+ describe: '在地图上点击需要测量对象的特征位置,即可实时计算长度并展示',
|
|
|
+ icon: 'app-icon-map-measuretriangle',
|
|
|
+ id: 'triangle'
|
|
|
+ });
|
|
|
+ this.leftTools.push({
|
|
|
+ title: '点击查询',
|
|
|
+ describe: '点击后,在需要查询的位置单击,即可查询该位置的全部可见图层数据',
|
|
|
+ icon: 'app-icon-map-query-point',
|
|
|
+ id: 'queryByPoint'
|
|
|
+ });
|
|
|
+ this.leftTools.push({
|
|
|
+ title: '多点查询',
|
|
|
+ describe: '点击后,在需要查询的位置单击,即可查询该位置的全部可见图层数据',
|
|
|
+ icon: 'app-icon-map-query-multiple-point',
|
|
|
+ id: 'queryByMultiplePoint'
|
|
|
+ });
|
|
|
+ this.leftTools.push({
|
|
|
+ title: '线查询',
|
|
|
+ describe: '点击后,在需要查询的位置单击,即可查询该位置的全部可见图层数据',
|
|
|
+ icon: 'app-icon-map-query-point',
|
|
|
+ id: 'queryByLine'
|
|
|
+ });
|
|
|
+ this.leftTools.push({
|
|
|
+ title: '圆查询',
|
|
|
+ describe: '点击后,在需要查询的位置单击,即可查询该位置的全部可见图层数据',
|
|
|
+ icon: 'app-icon-map-query-point',
|
|
|
+ id: 'queryByCircle'
|
|
|
+ });
|
|
|
+ this.leftTools.push({
|
|
|
+ title: '矩形查询',
|
|
|
+ describe: '点击后,在需要查询的位置单击,即可查询该位置的全部可见图层数据',
|
|
|
+ icon: 'app-icon-map-query-point',
|
|
|
+ id: 'queryByRectangle'
|
|
|
+ });
|
|
|
+ this.leftTools.push({
|
|
|
+ title: '区域查询',
|
|
|
+ describe: '点击后,在地图上绘制查询区域,单击开始查询,即可查询该区域内的全部可见图层数据',
|
|
|
+ icon: 'app-icon-map-query-polygon',
|
|
|
+ id: 'queryByPolygon'
|
|
|
+ });
|
|
|
+ this.leftTools.push({
|
|
|
+ title: '清理绘制',
|
|
|
+ describe: '在地图上单击绘制底部,右键结束绘制拉伸',
|
|
|
+ icon: 'app-icon-map-clean',
|
|
|
+ id: 'toolsClear'
|
|
|
+ });
|
|
|
+
|
|
|
+ this.rightTools.push({
|
|
|
+ title: '图层管理',
|
|
|
+ describe: '点击即可打开图层控制窗口,进行图层及标注的显示/隐藏',
|
|
|
+ icon: 'app-icon-map-layer',
|
|
|
+ id: 'layerControl'
|
|
|
+ });
|
|
|
+ this.rightTools.push({
|
|
|
+ title: '动态标绘',
|
|
|
+ describe: '点击即可打开图层控制窗口,进行图层及标注的显示/隐藏',
|
|
|
+ icon: 'app-icon-tools-draw',
|
|
|
+ id: 'dynamicDraw'
|
|
|
+ });
|
|
|
+ this.rightTools.push({
|
|
|
+ title: '重置地图',
|
|
|
+ describe: '点击即可重置地图范围为初始显示范围',
|
|
|
+ icon: 'app-icon-map-initlocation',
|
|
|
+ id: 'initMapExtent'
|
|
|
+ });
|
|
|
+ this.rightTools.push({
|
|
|
+ title: '坐标查询',
|
|
|
+ describe: '在地图上需要查询坐标的位置上点击,即可查询该位置的地理坐标',
|
|
|
+ icon: 'app-icon-map-querycoord',
|
|
|
+ id: 'coordQuery'
|
|
|
+ });
|
|
|
+ this.rightTools.push({
|
|
|
+ title: '坐标定位',
|
|
|
+ describe: '点击后,弹出坐标输入框,输入正确的位置坐标后点击定位,即可在地图上展示坐标位置',
|
|
|
+ icon: 'app-icon-map-inputcoord-location',
|
|
|
+ id: 'inputLocation'
|
|
|
+ });
|
|
|
+ this.rightTools.push({
|
|
|
+ title: '相机视角',
|
|
|
+ describe: '点击后,弹出坐标输入框,输入正确的位置坐标后点击定位,即可在地图上展示坐标位置',
|
|
|
+ icon: 'app-icon-map-camera-view',
|
|
|
+ id: 'cameraView'
|
|
|
+ });
|
|
|
+ this.rightTools.push({
|
|
|
+ title: '物体拾取',
|
|
|
+ describe: '点击后,在地图上的实体上单击,即可拾取该实体',
|
|
|
+ icon: 'app-icon-map-pick',
|
|
|
+ id: 'pick'
|
|
|
+ });
|
|
|
+ this.rightTools.push({
|
|
|
+ title: '清扫工具',
|
|
|
+ describe: '清除地图上的各类绘制内容',
|
|
|
+ icon: 'app-icon-map-clean',
|
|
|
+ id: 'clear'
|
|
|
+ });
|
|
|
+ /* 动态标绘工具 */
|
|
|
+ this.dynamicDrawTools.push({
|
|
|
+ iconName: 'app-icon app-icon-draw-line',
|
|
|
+ title: '贴地线',
|
|
|
+ id: 'layLine',
|
|
|
+ message: '绘制贴地线'
|
|
|
+ });
|
|
|
+ this.dynamicDrawTools.push({
|
|
|
+ iconName: 'app-icon app-icon-draw-arrow-line',
|
|
|
+ title: '箭头线',
|
|
|
+ id: 'arrowLine',
|
|
|
+ message: '绘制箭头线'
|
|
|
+ });
|
|
|
+ this.dynamicDrawTools.push({
|
|
|
+ iconName: 'app-icon app-icon-draw-dynamic-line',
|
|
|
+ title: '流动线',
|
|
|
+ id: 'dynamicLine',
|
|
|
+ message: '绘制流动线'
|
|
|
+ });
|
|
|
+ this.dynamicDrawTools.push({
|
|
|
+ iconName: 'app-icon app-icon-draw-grow-line',
|
|
|
+ title: '发光线',
|
|
|
+ id: 'glowLine',
|
|
|
+ message: '绘制发光线'
|
|
|
+ });
|
|
|
+ this.dynamicDrawTools.push({
|
|
|
+ iconName: 'app-icon app-icon-draw-outline-line',
|
|
|
+ title: '描边线',
|
|
|
+ id: 'outlineLine',
|
|
|
+ message: '绘制描边线'
|
|
|
+ });
|
|
|
+ this.dynamicDrawTools.push({
|
|
|
+ iconName: 'app-icon app-icon-draw-sline',
|
|
|
+ title: '空间线',
|
|
|
+ id: 'spatialLine',
|
|
|
+ message: '绘制空间线'
|
|
|
+ });
|
|
|
+ this.dynamicDrawTools.push({
|
|
|
+ iconName: 'app-icon app-icon-draw-polygon',
|
|
|
+ title: '贴地面',
|
|
|
+ id: 'layPolygon',
|
|
|
+ message: '绘制贴地面'
|
|
|
+ });
|
|
|
+ this.dynamicDrawTools.push({
|
|
|
+ iconName: 'app-icon app-icon-draw-rectangle',
|
|
|
+ title: '贴地矩形',
|
|
|
+ id: 'layRectangle',
|
|
|
+ message: '绘制贴地矩形'
|
|
|
+ });
|
|
|
+ this.dynamicDrawTools.push({
|
|
|
+ iconName: 'app-icon app-icon-draw-circle',
|
|
|
+ title: '贴地圆',
|
|
|
+ id: 'layCircle',
|
|
|
+ message: '绘制贴地圆'
|
|
|
+ });
|
|
|
+ this.dynamicDrawTools.push({
|
|
|
+ iconName: 'app-icon app-icon-draw-dynamic-circle',
|
|
|
+ title: '扩散圆',
|
|
|
+ id: 'dynamicCircle',
|
|
|
+ message: '绘制扩散圆'
|
|
|
+ });
|
|
|
+ this.dynamicDrawTools.push({
|
|
|
+ iconName: 'app-icon app-icon-draw-dwall',
|
|
|
+ title: '动态围栏',
|
|
|
+ id: 'dynamicWall',
|
|
|
+ message: '绘制动态围栏'
|
|
|
+ });
|
|
|
+ this.dynamicDrawTools.push({
|
|
|
+ iconName: 'app-icon app-icon-draw-wall',
|
|
|
+ title: '普通围栏',
|
|
|
+ id: 'normalWall',
|
|
|
+ message: '绘制普通围栏'
|
|
|
+ });
|
|
|
+ this.dynamicDrawTools.push({
|
|
|
+ iconName: 'app-icon app-icon-draw-text',
|
|
|
+ title: '立体广告',
|
|
|
+ id: 'textBoard',
|
|
|
+ message: '绘制立体广告文字'
|
|
|
+ });
|
|
|
+ this.dynamicDrawTools.push({
|
|
|
+ iconName: 'app-icon app-icon-draw-house',
|
|
|
+ title: '房屋',
|
|
|
+ id: 'house',
|
|
|
+ message: '绘制房屋'
|
|
|
+ });
|
|
|
+ this.dynamicDrawTools.push({
|
|
|
+ iconName: 'app-icon app-icon-draw-video',
|
|
|
+ title: '视频墙',
|
|
|
+ id: 'videoWall',
|
|
|
+ message: '绘制视频墙'
|
|
|
+ });
|
|
|
+ this.dynamicDrawTools.push({
|
|
|
+ iconName: 'app-icon app-icon-draw-odline',
|
|
|
+ title: 'OD线',
|
|
|
+ id: 'odLine',
|
|
|
+ message: '绘制OD线'
|
|
|
+ });
|
|
|
+ this.dynamicDrawTools.push({
|
|
|
+ iconName: 'app-icon app-icon-tools-doodle',
|
|
|
+ title: '涂鸦',
|
|
|
+ id: 'doodle',
|
|
|
+ message: '绘制涂鸦'
|
|
|
+ });
|
|
|
+ this.dynamicDrawTools.push({
|
|
|
+ iconName: 'app-icon app-icon-map-clean',
|
|
|
+ title: '清除标绘',
|
|
|
+ id: 'clear',
|
|
|
+ message: '清除标绘'
|
|
|
+ });
|
|
|
+ this.editParams = DrawTools.initEditPropertyParams();
|
|
|
+ },
|
|
|
+
|
|
|
+ methods: {
|
|
|
+ /**
|
|
|
+ * 工具点击事件
|
|
|
+ * @param {String} toolsId 工具Id
|
|
|
+ */
|
|
|
+ onToolsClick(toolsId) {
|
|
|
+ let _self = this;
|
|
|
+ switch (toolsId) {
|
|
|
+ case 'length':
|
|
|
+ _self.$refs['cmap'].onMeasureLength();
|
|
|
+ break;
|
|
|
+ case 'area':
|
|
|
+ _self.$refs['cmap'].onMeasureArea();
|
|
|
+ break;
|
|
|
+ case 'height':
|
|
|
+ _self.$refs['cmap'].onMeasureHeight();
|
|
|
+ break;
|
|
|
+ case 'space':
|
|
|
+ _self.$refs['cmap'].onMeasureSpatialLength();
|
|
|
+ break;
|
|
|
+ case 'triangle':
|
|
|
+ _self.$refs['cmap'].onMeasureTriangle();
|
|
|
+ break;
|
|
|
+ case 'toolsClear':
|
|
|
+ _self.$refs['cmap'].onToolsClear();
|
|
|
+ break;
|
|
|
+ case 'queryByPolygon':
|
|
|
+ _self.$refs['cmap'].onQueryByPolygon();
|
|
|
+ break;
|
|
|
+ case 'queryByPoint':
|
|
|
+ _self.$refs['cmap'].onQueryByPoint();
|
|
|
+ break;
|
|
|
+ case 'queryByMultiplePoint':
|
|
|
+ _self.$refs['cmap'].onQueryByMultiplePoint();
|
|
|
+ break;
|
|
|
+ case 'queryByLine':
|
|
|
+ _self.$refs['cmap'].onQueryByLine();
|
|
|
+ break;
|
|
|
+ case 'queryByCircle':
|
|
|
+ _self.$refs['cmap'].onQueryByCircle();
|
|
|
+ break;
|
|
|
+ case 'queryByRectangle':
|
|
|
+ _self.$refs['cmap'].onQueryByRectangle();
|
|
|
+ break;
|
|
|
+ case 'layerControl':
|
|
|
+ // _self.$refs['cmap'].onTestDemo();
|
|
|
+ // this.showDialog = true;
|
|
|
+ this.showEditDialog = true;
|
|
|
+ break;
|
|
|
+ case 'dynamicDraw':
|
|
|
+ // _self.$refs['cmap'].onTestDemo();
|
|
|
+ this.showDialog = true;
|
|
|
+ break;
|
|
|
+ case 'cameraView':
|
|
|
+ _self.$refs['cmap'].onGetCameraViewer();
|
|
|
+ break;
|
|
|
+ case 'pick':
|
|
|
+ break;
|
|
|
+ case 'inputLocation':
|
|
|
+ let points = [118.163976, 35.01653, 118.164976, 35.01453, 118.162976, 35.01453];
|
|
|
+ _self.$refs['cmap'].onDrawFeacture(points);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ // Dialog.alert({
|
|
|
+ // title: '点击了',
|
|
|
+ // message: toolsId
|
|
|
+ // });
|
|
|
+ this.dialogVisible = true;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ closeDialog() {
|
|
|
+ this.showDialog = false;
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 标绘工具点击事件
|
|
|
+ * @param {Object} item 工具项
|
|
|
+ */
|
|
|
+ onDrawToolsClick(item) {
|
|
|
+ this.$message(item.message);
|
|
|
+ switch (item.id) {
|
|
|
+ case 'layLine':
|
|
|
+ this.$refs['cmap'].onMouseDrawEditLine();
|
|
|
+ break;
|
|
|
+ case 'arrowLine':
|
|
|
+ this.$refs['cmap'].onMouseDrawEditArrowLine();
|
|
|
+ break;
|
|
|
+ case 'dynamicLine':
|
|
|
+ this.$refs['cmap'].onMouseDrawEditDynamicLine();
|
|
|
+ break;
|
|
|
+ case 'glowLine':
|
|
|
+ this.$refs['cmap'].onMouseDrawEditGrawLine();
|
|
|
+ break;
|
|
|
+ case 'outlineLine':
|
|
|
+ this.$refs['cmap'].onMouseDrawEditOutlineLine();
|
|
|
+ break;
|
|
|
+ case 'layPolygon':
|
|
|
+ this.$refs['cmap'].onMouseDrawEditPolygon();
|
|
|
+ break;
|
|
|
+ case 'spatialLine':
|
|
|
+ this.$refs['cmap'].onMouseDrawEditSpatialPolyline();
|
|
|
+ break;
|
|
|
+ case 'layRectangle':
|
|
|
+ this.$refs['cmap'].onMouseDrawEditRectangle();
|
|
|
+ break;
|
|
|
+ case 'layCircle':
|
|
|
+ this.$refs['cmap'].onMouseDrawEditCircle();
|
|
|
+ break;
|
|
|
+ case 'dynamicCircle':
|
|
|
+ this.$refs['cmap'].onMouseDrawDynamicCircle();
|
|
|
+ break;
|
|
|
+ case 'dynamicWall':
|
|
|
+ this.$refs['cmap'].onMouseDrawDynamicEditWall();
|
|
|
+ break;
|
|
|
+ case 'normalWall':
|
|
|
+ this.$refs['cmap'].onMouseDrawColorEditWall();
|
|
|
+ break;
|
|
|
+ case 'textBoard':
|
|
|
+ this.$refs['cmap'].onMouseDrawEditText();
|
|
|
+ break;
|
|
|
+ case 'house':
|
|
|
+ this.$refs['cmap'].onMoouseDrawPolygonBody();
|
|
|
+ break;
|
|
|
+ case 'videoWall':
|
|
|
+ this.$refs['cmap'].onMouseDrawEditVideoWall();
|
|
|
+ break;
|
|
|
+ case 'odLine':
|
|
|
+ this.$refs['cmap'].onMouseDrawEditOdline();
|
|
|
+ break;
|
|
|
+ case 'doodle':
|
|
|
+ this.$refs['cmap'].onMouseDrawDoodle();
|
|
|
+ break;
|
|
|
+ case 'clear':
|
|
|
+ this.$refs['cmap'].onClearDraw();
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ this.showDialog = false;
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 属性编辑调用
|
|
|
+ * @param {JSON} param 传递的编辑参数
|
|
|
+ */
|
|
|
+ onEditProperty(param) {
|
|
|
+ // console.log('===传递参数,打开编辑框>>>', param);
|
|
|
+ /* 打开对话框 */
|
|
|
+ this.showEditDialog = true;
|
|
|
+ /* 赋值参数 */
|
|
|
+ for (let key in this.editParams) {
|
|
|
+ this.editParams[key] = param[key];
|
|
|
+ }
|
|
|
+ this.$refs['dialogEdit'].updateParams(this.editParams);
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 实体属性提交更改
|
|
|
+ * @param {JSON} param 参数
|
|
|
+ */
|
|
|
+ submit(param) {
|
|
|
+ // console.log('===>>>对话框提交的参数', param);
|
|
|
+ this.$refs['cmap'].onSubmitEditProperty(param);
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 移除实体
|
|
|
+ */
|
|
|
+ remove() {
|
|
|
+ this.$refs['cmap'].onRemoveEditEntity();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+ .cr-color-label {
|
|
|
+ padding-left: 15px;
|
|
|
+ height: 30px;
|
|
|
+ line-height: 30px;
|
|
|
+ color: rgb(144, 225, 255);
|
|
|
+ font-weight: bold;
|
|
|
+ text-align: left;
|
|
|
+ background-color: rgb(29, 99, 248);
|
|
|
+ }
|
|
|
+
|
|
|
+ /* 弹框子内容容器样式 */
|
|
|
+ .cr-popup-content .cr-popup-child-content {
|
|
|
+ padding: 10px;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ width: calc(100% - 20px);
|
|
|
+ }
|
|
|
+
|
|
|
+ /* 弹出框 主要内容 子内容子项通用样式 */
|
|
|
+ .cr-popup-content .cr-popup-child-content>* {
|
|
|
+ margin: 10px 0px;
|
|
|
+ font-family: 'Alimama_ShuHeiTi_Bold' !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ /* 临时设置帧率位置 */
|
|
|
+ .cesium-performanceDisplay-defaultContainer {
|
|
|
+ top: unset;
|
|
|
+ bottom: 80px;
|
|
|
+ right: unset;
|
|
|
+ left: 10px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .jt-slider-button {
|
|
|
+ width: 20px;
|
|
|
+ height: 18px;
|
|
|
+ color: rgb(202, 94, 92);
|
|
|
+ font-size: 10px;
|
|
|
+ line-height: 18px;
|
|
|
+ text-align: center;
|
|
|
+ background-color: rgb(202, 94, 92);
|
|
|
+ border-radius: 100px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .van-slider {
|
|
|
+ margin: 10px !important;
|
|
|
+ width: calc(100% - 20px) !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ .cr-edit-buttons {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ }
|
|
|
+
|
|
|
+ .cr-edit-buttons>* {
|
|
|
+ flex: 1;
|
|
|
+ margin-left: 8px !important;
|
|
|
+ height: 34px !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ .cr-edit-buttons> :first-child {
|
|
|
+ margin-left: 0px !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ /* 工具框样式 */
|
|
|
+ .jt-tools-dialog {
|
|
|
+ top: 0px;
|
|
|
+
|
|
|
+ .el-col {
|
|
|
+ padding: 10px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-col:hover {
|
|
|
+ cursor: pointer;
|
|
|
+ background-color: rgba(0, 0, 0, 0.5);
|
|
|
+ }
|
|
|
+
|
|
|
+ i {
|
|
|
+ display: inline-block;
|
|
|
+ width: 100%;
|
|
|
+ height: 36px;
|
|
|
+ line-height: 36px;
|
|
|
+ text-align: center;
|
|
|
+ border-radius: 5px;
|
|
|
+ font-size: 30px;
|
|
|
+ color: rgba(252, 152, 0, 1);
|
|
|
+ transition: all 0.3s;
|
|
|
+ -webkit-transition: all 0.3s;
|
|
|
+ }
|
|
|
+
|
|
|
+ cite {
|
|
|
+ position: relative;
|
|
|
+ top: 5px;
|
|
|
+ display: block;
|
|
|
+ color: rgba(255, 255, 255, 1);
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ overflow: hidden;
|
|
|
+ white-space: nowrap;
|
|
|
+ font-size: 14px;
|
|
|
+ font-style: normal;
|
|
|
+ text-align: center;
|
|
|
+ font-family: 'Alimama_ShuHeiTi_Bold';
|
|
|
+ }
|
|
|
+ }
|
|
|
+</style>
|