Vue 使用指南

1. 安装Monet-SDK

npm install @jkyu/monet-draw-vue

2. 修改webpack配置

const CopyPlugin = require('copy-webpack-plugin');
const path = require('path');
const draw = 'node_modules/@jkyu/monet-draw-vue/build';
const target = 'http://uc-dev.jdcityos.com';
module.exports = {
  configureWebpack: (config) => {
    config.plugins.push(
      new CopyPlugin(
        [
          {
            from: path.join(draw, 'static'),
            to: 'static'
          }
        ],
      )
    );
  },
  devServer: {
    port: 8600,
    // 配置代理
    proxy: {
      '/api': {
        target,
        ws: true,
        changeOrigin: true,
        secure: false,
        headers: {
          Host: '',
          Connection: 'keep-alive'
        },
        pathRewrite: {
          '^/api': '/api'
        }
      },
      '/geojson': {
        target,
        secure: false,
        changeOrigin: true,
        headers: {
          Host: '',
          Connection: 'keep-alive'
        },
        pathRewrite: {
          '^/geojson': '/geojson'
        }
      }
    }
  }
};

3. 引用样式

<head>
    ...
    <link
      rel="stylesheet"
      type="text/css"
      href="<%= BASE_URL %>static/monet-sdk.css"
    />
    ...
</head>

4. 微服务地址(可选)

  globalOption({
    // 配置微服务地址,用于解析大屏信息
    // 默认为:https://imonet.jdcloud.com
    serverURL: "https://imonet.jdcloud.com"
  })

5. 使用Monet-SDK

<template>
  <div className="App">
    <div id="leftDiv" />
  </div>
</template>
<script>
import { onMounted, defineComponent } from 'vue';
import { MonetRender } from '@jkyu/monet-draw-vue';
export default defineComponent({
  name: 'App',
  setup () {
    let leftEvent = null;
    onMounted(() => {
      const leftRender = new MonetRender({ 
        bigScreenURL: '',     // 大屏发布地址
        width:"650px",        // 高度
        height:"300px",       // 宽度
        container: 'leftDiv', // 容器ID
        token:'234234...'     // 授权码
      });
      leftRender.initDataPool = () => ({});               // 初始化数据池
      leftRender.beforeScreenRender = (screenInfo) => {}; // 大屏信息渲染前
      leftRender.beforeComRender = (components) => {};    // 组件信息渲染前
      leftRender.watchDataPool = (dataPool) => {};        // 监听数据池
      // 组件渲染完成
      leftRender.onload = (monetEvent) => {
        leftEvent = monetEvent;
        // 根据组件ID,修改样式信息
        monetEvent.setComConfig(3289, (config) => {
           config.style = {
              backgroundColor: 'rgba(224,72,175,0.5)',
              font: { size: 32, color: '#000000' }
           };
           return config;
        });
      };
    })
    // 设置变量
    const setDataPool = (key,value)=>{
      leftEvent.setDataPool(key, value);
    }
    // 根据组件ID,修改系列信息
    const setComSeries = ()=>{
      leftEvent.setComSeries(3291, (series) => {
        series[0].barStyle.color = '#6DC8EC';
        return series;
      });
    }
    return {
      setDataPool,
      setComSeries
    }
  }
})
</script>
<style>
.App {
  height: 100vh;
  display: flex;
}
</style>
最后更新时间: 11/22/2021, 10:26:45 AM