画流程图、状态图、时序图、甘特图的JS库-mermaid-js

参考地址:https://github.com/mermaid-js/mermaid
原生使用方式:

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title></title>
	<script src="./js/mermaid.min.js"></script>
	<script>
		mermaid.initialize({ startOnLoad: true });
	</script>
</head>
<body>
	Here is one mermaid diagram:
	        <div class="mermaid">
	            graph TD 
	            A[Client] --> B[Load Balancer] 
	            B --> C[Server1] 
	            B --> D[Server2]
	        </div>
	
	        And here is another:
	        <div class="mermaid">
	            graph TD 
	            A[Client] -->|tcp_123| B
	            B(Load Balancer) 
	            B -->|tcp_456| C[Server1] 
	            B -->|tcp_456| D[Server2]
	        </div>
</body>
</html>

效果图:
image

vue简单使用方式:

index.html静态模板引入mermaid.js:

<script type="text/javascript" src="./static/mermaid.min.js"></script>

在static下放一个模拟后端返回的mock数据,这儿让后端返回html格式的如result.html:

graph TD
A[Client] --> B[Load Balancer]
B --> C[Server1]
B --> D[Server2]
style A fill:#0f0,stroke-width:5px,stroke:#0f0,opacity:0.5
style B fill:#0f0,stroke-width:5px,stroke:#0f0,opacity:0.5

在vue页面使用如下:

<template>
    <div class="mermaid" v-html="html"></div>
</template>

<script>
import axios from 'axios';
export default {
  data () {
    return {
      html: ''
    }
  },
  created() {
    axios({
      method: 'get',
      url: '/static/result.html',
      responseType: 'html'
    }).then((res) => {
      this.html = res.data;
    })
  },
  mounted() {
    mermaid.initialize({ startOnLoad: true });
  }
}
</script>
posted @ 2022-05-12 09:20  风雨后见彩虹  阅读(2583)  评论(0编辑  收藏  举报