基于Vue的GIS组件GISView的API文档

GISView API

基于Vue的GIS组件

版本:1.2.x

2021.04.28

npm传送门
GISView API文档

起步

  • 初始化vue项目

    vue tese demo
    
  • 安装组件库

    npm install gisview
    
  • 引用组件

    import 'gisview/dist/gisview.css'
    import GW from 'gisview'
    
    Vue.use(GW)
    
  • 依赖组件

    import 'leaflet/dist/leaflet.js'
    import '@supermap/iclient-leaflet'
    
  • 三维依赖。推荐第一种方式

    // index.html引用,下载WebGL包到public
    <link href="Cesium/Widgets/widgets.css" rel="stylesheet">
    <script type="text/javascript" src="Cesium/Cesium.js"></script>
    
    // ES6模块化引用,可能出现地球初始化闪烁
    import {S3MTilesLayer} from '../Build/Cesium/Cesium.js'
    import from '../Build/Cesium/Widgets/widgets.css'
    
  • main.js

    import 'gisview/dist/gisview.css'
    import 'leaflet/dist/leaflet.css'
    import 'leaflet/dist/leaflet.js'
    import '@supermap/iclient-leaflet'
    import GW from 'gisview/dist/gisview.umd.js'
    
    Vue.use(GW)
    

示例场景和开发框架稍后放至github及gitee上

Map系列

需要new一个map对象当作参数传入

1. Arcgis矢量服务

// 默认加载一幅arcgisonline的矢量服务
<gw-load-vector-arc></gw-load-vector-arc>
含义类型默认值校验
idDom名称Stringmap
mapObjmap对象Arcgis规范下的map对象包含属性extent和logo值的Map对象
image-url服务地址String''
extent范围Object北京城区偏北对象内部不校验
basemap底图String''
logoesri logoBooleanfalse
overview鹰眼图Booleanfalse
expandFactor鹰眼比例Number2
attachTo鹰眼位置Stringtop-right
divCssCss样式String''
data() {
    return {
      mapObj: {},
      extent: {
        able: true,
        xmin: 114,
        ymin: 40,
        xmax: 118,
        ymax: 41,
        wkid: 4326
      }
    }
  }
// 默认值
<gw-load-vector-arc
  :map-obj.sync="mapObj"
  imageUrl: "http://server.arcgisonline.com/arcgis/rest/services/World_Topo_Map/MapServer"
  :extent: "extent"
  :logo: "false"
  div-css: 'width: 90%; height: 90%;background-color: azure;'
  :overview="true"
  :expandFactor: 2
  attachTo: 'bottom-left'
></gw-load-vector-arc>

2. Arcgis影像服务

// 默认加载一副arcgisonline的影像服务
<gw-load-image-arc></gw-load-image-arc>
含义类型默认值校验
idDom名称Stringmap
mapObjmap对象Arcgis规范下的map对象包含logo值的Map对象
image-url服务地址String''
extent范围Object北京城区偏北对象内部不校验
logoesri logoBooleanfalse
overview鹰眼图Booleanfalse
expandFactor鹰眼比例Number2
attachTo鹰眼位置Stringtop-right
divCssCss样式String''

3. 空间查询

<gw-query-task-arc
  :query-task-url="queryTaskUrl"
  :map-obj="map"
  :filts="filts"
  :query-result.sync="queryResult"
></gw-query-task-arc>
含义类型默认值校验
queryTaskUrl查询服务String
map-objmap对象Arcgis规范下的map对象
filts查询字段Array<String>
queryResult接收查询结果Object{}不接收

4. 唯一值渲染

<gw-unique-render-arc
   v-if="asyncData"
   :map-obj.sync="map"
   :render-url="renderUrl"
   :filt-field="filtValue"
   :tip="tip"
></gw-unique-render-arc>
  data() {
    return {
      asyncData: false,
      map: {},
      renderUrl:
        'http://localhost:6080/arcgis/rest/services/Basic/China_POI/MapServer/0',
      filtField: 'jishu',
      tip: 'AQI级数唯一值渲染'
    }
  }
含义类型默认值校验
asyncData渲染开关Booleanfalse不接收
map-objmap对象Arcgis规范下的map对象
render-url渲染服务String
filt-field渲染值参数String
tip提示词String唯一值渲染

5. 简单渲染

<gw-simple-render-arc
   v-if="asyncData"
   :map-obj.sync="map"
   :render-url="renderUrl"
   :size-info="sizeInfo"
   :tip="tip"
></gw-simple-render-arc>
  data() {
    return {
      asyncData: false,
      map: {},
      renderUrl:
        'http://localhost:6080/arcgis/rest/services/Basic/China_POI/MapServer/0',
      sizeInfo: {
        // 分级字段
        field: 'pm2_5',
        valueUnit: 'unknown',
        // 符号大小
        minSize: 1,
        maxSize: 50,
        // 分级数值范围
        minDataValue: 0,
        maxDataValue: 500
      },
      tip: 'pm2.5简单渲染'
    }
  }
含义类型默认值校验
asyncData渲染开关Booleanfalse不接收
map-objmap对象Arcgis规范下的map对象
render-url渲染服务String
size-info符号分级参数Object
tip提示词String简单渲染

6. 分级渲染

<gw-classbreaks-render-arc
  v-if="asyncData"
  :map-obj.sync="map"
  :filt-field="filtField"
  :render-url="renderUrl"
  :tip="tip"
></gw-classbreaks-render-arc>
  data() {
    return {
      asyncData: false,
      map: {},
      renderUrl:
        'http://localhost:6080/arcgis/rest/services/Basic/China_POI/MapServer/0',
      filtField: 'AQI',
      tip: 'AQI分级渲染'
    }
  }
含义类型默认值校验
asyncData渲染开关Booleanfalse不接收
map-objmap对象Arcgis规范下的map对象
render-url渲染服务String
filt-field渲染值参数String
tip提示词String分级渲染

7. 热力图渲染

<gw-heatmap-render-arc
  v-if="asyncData"
  :map-obj.sync="map"
  :filt-field="filtField"
  :render-url="renderUrl"
  :tip="tip"
></gw-heatmap-render-arc>
  data() {
    return {
      asyncData: false,
      map: {},
      renderUrl:
        'http://localhost:6080/arcgis/rest/services/Basic/China_POI/MapServer/0',
      filtField: 'pm2_5',
      tip: '热力图渲染'
    }
  }
含义类型默认值校验
asyncData渲染开关Booleanfalse不接收
map-objmap对象Arcgis规范下的map对象
render-url渲染服务String
filt-field渲染值参数String
tip提示词String热力图渲染

8. Tile图层加载

<gw-load-tile-lt
   v-if="asyncData"
   :map-obj.sync="map"
   :layer-url="layerUrl"
   @click="fn"
></gw-load-tile-lt>
  data() {
    return {
      asyncData: false,
      map: {},
      layerUrl:
        'http://webrd01.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}'
    }
  },
  methods: {
    fn(e) {
      // 地图动作函数
    }
  }
含义类型默认值校验
asyncData渲染开关Booleanfalse不接收
map-objmap对象Map对象
layer-urltile服务String
click点击函数function

9. 闪烁点

<gw-twinkle-point-sm-lt
  v-if="asyncData"
  :map-obj.sync="map"
  :data-url="dataUrl"
></gw-twinkle-point-sm-lt>
  data() {
    return {
      asyncData: false,
      map: {},
      layerUrl: 'http://webrd01.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}',
      dataUrl: 'https://iserver.supermap.io/iserver/services/data-DynamicData/rest/data'
    }
  }
含义类型默认值校验
asyncData渲染开关Booleanfalse不接收
map-objmap对象Map对象
data-url数据服务String
  1. 闪烁样式未上图

10. 加载图层

<gw-load-layer-sm-lt
  v-if="asyncData"
  :map-obj.sync="map"
  :layer-obj.sync="layerObj"
  :layer-type="layerType"
  :layer-url="layerUrl"
  :layer-options="layerOptions"
  @click="fn"
></gw-load-layer-sm-lt>
  data() {
    return {
      asyncData: false,
      map: {},
      layerObj: {},
      layerType: 'TiledMap',
      layerUrl: 'https://iserver.supermap.io/iserver/services/map-world/rest/maps/World',
      layerOptions: {}
    }
  }
含义类型默认值校验
asyncData渲染开关Booleanfalse不接收
map-objmap对象Map对象
layer-type服务类型矢量 / 影像 / 百度 / 天地图 / 瓦片’TiledMap‘
layer-url数据服务String
layer-options扩展项Object 参考iClient规范
layerType类型
TiledMap矢量
ImageMap影像
BaiduTile百度地图
TiandituTile天地图
WMTS瓦片地图

11. 鹰眼图

<gw-mini-map-sm-lt v-if="asyncData" :map-obj.sync="map" ></gw-mini-map-sm-lt>
  data() {
    return {
      asyncData: false,
      map: {},
      miniUrl: 'https://iserver.supermap.io/iserver/services/map-world/rest/maps/World',
      miniOptions: {}
    }
  }
含义类型默认值校验
asyncData渲染开关Booleanfalse不接收
map-objmap对象Map对象
mini-url鹰眼图地址String
mini-options配置项Object{ position: undefined }
  1. 有Bug,待回复,4.9
  2. 解决,有引用,显示无官方样式及右下角缩小标,待回复。4.12

12. 缩放

<gw-zoom-map-lt v-if="asyncData" :map-obj.sync="map"></gw-zoom-map-lt>
  data() {
    return {
      asyncData: false,
      map: {}
    }
  }
含义类型默认值校验
asyncData渲染开关Booleanfalse不接收
map-objmap对象Map对象
options扩展项Object{}

13. 比例尺

<gw-scale-map-lt v-if="asyncData" :map-obj.sync="map"></gw-scale-map-lt>
  data() {
    return {
      asyncData: false,
      map: {}
    }
  }
含义类型默认值校验
asyncData渲染开关Booleanfalse不接收
map-objmap对象Map对象
options扩展项Object{}

14. 切换底图

<gw-switch-layer-lt
  v-if="asyncData"
  :map-obj.sync="map"
  :base-maps="baseMaps"
></gw-switch-layer-lt>
  data() {
    return {
      asyncData: false,
      map: {},
      baseMaps: []
    }
  }

    init(that) {
      var baseMaps = []
      // baseMaps[底图名称,地图服务链接,服务类型,扩展项]
      baseMaps.push([
        'China',
        'https://iserver.supermap.io/iserver/services/map-china400/rest/maps/China',
        'TiledMap',
        {}
      ])
      baseMaps.push([
        'ChinaDark',
        'https://iserver.supermap.io/iserver/services/map-china400/rest/maps/ChinaDark',
        'TiledMap',
        {}
      ])
      that.baseMaps = baseMaps
    }
含义类型默认值校验
asyncData渲染开关Booleanfalse不接收
map-objmap对象Map对象
base-maps底图对象集合Array[]

15. 绘制工具组

<gw-draw-group-lt
  v-if="asyncData"
  :map-obj.sync="map"
  :options="options"
></gw-draw-group-lt>
  data() {
    return {
      asyncData: false,
      map: {},
      options: {}
    }
  }
含义类型默认值校验
asyncData渲染开关Booleanfalse不接收
map-objmap对象Map对象
options扩展项Object{}

16. 捕捉绘制

<gw-capture-draw-lt
  v-if="asyncData"
  :map-obj.sync="map"
  :options="options"
></gw-capture-draw-lt>
  data() {
    return {
      asyncData: false,
      map: {},
      options: {}
    }
  }
含义类型默认值校验
asyncData渲染开关Booleanfalse不接收
map-objmap对象Map对象
options扩展项Object{}

17. 服务区分析

<gw-service-area-find-sm-lt
  v-if="asyncData"
  :map-obj.sync="map"
  :service-url="serviceUrl"
  :center-point="centerPoint"
></gw-service-area-find-sm-lt>
data() {
  return {
    asyncData: false,
    map: {},
    serviceUrl:
      'https://iserver.supermap.io/iserver/services/transportationanalyst-sample/rest/networkanalyst/RoadNet@Changchun',
    centerPoint: [-3375, 5605]
  }
}
含义类型默认值校验
asyncData渲染开关Booleanfalse不接收
map-objmap对象Map对象
service-url分析服务String
center-point服务区经纬度Array

18. 缓冲区分析

<gw-buffer-analyst-sm-lt
  v-if="asyncData"
  :map-obj.sync="map"
  :service-url="serviceUrl"
  :parameters="parameters"
  :analyst-result.sync="analystResult"
></gw-buffer-analyst-sm-lt>
data() {
  return {
    asyncData: false,
    map: {},
    serviceUrl:
      'https://iserver.supermap.io/iserver/services/spatialanalyst-changchun/restjsr/spatialanalyst',
	parameters: {
      dataset: 'RoadLine2@Changchun',
      filter: "NAME='团结路'"
    },
    analystResult: {}
  }
}
含义类型默认值校验
asyncData渲染开关Booleanfalse不接收
map-objmap对象Map对象
service-url分析服务String
parameters分析参数Object
analyst-result接收分析结果Object{}不接收
dataset数据源中的数据集String
filter过滤条件String

19. 泰森多边形分析

<gw-voronoi-analyst-sm-lt
  v-if="asyncData"
  :map-obj.sync="map"
  :service-url="serviceUrl"
  :parameters="parameters"
  :analyst-result.sync="analystResult"
></gw-voronoi-analyst-sm-lt>
data() {
  return {
    asyncData: false,
    map: {},
    serviceUrl:
      'https://iserver.supermap.io/iserver/services/spatialanalyst-changchun/restjsr/spatialanalyst',
	parameters: {
      dataset: 'Factory@Changchun'
    },
    analystResult: {}
  }
}
含义类型默认值校验
asyncData渲染开关Booleanfalse不接收
map-objmap对象Map对象
service-url分析服务String
parameters分析参数Object
analyst-result接收分析结果Object{}不接收
dataset数据源中的数据集String

20. 表面分析

<gw-surface-analyst-sm-lt
  v-if="asyncData"
  :map-obj.sync="map"
  :service-url="serviceUrl"
  :parameters="parameters"
  :analyst-result.sync="analystResult"
></gw-surface-analyst-sm-lt>
data() {
  return {
    asyncData: false,
    map: {},
    serviceUrl:
      'https://iserver.supermap.io/iserver/services/spatialanalyst-sample/restjsr/spatialanalyst',
	parameters: {
      polygonset: [
        [4510338, -2010338],
        [4510338, 1063524],
        [3150322, 1063524],
        [3150322, -2010338]
      ],
        dataset: 'SamplesP@Interpolation',
        resolution: 9000,
        zValueFieldName: 'AVG_TMP'
    },
    analystResult: {}
  }
}
含义类型默认值校验
asyncData渲染开关Booleanfalse不接收
map-objmap对象Map对象
service-url分析服务String
parameters分析参数Object
analyst-result接收分析结果Object{}不接收
polygonset分析区域Array
dataset数据源中的数据集String
resolution分辨率Number
zValueFieldName用于提取操作的字段String

21. 叠加分析

<gw-overlayer-analyst-sm-lt
  v-if="asyncData2"
  :map-obj.sync="map"
  :service-url="serviceUrl"
  :parameters="parameters"
  :analyst-result.sync="analystResult"
></gw-overlayer-analyst-sm-lt>
data() {
  return {
    asyncData2: false,
    map: {},
    serviceUrl:
      'https://iserver.supermap.io/iserver/services/spatialanalyst-sample/restjsr/spatialanalyst',
	parameters: {
      sourceDataset: 'BaseMap_R@Jingjin',
      operateDataset: 'Neighbor_R@Jingjin',
      tolerance: 0
    },
    analystResult: {}
  }
}
含义类型默认值校验
asyncData2渲染开关,和图层不同,控制叠加顺序Booleanfalse不接收
map-objmap对象Map对象
service-url分析服务String
parameters分析参数Object
analyst-result接收分析结果Object{}不接收
sourceDataset源数据集String
operateDataset操作数据集String
tolerance容限Number0

Scene系列

需要new一个viewer对象挂载在window上

1.设置相机参数

<gw-fly-to-view
 v-if="asyncData"
 :camera-params="cameraParams"
></gw-fly-to-view>
data() {
  return {
    asyncData: false,
    cameraParams: {
      destination: {
        longitude: 114.2158,
        latitude: 22.4169,
        height: 419
      },
      orientation: {
        direction: {
          x: 0.5945902470233576,
          y: -0.4793925407032518,
          z: 0.6454806194323606
        },
        up: {
          x: -0.1629169048778112,
          y: 0.7143202157541026,
          z: 0.6805914424014209
        },
        heading: 5.899584294129949
      }
    }
  }
}
含义类型默认值校验
viewer全局viewer对象,挂载到windowObject
asyncData渲染开关Booleanfalse不接收
cameraParams相机参数Object
destinationWGS84世界坐标系中的最终位置Object
longitude以度为单位的经度值Number
latitude以度为单位的纬度值Number
height以米为单位的椭球高Number0.0
orientation属性集合Object
direction方位Number
up上方向Number
heading方位角Number
pitch俯仰角Number
roll滚动角Number

2. 叠加BingMap地图

<gw-add-bingmap-image-provider
  v-if="asyncData"
  :image-data="imageData"
></gw-add-bingmap-image-provider>
data() {
  return {
    asyncData: false,
    imageData: {
      url: 'https://dev.virtualearth.net',
      key: UrlC.URL_CONFIG.BING_MAP_KEY
    }
  }
}
含义类型默认值校验
viewer全局viewer对象,挂载到windowObject
asyncData渲染开关Booleanfalse不接收
imageData地图服务参数Object

3. 叠加地形图

<gw-add-terrain-provider
  v-if="asyncData"
  :terrain-url="terrainUrl"
></gw-add-terrain-provider>
data() {
  return {
    asyncData: false,
    scmUrl: UrlC.URL_CONFIG.SCENE_XGPARK
  }
}
含义类型默认值校验
viewer全局viewer对象,挂载到windowObject
asyncData渲染开关Booleanfalse不接收
terrain-urlSTK地形服务String

4. 叠加OpenStreetMap地图

<gw-add-openstreetmap-image-provider
  v-if="asyncData"
  :image-data="imageData"
></gw-add-openstreetmap-image-provider>
data() {
  return {
    asyncData: false,
    imageData: {
      url: 'https://a.tile.openstreetmap.org/'
    }
  }
}
含义类型默认值校验
viewer全局viewer对象,挂载到windowObject
asyncData渲染开关Booleanfalse不接收
imageData地图服务参数Object

5. 叠加图层组

<gw-add-image-provider-group
  v-if="asyncData"
  :image-data-set="imageDataSet"
></gw-add-image-provider-group>
data() {
  return {
    asyncData: false,
    imageDataSet: [
      {
        name: '墨卡托投影坐标系',
        url: UrlC.URL_CONFIG.SUPERMAP_IMG_MEC,
        value: 'MEC'
      },
      {
        name: '经纬度坐标系',
        url: UrlC.URL_CONFIG.SUPERMAP_IMG_WGS,
        value: 'WGS'
      }
    ]
  }
}
含义类型默认值校验
viewer全局viewer对象,挂载到windowObject
asyncData渲染开关Booleanfalse不接收
imageDataSet图层组默认选中第一个Arraylengt != 0
name图层名称String
url图层服务String
value标拾String

6. 时态动画

<gw-image-providers-animation
  v-if="asyncData"
  :image-urls="imageUrls"
></gw-image-providers-animation>
data() {
  return {
    asyncData: false,
    imageUrls: [
      UrlC.URL_CONFIG.TENSE_IMG0,
      UrlC.URL_CONFIG.TENSE_IMG1,
      UrlC.URL_CONFIG.TENSE_IMG2,
      UrlC.URL_CONFIG.TENSE_IMG3,
      UrlC.URL_CONFIG.TENSE_IMG4,
      UrlC.URL_CONFIG.TENSE_IMG5
    ]
  }
}
含义类型默认值校验
viewer全局viewer对象,挂载到windowObject
asyncData渲染开关Booleanfalse不接收
imageUrls影像服务数组Arraylengt > 3

7. 地形开挖

<gw-terrain-excavation
  v-if="asyncData"
  :stk-url="stkUrl"
></gw-terrain-excavation>
data() {
  return {
    asyncData: false,
    stkUrl:
        'https://www.supermapol.com/realspace/services/3D-stk_terrain/rest/realspace/datas/info/data/path'
  }
}
含义类型默认值校验
viewer全局viewer对象,挂载到windowObject
asyncData渲染开关Booleanfalse不接收
stkUrl开挖图层String

8. 通视分析

<gw-general-analyst
  v-if="asyncData"
  :cbd-url="cbdUrl"
></gw-general-analyst>
data() {
  return {
    asyncData: false,
    cbdUrl: UrlC.URL_CONFIG.SCENE_CBD
  }
}
含义类型默认值校验
viewer全局viewer对象,挂载到windowObject
asyncData渲染开关Booleanfalse不接收
cbd-urlCBD模型服务String

9. 淹没模型分析

<gw-flood-model-analyst
  v-if="asyncData"
  :scm-url="scmUrl"
></gw-flood-model-analyst>
data() {
  return {
    asyncData: false,
    scmUrl: UrlC.URL_CONFIG.SCENE_XGPARK
  }
}
含义类型默认值校验
viewer全局viewer对象,挂载到windowObject
asyncData渲染开关Booleanfalse不接收
scm-urls3m模型服务String

10. 淹没地形分析

<gw-add-terrain-provider
  v-if="asyncData"
  :terrain-url="terrainUrl"
></gw-add-terrain-provider>
data() {
  return {
    asyncData: false,
    terrainUrl: UrlC.URL_CONFIG.STK
  }
}
含义类型默认值校验
viewer全局viewer对象,挂载到windowObject
asyncData渲染开关Booleanfalse不接收
terrain-urlSTK地形服务String

11. 填挖方分析

<gw-cut-fill-analyst
  v-if="asyncData"
  :scene-url="sceneUrl"
  :spatial-data-url="spatialDataUrl"
></gw-cut-fill-analyst>
data() {
  return {
    asyncData: false,
    sceneUrl:
      'http://www.supermapol.com/realspace/services/3D-dxyx_ios2/rest/realspace',
    spatialDataUrl:
      'http://www.supermapol.com/realspace/services/spatialAnalysis-dxyx_ios/restjsr/spatialanalyst/datasets/DEM@%E5%9B%9B%E5%A7%91%E5%A8%98%E5%B1%B1/terraincalculation/cutfill.json?returnContent=true'
  }
}
含义类型默认值校验
viewer全局viewer对象,挂载到windowObject
asyncData渲染开关Booleanfalse不接收
scene-url场景服务String
spatial-data-url空间数据服务String

12. 三维标绘

<gw-plotting-util-primitive v-if="asyncData"></gw-plotting-util-primitive>
data() {
  return {
    asyncData: false
  }
}
含义类型默认值校验
viewer全局viewer对象,挂载到windowObject
asyncData渲染开关Booleanfalse不接收

13. GLTF模型

<gw-add-gltf-entities
  v-if="asyncData"
  :gltf-url="gltfUrl"
  :position="position"
  :is-zoom-to="isZoomTo"
></gw-add-gltf-entities>
data() {
  return {
    asyncData: false,
    gltfUrl:
      'http://support.supermap.com.cn:8090/webgl/examples/webgl/SampleData/gltf/man/walk.gltf',
    position: {
      destination: {
        longitude: 116.731444,
        latitude: 39.528856,
        height: 0
      }
    },
    isZoomTo: true
  }
}
含义类型默认值校验
viewer全局viewer对象,挂载到windowObject
asyncData渲染开关Booleanfalse不接收
gltf-urlGLTF模型地址String
position模型位置Cesium.Cartesian3.fromDegrees的经纬度及高程值Object
isZoomTo是否缩放至Booleantrue

14. KML文件

<!-- 添加到当前位置 -->
<gw-add-kml-data v-if="asyncData" :kml-url="kmlUrl"></gw-add-kml-data>
data() {
  return {
    asyncData: false,
    kmlUrl: 'http://support.supermap.com.cn:8090/webgl/examples/webgl/SampleData/kml/crane.kml'
  }
}
含义类型默认值校验
viewer全局viewer对象,挂载到windowObject
asyncData渲染开关Booleanfalse不接收
kml-urlKML文件地址String

15. 下载场景

<gw-download-picture v-if="asyncData"></gw-download-picture>
data() {
  return {
    asyncData: false
  }
}
含义类型默认值校验
viewer全局viewer对象,挂载到windowObject
asyncData渲染开关Booleanfalse不接收
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
基于Vue实现组件堆叠式流程设计器是指使用Vue框架来构建一个可以让用户通过拖拽、堆叠组件的方式来设计流程的可视化工具。 Vue提供了强大的数据驱动和组件化开发的特性,非常适合用于实现流程设计器。首先,我们可以将每个流程节点封装成一个Vue组件,每个组件包含节点的展示、拖拽和连接等功能。用户可以通过拖拽节点来建立流程,并通过连接节点来定义流程的顺序。 其次,我们可以利用Vue的数据双向绑定和计算属性的特性,实现节点之间的数据传递和计算。例如,每个节点可以有输入参数和输出参数,用户可以通过在节点之间建立连接来传递参数。在Vue的计算属性中,我们可以根据节点之间的连接关系,实时计算节点的输出结果,并将结果反映在视图中。 另外,Vue还提供了强大的动画和过渡效果的支持,可以通过添加动画效果来增强用户交互体验。例如,当用户拖拽节点时,可以给节点添加拖拽的动画效果;当用户连接节点时,可以给连接线添加延展和收缩的过渡动画等。 最后,为了让用户能够保存和加载已设计的流程,我们可以使用Vue组件通信机制来实现父子组件之间的数据传递。用户可以点击保存按钮将流程数据传递给父组件,然后父组件可以将数据进行持久化保存或者向后端发送请求保存。加载已保存的流程时,父组件可以将数据传递给子组件进行展示。 总之,基于Vue实现组件堆叠式流程设计器可以充分发挥Vue框架的优势,提供可拓展、易用和强大的流程设计功能。这样的设计器可以为用户节省时间和精力,提高流程设计的效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值