# 高级

# 富文本使用

zk-view支持富文本编辑器功能

插入面板中,拖入富文本组件 测点代码
双击元素框,弹出富文本编辑栏,进行富文本编辑
测点代码
点击图纸空白处,退出富文本编辑

# 绘图功能

zk-view支持鼠标绘图的 画笔、钢笔、橡皮工具

  • 画笔: 连续绘制曲线
  • 钢笔: 连续绘制端点直线
  • 橡皮: 擦除图形,也可擦除其他画布图形,实现抠图效果 使用方法:
  1. 功能栏切换到绘图面板 测点代码
  2. 点击画笔,使用鼠标在图纸上绘制图形 测点代码
  3. 绘制完成后,点击清除画笔,退出绘制或双击左键,退出画笔,生成图形 测点代码
  • 可以通过选择不同配置项进行画笔的设置
  1. 画笔大小: 线条的粗细
  2. 断点形状: 绘制虚线时断点是否锐利、平滑
  3. 画笔颜色: 画笔颜色设置
  4. 边角形状: 钢笔工具拐点是否锐利、平滑
  5. 画笔线性: 选择绘制的线型(直线、虚线、点虚线)
  6. 闭合端点: 绘制的线性自动首尾相连,并且内部填充颜色
  7. 阴影工具: 设置线段的阴影效果

钢笔工具、橡皮工具使用方法类似画笔工具

# 视频组件使用

视频组件

zk-view 内置 xgplayer 西瓜视频插件 (opens new window)
支持的视频格式及插件类型如下:

使用方法:

  1. 将功能面板切换到插入栏,拖入视频组件的元素 测点代码
  2. 配置面板对视频组件进行配置
    测点代码
    配置说明:
  • 显示模式:画布缩放时,视频的缩放模式有以下几种
    测点代码
  • URL地址:视频的播放地址,如 https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/byted-player-videos/1.0.0/xgplayer-demo.mp4
  • 预览图:在视频未加载时,默认显示的图片 设置方法如下:
  1. 元素栏找到设置背景的图片右键打开复制图片标识
    测点代码
  2. 粘贴标识到预览图输入框中
    测点代码
  3. 点击更新视图,更新背景图 测点代码
  • 预设音量:配置代开网页时,播放器的音量大小
  • 自动播放:配置是否视频自动播放
  • 参数配置 参数配置为 xgplayer 标准 Json 配置项 (opens new window)
    测点代码
    示例代码:
{
    poster: "//lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/byted-player-videos/1.0.0poster.jpg",
    playsinline: true,
    thumbnail: {
        pic_num: 44,
        width: 160,
        height: 90,
        col: 10,
        row: 10,
        urls: ['//lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/byted-player-videos/1.0.0/    xgplayer-demo-thumbnail.jpg'],
    },
    danmu: {
      comments: [
        {
          duration: 15000,
          id: '1',
          /docs/start: 3000,
          txt: '长弹幕长弹幕长弹幕长弹幕长弹幕',
          style: {  //弹幕自定义样式
            color: '#ff9500',
            fontSize: '20px',
            border: 'solid 1px #ff9500',
            borderRadius: '50px',
            padding: '5px 11px',
            backgroundColor: 'rgba(255, 255, 255, 0.1)'
          }
        }
      ],
      area: {
        /docs/start: 0,
        end: 1
      }
    },
    height: window.innerHeight,
    width: window.innerWidth,
    whitelist: ['']
}

# 图表功能使用

切换功能模块到图表栏
测点代码

说明

zk-view 内置 Echarts 模块,支持大部分Echarts图表有:

  • 基础图表:支持折线图、柱状图、饼状图、散点图、热力图等18种
  • 地图图表:支持svg地图、geo地图、百度在线地图3种
  • 3D图表: 支持3D柱状图、3D散点图、3D曲面图、3D折线图、3D地图、地球6种

图表支持自定义配置,可实现丰富的展示效果

  • 图表配置项: 测点代码
  1. 主题模式:明亮/暗黑两种模式可以选择
  2. 测点选择:支持添加多个测点
    测点代码
  3. option配置 点击 option 配置,将弹出独立的 option 配置面板 测点代码

option配置面板功能说明

本配置项根据Echarts异步数据的加载与动态更新 (opens new window)方式将 Echarts option 配置文件划分为图表样式参数, 初始化参数, 数据刷新参数三部分,每一部分配置文件和方式如下:

# 图表样式参数

图表样式参数配置说明

图表样式参数配置Echarts的静态样式,纯Json语法,不支持Javascript语法,zk-view在图表初始化的时候,首先执行图表的样式参数 语法:JSON
执行时机:图表创建时加载一次
重要:本文件必须仅支持JSON数据格式,不支持函数方法
如需使用动态函数表达式,可在初始化参数中,或者数据刷新参数中使用表达式设置

示例代码

{
  "title": [{
    "show": true,
    "text": "标题xxx"
  }],
  "legend": [{
    "show": true
  }]
}

图表样式参数右侧的工具面板提供了常用的配置项说明
测点代码

更多配置项,可参考EchartsOption配置项 (opens new window)

# 初始化参数

初始化参数配置说明

图表初始化参数配置Echarts的初始化静态数据,支持Javascript语法,zk-view在执行完图表样式参数后,执行初始化参数,初始化参数包含内置 chart 参数,为chart赋值后,zk-view自动加载执行

内置参数chart, 可通过自定义 chart.xxx = xxx,将参数传递到数据刷新参数中
必须定义option,对图表option进行初始化参数设置 内置参数自带数据说明:

// 内置参数:chart

  echarts: echarts实例,
  option: {} // 空option对象
  chart: {} // 数据刷新可传递预定义参数

  • 初始化参数代码示例
var data = [150, 230, 224, 218, 135, 147, 260];
option = {
  xAxis: {
    type: 'category',
    data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
  },
  yAxis: {
    type: 'value'
  },
  series: [
    {
      type: 'line',
      data: data
    }
  ]
};
chart.data = data;

# 数据刷新参数

数据刷新参数说明

当图表绑定测点后,测点数据更新时,会自动调用数据刷新参数脚本 数据刷新参数内置参数:bindData

  • chart : 继承于初始化参数中的chart
    数据刷新参数脚本继承于初始化参数中的chart参数,可以通过chart.xxx获取
  • 在初始化参数中自定义的chart.xxx参数在数据刷新参数中仍然可以通过chart.xxx进行获取
  • chart参数示例
  echarts: echarts实例,
  option: {}, // 空option对象
  chart: {} // 数据刷新可传递预定义参数

  • bindData : 绑定测点更新的最新数据(包含了 valuetime
    获取bindData的代码可以通过点击 复制props代码 进行快速获取 测点代码

bindData的数据形式

bindData: {
  '源.测点1': { value:, time: 时间戳},
  '源.测点2': { value:, time: 时间戳},
  '源.测点3': { value:, time: 时间戳}
}
  • 获取bindData的某个测点更新值示例:bindData['a.bat_0_10_34bd'].value
  • 获取bindData的某个测点更新时间示例:bindData['a.bat_0_10_34bd'].time

数据刷新参数必须 定义 option
数据刷新参数脚本示例

console.log(chart, bindData);
chart.data.shift();
var value = bindData['a.bat_0_10_34bd'].value
chart.data.push(value);
option = {
  series: [{
      data: chart.data
    }]
};

# 图表组件使用示例

  • 创建一个静态数据图表(无需绑定测点)
  1. 配置图表样式参数
{
  "title": [{
    "show": true,
    "text": "静态数据图表示例",
    "left": "center",
    "top": 10
  }],
  "legend": [{
    "show": true
  }],
  "tooltip": {
    "trigger": "axis"
  }
}
  1. 配置初始化参数
var data = [150, 230, 224, 218, 135, 147, 260];
chart.option = {
  xAxis: {
    type: 'category',
    data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
  },
  yAxis: {
    type: 'value'
  },
  series: [
    {
      type: 'line',
      data: data
    }
  ]
};
chart.data = data;
  1. 数据刷新参数暂不配置,预览效果如图 测点代码
  • 动态图表(添加绑定测点)
  1. 添加数据测点绑定
    测点代码

  2. 配置图表样式参数

{
  "title": [{
    "show": true,
    "text": "静态数据图表示例",
    "left": "center",
    "top": 10
  }],
  "legend": [{
    "show": true
  }],
  "tooltip": {
    "trigger": "axis"
  }
}
  1. 配置初始化参数
var data = [150, 230, 224, 218, 135, 147, 260];
chart.option = {
  xAxis: {
    type: 'category',
    data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
  },
  yAxis: {
    type: 'value'
  },
  series: [
    {
      type: 'line',
      data: data
    }
  ]
};
chart.data = data;
  1. 配置数据刷新参数
chart.data.shift();
var value = bindData['a.bat_0_10_53fe'].value;
chart.data.push(value);
var option = {
  series: [{
      data: chart.data
    }]
};
return option;
  1. 效果查看的三种方式
  • 保存配置,实时预览进行查看效果
  • 在Echarts Option编辑器面板 点击运行测试查看预览更新
  • 在代码编辑框使用 ctrl + s 保存脚本更新

预览效果 测点代码

# Vue组件功能使用

切换功能模块到Vue组件栏
测点代码

Vue组件配置项说明:

  1. Template 脚本面板说明 Template面板编写 HTML 代码,支持ElementUI方式,示例代码
<!-- 最外层div的class建议设置成唯一的类名,避免其他组件造成样式污染 --
<div class="view"
  <el-button type="primary" @click="testClick"按钮</el-button
</div
  1. Script 脚本面板说明 Script面板编写 Javascript Vue配置模板,示例代码
export default {
  props: [],
  data () {
    return {}
  },
  mounted () {},
  methods: {
    testClick() {
      console.log('按钮点击测试')
    }
  }
}
  1. Style 脚本面板说明 Style面板编写 支持 CSS 和 Less 语法,示例代码
.view {
  height: 100%;
  width: 100%;
}

# Vue组件绑定数据

  1. 添加数据测点绑定
  2. 复制 props 代码
  3. 在Script面板中,粘贴替换 props测点代码

props 参数说明

# 在Vue组件中,为了便于测点的使用,数据源和测点代码之间的分隔符以下划线 _ 分割

props参数中,对于任意一个绑定的测点,都同时包含两个props监听的参数,如测点 a_x1
将在props中出现两个参数a_x1a_x1_time
a_x1 表示该测点的值(可以是对象或数值)
a_x1_time 表示该测点的数据更新时间戳,在a_x1数据更新时,a_x1_time同步更新

通过watch监听a_x1_time的更新,可以进行页面的相应函数处理

示例代码:

export default {
  props: ['a_x1', 'a_x1_time'],
  data () {
    return {
      text: ''
    }
  },
  mounted () {
    console.log("初始化组件")
  },
  watch: {
    a_x1_time() {
      // 如果 a_x1为对象,如 a_x1 = { value: "新数据", tag: "测试" }
      this.text = this.a_x1.value
    }
  },
  methods: {}
}

# 图纸初始化脚本使用

画布初始化脚本说明

画布初始化脚本在加载图纸之前执行,可以实现权限认证等功能

  • 配置方式:
    1. 在画布配置栏点击初始化脚本,弹出脚本编辑面板

测点代码

脚本编辑的说明:

  • 脚本内置参数 params 实例,其包含项如下
params: {
  stageJson: json, // 图纸json数据
  axios: axios,    // axios实例,发送请求
  go: function     // 执行go方法后创建图纸
}
  • params./docs/startJson: 包含图纸的全部json数据对象
  • params.axios: 内置的axios组件,可发送http请求
  • params.go: 执行 params.go()方法后,图纸开始进行初始化加载

必须执行 go 方法(params.go())才进行图纸的创建

登录认证脚本示例

params.axios.get('/user?token=12345')
  .then(function (response) {
    // 认证成功,加载图纸
    params.go()
  })
  .catch(function (error) {
    // 认证失败,不再执行图纸创建函数
    alert('认证失败')
  });

# 图片下载

zk-view 支持多种图片的导出下载方式

# 全图图片下载

  1. 在画布上右键点击下载全图图片
    测点代码
  2. 在导出面板素材导出/导出全图图片点击按钮下载 测点代码

点击后弹出下载图片配置项 测点代码

配置说明

zk-view 基于 canvas 矢量图技术,可以自由控制分辨率且达到不失真的效果

# 局部图片下载

zk-view 支持选中图形的局部图片下载
测点代码

选中需要的节点,右键菜单点击下载选中节点图片

# 动态图片GIF下载

  1. 下载面板/构建工具中下载Gif制作工具
    测点代码
    免安装软件,双击运行GifCam.exe程序
    测点代码

  2. 打开图纸的实时预览,将Gif制作工具窗口缩放到预览窗大小 测点代码

  3. 点击录制按钮,根据需要等待对应的时间后,保存即可 测点代码

# 数据源下载使用

数据源

zk-view 下载面板,提供了图纸内置的四种空数据源,编程语言为java

  • HTTP GET 数据源
  • HTTP POST 数据源
  • WebSocket 数据源
  • WebSocket 官方心跳源

通过点击下载对应的示例java程序源码包,可进行参考和二次封装,实现与图纸数据源的后端程序对接

测点代码

如 HTTP GET 数据源下载后的具体内容为
测点代码

可参考java的编程语法

# 构建工具下载使用

图纸构建

Gif制作工具: 导出GIF动图使用
nginx导出HTML工程的部署工具

# 图纸导出应用

图纸工程化导出

zk-view支持 HTML工程 导出

  • HTML工程 包含了基础的HTML工程结构,可直接部署到Nginx中进行部署

# HTML工程部署案例

HTML工程案例步骤

  1. 点击 导出HTML工程,弹出 导出配置面板 测点代码
    导出配置面板
    测点代码

  2. 导出HTML工程配置 选中需要导出的图纸,并设置默认主页,主页将被自动导出为 index.html
    访问地址可自定义配置,配置后,访问的地址为 http://xxx/(配置的访问地址).html
    如配置为 abc 则部署到nginx中后,通过 http://xxx/abc.html进行访问 测点代码

  3. 点击 导出HTML工程按钮

  • 将下载好的压缩包 解压备用
    HTML压缩包

HTML压缩包

# 下载nginx

  • 可自行到nginx官网下载nginx

  • 可在功能栏切换到下载面板,并点击 构建工具 中的 nginx nginx

  • 下载nginx并解压
    nginx

  • 将上一步导出并解压好的 Html 工程文件复制到 nginx html 目录下 nginx

# 启动项目

# HTML工程页面跳转

  1. 配置元素动画为 事件动画/动作条件启动(鼠标单击时)/跳转地址(http://localhost/nextPage.html) nginx
  2. 导出图纸设置为目标页面的地址为 nextPage
    nginx
  3. 部署HTML项目