全球新消息丨可视化—gojs 超多超实用经验分享(一)
可视化的库非常多,如:echarts、highcharts、antv系列、d3、gojs 按照可自定义绘图的程度排序:gojs、d
2023-05-04可视化的库非常多,如:echarts、highcharts、antv 系列、d3、gojs.....
(资料图片)
按照可自定义绘图的程度排序: gojs、d3js > antv > echarts 、highcharts
如果需求简单,不需要自定义图元素,那么 echarts 、highcharts 看中哪个 demo 效果就选用哪个库。
如果有一定程度需要自定义图元素,那么可以看 antv g2/g6 demo 是否能满足需求,可自定义大部分图元素。
如果上面的都不能解决你的需求,那么就是高可定制的,可以考虑 d3js、gojs,还是先去看 demo,看哪个更接近你的需求就采用哪个。
gojs 是一个用于构建交互式可视化图的 js 库,使用可自定义的模板和布局构建复杂节点、链接和组,从而构建出简单到复杂的各类图,如流程图、脑图、组织图、甘特图等。而且提供了许多用于用户交互的高级功能,例如拖放、复制和粘贴、就地文本编辑......
本文是关于如何使用可视化库 gojs 的介绍及使用时的小技巧。gojs 的高可自定义性,非常适合需求复杂的图交互。
绘制基本流程简单介绍,
引入库,可以下载,也可以引入 cdn 地址html 文件创建画布容器,并设置宽高创建实例,定义布局,样式,交互,属性,事件等绑定节点和连线数据,渲染图表先绘制出基本的实例,让后续的学习,有个大致的轮廓
> <script lang="ts" setup> import go from "@/assets/js/go"; import { onMounted } from "vue"; let diagram: any = null; const $ = go.GraphObject.make; onMounted(() => { init(); }); function init() { // 创建diagram实例, diagram = $(go.Diagram, "myDiagramDiv"); // 分组模板 diagram.groupTemplate = $(go.Group, "Auto", { /* options 后期主要学习部分 */ }); // 连线模板 diagram.linkTemplate = $(go.Link, { /* options 后期主要学习部分 */ }); // 节点模板 diagram.nodeTemplate = $(go.Node, "Auto", { /* options 后期主要学习部分 */ }); // 绘制节点模板 追加新的 自定义的模板类型 diagram.nodeTemplateMap.add(); diagram.layout = $(go.LayeredDigraphLayout, { direction: 0, // 布局方向,0 水平 90 垂直 layerSpacing: 120, // 节点间隔 isOngoing: false, }); var nodeDataArray = []; // 节点集合 var linkDataArray = []; // 分组集合 diagram.model = new go.GraphLinksModel(nodeDataArray, linkDataArray); }</script>
1. 设置分组模板,默认样式,统一最小宽度,展开收起状态监听// 分组模板diagram.groupTemplate = $( go.Group, "Auto", { layout: $(go.LayeredDigraphLayout, { direction: 0, columnSpacing: 5 }), isSubGraphExpanded: false, // 默认展开 true 、折叠false. subGraphExpandedChanged: function (group) {}, // 功能 小 ## 4 }, $( go.Shape, "RoundedRectangle", // 分组形状,圆角矩形 { parameter1: 5, opacity: 0.7, minSize: new go.Size(120, NaN) }, // 圆角 透明度 统一最小宽度 new go.Binding("fill", "color"), // 绑定填充色,如果是固定颜色,可以直接在上述对象中,填写对应的属性,如 fill:"#ccc" new go.Binding("stroke", "color") // 绑定描边色,同上 ), $( go.Panel, "Vertical", { defaultAlignment: go.Spot.Left, margin: 4 }, $( go.Panel, "Horizontal", { defaultAlignment: go.Spot.Top, margin: 4, padding: new go.Margin(5, 5, 5, 2) }, // 设置收缩按钮,用于展开折叠子图 +/- $("SubGraphExpanderButton", { padding: new go.Margin(0, 5, 0, 0) }), $( go.TextBlock, { font: "bold 12px Sans-Serif", stroke: "white" }, new go.Binding("text", "", (node) => node.key + `(${node.children})`) // 分组名称+成员个数: name(children) ) ), // 分组展开后的 面板占位 $( go.Placeholder, { background: "white" }, new go.Binding("padding", "", function (node) { // 每组背景色和边距 return node.children ? new go.Margin(10, 10) : new go.Margin(0, 10); }) ) ));
2. 分组名称显示成员个数: 分组名称+成员个数: name(children)$( go.TextBlock, { font: "bold 12px Sans-Serif", stroke: "white" }, new go.Binding("text", "", (node) => node.key + `(${node.children})`) // 分组名称+成员个数: name(children));
3. 分组成员为空时,不显示 placeholder 占位留白// 分组展开后的 面板占位$( go.Placeholder, { background: "white" }, new go.Binding("padding", "", function (node) { // 每组背景色和边距 return node.children ? new go.Margin(10, 10) : new go.Margin(0, 10); }));
4. 分组第一次展开请求获取成员接口,监听展开收起状态 subGraphExpandedChanged:fnsubGraphExpandedChanged: function (group) { // 子图展开或收起的状态 group.isSubGraphExpanded var groupData = group.part.data; // 获取分组 数据 if (!groupData.isRequested) { // 设置一个标识位,标明该分组数据是否 有请求过接口, // 未请求过,可以编写请求接口代码,或者添加已知节点代码, groupData.isRequested = true; diagram.model.addNodeData({ key: "任意要显示的node节点名称", group: groupData.key, color: groupData.color, icon: groupData.icon, }); // diagram.model.addLinkData({ from: "", to: "" }) // 新增节点 有连线关系则添加连线对象 diagram.animationManager.stopAnimation(); // 取消动画 } // 请求过 就直接 展开或收起分组 isOngoing 属性true会自动布局,但是会影响用户拖拽效果,因此分组自行布局后,需要在改为false diagram.layout.isOngoing = true; setTimeout(() => { diagram.layout.isOngoing = false; });}
5. 设置节点模板// 节点模板diagram.nodeTemplate = $( go.Node, "Auto", { mouseEnter: mouseEnter, mouseLeave: mouseLeave, click: nodeclick, }, $( go.Shape, "Rectangle", { strokeWidth: 1, stroke: "white", fill: "white" }, new go.Binding("stroke", "isHighlighted", (sel) => (sel ? "#1E90FF" : "white")).ofObject(), // 鼠标选中高亮样式 new go.Binding("strokeWidth", "isHighlighted", (sel) => (sel ? 3 : 1)).ofObject() ), $( go.Panel, "Horizontal", { width: 280, padding: new go.Margin(5, 5, 5, 2) }, $( go.TextBlock, // 设置 icon { font: "bold 12px Sans-Serif", stroke: "white", width: 24, textAlign: "center" }, new go.Binding("text", "icon"), // 绑定icon 图表文案 new go.Binding("background", "color") // 绑定 背景色 ), $( go.TextBlock, { margin: 5, width: 240, font: "15px Verdana", stroke: "#444", maxSize: new go.Size(260, NaN), maxLines: 1, overflow: go.TextBlock.OverflowEllipsis, // maxSize maxLines overflow 属性联合使用,用于文案截断 显示... name: "TEXT", // 命名随意,用于后期 鼠标状态事件,节点成员的获取 }, new go.Binding("text", "key") ), { toolTip: $( // 鼠标悬浮显示全部文案 ,默认触发时间比较长,可以通过属性来修改 "ToolTip", $(go.TextBlock, { margin: 4 }, new go.Binding("text", "key")) ), } ));
6. 设置节点的 icon,此处以文字为例$( go.TextBlock, // 设置 icon { font: "bold 12px Sans-Serif", stroke: "white", width: 24, textAlign: "center" }, new go.Binding("text", "icon"), // 绑定icon 图表文案 new go.Binding("background", "color") // 绑定 背景色),
7. 文案太长截取显示...,鼠标悬浮显示全部{ toolTip: $( // 鼠标悬浮显示全部文案 ,默认触发时间比较长,可以通过属性来修改 "ToolTip", $(go.TextBlock, { margin: 4 }, new go.Binding("text", "key")) );}
8. 设置鼠标移入、移出状态,点击节点高亮相关联节点function mouseEnter(e, obj) { var text = obj.findObject("TEXT"); text.stroke = "#1E90FF";}function mouseLeave(e, obj) { var text = obj.findObject("TEXT"); text.stroke = "#444";}function nodeclick(e, node) { var diagram = node.diagram; diagram.clearHighlighteds(); node.findNodesConnected().each(function (l) { l.isHighlighted = true; }); node.linksConnected.each(function (n) { n.isHighlighted = true; });}
9. 动态追加节点diagram.model.addNodeData({ key: "任意要显示的node节点名称", group: "分组名", color: "节点背景颜色", icon: "icon文字",});
10. 节点众多需要不同表现样式时,可定义不同的节点模板仅有一种不同形式时,可使用 diagram.nodeTemplateMap.add(node)
调用不同的节点模板多种不同模板时,是封装一个方法,生成模板,在调用diagram.nodeTemplateMap.set(typename, node)
11. 每个节点前后追加 input/output spot 的两种方式方法一:该方法需要重点关注的方法是 makePort
,函数调用位置及返回值
var nodeDataArray = [{ key: "A", category: "Start", text: "节点设置左右连接点" }];var linkDataArray = [ { from: "A", to: "B", frompid: "1", topid: "1" }, // createPort方法 portId { from: "B", to: "C", frompid: "2", topid: "2" },];diagram.model.linkFromPortIdProperty = "frompid"; // 连接点对应名称diagram.model.linkToPortIdProperty = "topid";diagram.nodeTemplateMap.add( "Start", // nodeDataArray 中的 category $( go.Node, "Auto", { width: 260, height: 80 }, $(go.Shape, "Rectangle", { fill: "white", stroke: "white", strokeWidth: 1 }), $( go.Panel, "Vertical", { padding: new go.Margin(5, 5, 5, 2) }, $( go.TextBlock, "节点设置左右连接点", // 1. 节点文本也可以直接写在这 { font: "18px Sans-Serif", stroke: "#444", textAlign: "center" }, new go.Binding("text") // 2.文本也可以通过绑定 nodeDataArray 中的 text, 或者其他任意字段 ) ), $( go.Panel, "Vertical", { alignment: go.Spot.Left, alignmentFocus: new go.Spot(0, 0.5, 8, 0), }, makePort(2, 3).inSpotList // 需要返回一个数组,表示 2个 入边连接点 ), $( go.Panel, "Vertical", { alignment: go.Spot.Right, alignmentFocus: new go.Spot(1, 0.5, -8, 0), }, makePort(2, 3).outSpotList // 需要返回一个数组,表示 3个 出边连接点 ) ));function makePort(inCount, outCount) { let inSpot = inCount; let outSpot = outCount; let inSpotList: any = []; let outSpotList: any = []; for (let i = 1; i <= inSpot; i++) { inSpotList.push(createPort(i, "Left")); } for (let i = 1; i <= outSpot; i++) { outSpotList.push(createPort(i, "Right")); } function createPort(portId, pos) { var port = $(go.Shape, "Rectangle", { fill: "gray", stroke: null, desiredSize: new go.Size(8, 8), portId: String(portId), // 该属性比较重要,用于给每一个连接点 命名, toMaxLinks: 3, cursor: "pointer", }); var panel = $(go.Panel, "Horizontal", { margin: new go.Margin(2, 0) }); port.fromSpot = go.Spot[pos]; port.fromLinkable = true; panel.alignment = go.Spot["Top" + pos]; panel.add(port); return panel; } return { inSpotList, outSpotList };}
方法二:该方法需要重点关注的方法itemArray
,在数据中分别定义了 leftArray
和rightArray
,用于循环显示子元素
diagram.nodeTemplate = $( go.Node, "Table", $( go.Panel, "Horizontal", { row: 1, column: 2 }, $( go.TextBlock, // 资产名称 { margin: 5, width: 240, font: "15px Verdana", stroke: "#444", } ) ), $(go.Panel, "Vertical", new go.Binding("itemArray", "leftArray"), { // 节点 左侧 入边连接点 循环显示 row: 1, column: 0, itemTemplate: $( go.Panel, { _side: "left", fromSpot: go.Spot.Left, toSpot: go.Spot.Left, cursor: "pointer", }, new go.Binding("portId", "portId"), $( go.Shape, "Rectangle", { stroke: null, strokeWidth: 1, desiredSize: new go.Size(8, 8), margin: new go.Margin(1, 5, 1, 0), }, new go.Binding("fill", "portColor") ) ), }), $(go.Panel, "Vertical", new go.Binding("itemArray", "rightArray"), { // 节点 右侧 出边连接点 循环显示 row: 1, column: 3, itemTemplate: $( go.Panel, { _side: "right", fromSpot: go.Spot.Right, toSpot: go.Spot.Right, cursor: "pointer", }, new go.Binding("portId", "portId"), $( go.Shape, "Rectangle", { stroke: null, strokeWidth: 0, desiredSize: new go.Size(8, 8), margin: new go.Margin(1, 0), }, new go.Binding("fill", "portColor") ) ), }));var nodeDataArray = [ { key: "A", rightArray: [{ portColor: "#33B12C", portId: "left0" }], rightArray: [{ portColor: "#33B12C", portId: "right0" }] }, { key: "B", rightArray: [{ portColor: "#F29941", portId: "left0" }], rightArray: [{ portColor: "#F29941", portId: "right0" }] }, { key: "C", rightArray: [{ portColor: "#11C67B", portId: "left0" }], rightArray: [{ portColor: "#11C67B", portId: "right0" }] },];var linkDataArray = [ { from: "A", to: "B", frompid: "right0", topid: "left0" }, { from: "B", to: "C", frompid: "right0", topid: "left0" },];diagram.model.linkFromPortIdProperty = "frompid"; // 连接点对应名称diagram.model.linkToPortIdProperty = "topid";
12. 设置连线模板,箭头样式,连线上添加关系文字// 连线模板diagram.linkTemplate = $( go.Link, { routing: go.Link.Orthogonal, corner: 25, relinkableFrom: true, relinkableTo: true, }, $(go.Shape, { isPanelMain: true, stroke: "transparent" }), $(go.Shape, { isPanelMain: true, stroke: "#ccc", strokeWidth: 2 }, new go.Binding("stroke", "color"), new go.Binding("strokeWidth", "strokeWidth")), $( go.Shape, { toArrow: "standard", strokeWidth: 1, fill: "#ccc" }, // 箭头 new go.Binding("stroke", "color"), new go.Binding("fill", "color") ), $( go.Panel, "Auto", // 连线上的文字 $(go.Shape, { fill: "white", stroke: "white" }), $(go.TextBlock, { stroke: "#ff6600", visible: false }, new go.Binding("text", "linkText"), new go.Binding("visible", "linkText", (a) => (a ? true : false)), new go.Binding("stroke", "isHighlighted", (sel) => (sel ? "#1E90FF" : "#ff6600")).ofObject()) ));
13. 动态追加连线 addLinkData()diagram.model.addLinkData({ from: "节点key", to: "节点key", color: "线的颜色", linkText: "连线上的文字" }); // 不指定连接点,直接连diagram.model.addLinkData({ from: "节点key", to: "节点key", color: "线的颜色", linkText: "连线上的文字", frompid: "right0", topid: "left0" }); // 设置入边和出边的连接点var nodeDataArray = [ { key: "A", rightArray: [{ portColor: "#33B12C", portId: "left0" }], rightArray: [{ portColor: "#33B12C", portId: "right0" }] }, { key: "B", rightArray: [{ portColor: "#F29941", portId: "left0" }], rightArray: [{ portColor: "#F29941", portId: "right0" }] }, { key: "C", rightArray: [{ portColor: "#11C67B", portId: "left0" }], rightArray: [{ portColor: "#11C67B", portId: "right0" }] },];var linkDataArray = [ { from: "A", to: "B", frompid: "right0", topid: "left0" }, { from: "B", to: "C", frompid: "right0", topid: "left0" },];diagram.model.linkFromPortIdProperty = "frompid"; // 连接点对应名称diagram.model.linkToPortIdProperty = "topid";
14. 点击节点使其相关联节点与连线及文字高亮显示function nodeclick(e, node) { var diagram = node.diagram; diagram.clearHighlighteds(); node.findNodesConnected().each(function (l) { l.isHighlighted = true; }); node.linksConnected.each(function (n) { n.isHighlighted = true; });}
15. 点击画布清空当前高亮状态元素diagram.click = function (e) { e.diagram.commit(function (d) { d.clearHighlighteds(); }, "no highlighteds");};
16. 删除连线的方法删除一条:diagram.model.removeLinkData(linkData);
,这个方法,我试了几个都没有成功,可能是linkData
获取的不对,又由于我是要全部删除,因此使用了 diagram.model.removeLinkDataCollection
方法,进行批量删除,但是在实际过程中发现,调用这个方法只能删除一半,(也不知道是什么原因,如果有耐心的有缘人,读到此处并解决了问题,欢迎留言帮我解惑),但是呢办法总比困难多,写一个 while 循环就可以搞定了
while (diagram.model.linkDataArray.length) { diagram.model.removeLinkDataCollection(diagram.model.linkDataArray);}
17. 动态根据需求 展开和收起某一个或全部的分组展开或收起某一个分组:
// groupKey 在 nodeDataArray节点列表中的, 分组节点的 Key值diagram.findNodeForKey(groupKey).isSubGraphExpanded = true; // 展开diagram.findNodeForKey(groupKey).isSubGraphExpanded = false; // 收起
展开或收起全部分组:这个功能我用在了,在每次展开某种特定条件的分组时,先关闭之前所有的分组,在进行新一轮的展开操作
function graphExpandCollaps() { const { nodeDataArray } = diagram.model; nodeDataArray.forEach((v) => { if (v.isGroup) { diagram.findNodeForKey(v.groupName).isSubGraphExpanded = false; // 分组全部收起 } });}
18. 关闭画布重新渲染时的动画diagram.animationManager.stopAnimation(); // 取消动画
19. 画布无限拖拽功能画布固定宽度和高度之后,对拖拽功能很不友好,当内容比较多时,容易拖拽不动,再则在使用 mac 浏览器时,会触发浏览器的前进后退事件。设置画布可以无限滚动后,解决
diagram.scrollMode = go.Diagram.InfiniteScroll;
20. 图禁止复制,禁止删除,开启鼠标滚轮缩放,toolTip 触发 hoverDelay 初始定位diagram = $(go.Diagram, "myDiagramDiv", { "toolManager.hoverDelay": 200, // toolTip触发 "toolManager.mouseWheelBehavior": go.ToolManager.WheelZoom, // 开启鼠标滚轮缩放 // initialContentAlignment: go.Spot.Center, // 居中:第一次 不好使 // contentAlignment: go.Spot.Center, // 可以居中,但是居中之后不可以拖动 initialPosition: new go.Point(-150, -300), // 初始坐标 allowCopy: false, // 禁止复制 allowDelete: false, // 禁止删除 scale: 1, // 缩放会恢复默认值 diagram.scale = 1 minScale: 0.4, // 缩小 diagram.scale -= 0.1 maxScale: 1.4, // 放大 diagram.scale += 0.1});
21. 消除水印在其他文章中看到要删除一个函数的方法,但是由于 gojs 是压缩过的,每个版本的变量都不一样,因此查到另外一个方式,亲测有效,全文搜索 String.fromCharCode(a.charCodeAt(g)^b[(b[c]+b[d])%256])
,大家再搜索时,需要注意一个空格,不然可能会导致搜索不到结果。
在 for 循环的后面 加上一个 判断, 需要跟画布上水印的文字进行比对一下,我觉得其实写一个条件语句,应该就可以命中了。
if (f.indexOf("GoJS 2.2 evaluation") > -1 || f.indexOf("(c) 1998-2022 Northwoods Software") > -1 || f.indexOf("Not for distribution or production use") > -1 || f.indexOf("gojs.net") > -1) { return "";} else { return f;}
更多分享 详见下一篇博文gojs 超多超实用经验分享(二)
标签:
可视化的库非常多,如:echarts、highcharts、antv系列、d3、gojs 按照可自定义绘图的程度排序:gojs、d
2023-05-04PlayStation官方发布了趣味解谜游戏《Humanity》的宣传预告,让我们一起来看看吧!
2023-05-04美国财政部(资料图)海外网5月4日电据美国《国会山报》5月3日报道,多名美政界人士警告,如果民主与共和两
2023-05-04原标题:五一假期收官河南省高速公路车流总量1449 44万辆5月4日,记者从省交通运输厅获悉,2023年五一假期
2023-05-04最美人间四月天,暖风细雨润心田。4月20日,由四川省内江市教育科学研究所和内江语文课内外杂志有限公司联
2023-05-04塞尔达传说王国之泪中的黄金马在哪里捕捉呢?可能很多玩家不太清楚在哪抓黄金马。下面小编给大家带来塞尔达
2023-05-04今天来聊聊关于品位和品味是近义词吗,品味和品位的区别的文章,现在就为大家来简单介绍下品位和品味是近义
2023-05-04金投网提供工商银行龙凤呈祥金条50克价格今天多少一克(2023年05月04日),工商银行龙凤呈祥金条50克价格最
2023-05-04做试管婴儿大概多少钱一次?每个选择做试管婴儿助孕的家庭为关心的莫过于成功率和费用,毕竟,一个是决定怀
2023-05-0405月04日潍坊冠杰纺织有限公司关于32S涤纶纱的报价为13800元 吨。32S涤纶纱的规格
2023-05-04欧陆电气2022年净利87 85万同比减少91 56%新能源新产品成本高2023 5 410:36:56挖贝网蔡颖挖贝网5月4日,欧陆电气(87
2023-05-04孟德龙摄5月4日出版的《人民日报》头版刊发由扬州报业传媒集团摄影记者孟德龙航拍的题为“五一”假期国...
2023-05-04近日,金刚光伏发布了2023年一季度报告。公告称,2023年第一季度营收约1 82亿元,同比增加128 39%;归属于上市
2023-05-04机械行业22Q4和23Q1总结:需求和盈利筑底专用设备需求分化
2023-05-04证券时报网讯,据wind统计显示,上周(4月24日-4月28日)共有961只个股获融资净买入,净买入金额在千万元以
2023-05-04株洲日报讯(全媒体记者 杨如)“我手里拿的是黄瓜苗,和同学们一起种植,感受到了劳动的快乐!”参与...
2023-05-04硬实力上的差距决定短跑与长跑选手在不同阶段的表现会不一样。
2023-05-04快科技5月3日消息,Steam上给出了4月份的硬件调查报告,其中Windows11系统的份额已经攀升至33%的历史新高。
2023-05-04在“五一”假期和重庆国际消费节的双重加持下,“两江造”新能源汽车受到消费者青睐,人气持续走高。展...
2023-05-04自我管理日记范文第1篇今天,我要和爸爸妈妈学习一篇关于自我管理的文章,学习它在学习生活中的管理方法与
2023-05-04【本篇是:彭博士讲《黄帝内经》系列-精华篇-之七百七十二。(更多精彩内容持续更新中……)】“陽明臟...
2023-05-04摘要重点聚焦1)上市银行年报和一季报披露完毕,42家上市银行Q1合计实现营收和归母净利润同比增速+1 4% +2
2023-05-03以美团数据为例,热门景区中,西双版纳的告庄西双景,丽江市的丽江古城以及束河古镇,其景区门票的订单量占
2023-05-03日前,位于辽宁大连北黄海经济开发区内2条10千伏线路顺利投运,提升了该地区的供电能力,为运输港口、装备
2023-05-034月28日,济宁机场展开了防汛应急处置实战演练。本次演练模拟市气象台宣布橙色强降水预警信号,机场气象台
2023-05-03央视网消息:这个假期,探亲访友、文化体验、休闲度假等出游需求集中释放。今年的“五一”假期都涌现出...
2023-05-03极目新闻记者徐平5月2日,中国排协官网公布了征战2023世界女排联赛的23人大名单,中国女排由队长袁心玥领衔
2023-05-03你有没有想过,存款用完了,房子也消耗掉了,余生能够怎样过呢?当一个人因为父母孤老而心疼时,哪怕自己没
2023-05-03富瀚微晚间公告,公司正在筹划发行股份及支付现金购买资产,并募集配套资金暨关联交易事项,交易标的资产为
2023-05-03深南电路(SZ002916,收盘价:82 26元)发布公告称,2023年4月27日,深南电路接受中欧基金等机构调研,公司
2023-05-03在商业化的场合当中,着装往往都会考虑主题,为了寻求视觉上的刺激和造型的完美度,裙子几乎成为了大部分女
2023-05-0311分钟解决“世界性”难题百度生物计算研究成果登顶《Nature》正刊,北京时间5月2日凌晨,国际顶级学术期...
2023-05-03欢迎观看本篇文章,小柴来为大家解答以上问题。音的拼音怎么写,音怎么读很多人还不知道,现在让我们一起来
2023-05-031、古人云:人生莫过于四件事,久旱逢甘露、他乡遇故知、洞房花烛夜、金榜题名时。2、今天,跟大家分享的是
2023-05-03大连是北方重要的海产品货源地,也是国际海产品中转地,每天凌晨时分,很多靠海产品为生的人们在海上、码头
2023-05-03墨西哥总统洛佩斯表示,他将向美国政府提出“外交抗议”。当地时间5月2日,墨西哥总统洛佩斯在每日晨间...
2023-05-03人民日报北京5月2日电(记者韩鑫)记者从交通运输部长江航务管理局获悉:一季度,长江干线港口完成货物吞吐
2023-05-03众人皆降我不降,特斯拉宣布国产Model3 Y全系上涨2000元5月2日,据特斯拉中国官网,特斯拉全线上调在华销售
2023-05-03【本文来自《游客进景区上厕所要买55元门票?桂林通报:已约谈景区》评论区,标题为小编添加】亓景明我14年
2023-05-03班级心理健康教育理论与操作,关于班级心理健康教育理论与操作介绍这个很多人还不知道,我们一起来看看!1、
2023-05-03日乒第一美女退役,与国乒12大主力交手战况,4人输6场,陈梦在列,陈梦,国乒,郭跃,日乒,刘诗雯,朱雨玲,张怡
2023-05-031、鼠年因为发生了不好的事情,被网友称为灾难年,被迫将犯罪归于鼠年。其实没有科学依据。2、事件:3、184
2023-05-032023年4月29日21:04,汉中市市场监督管理局值班人员关注到“小红书”APP某注册用户发帖反映“汉中中国黄...
2023-05-02五一小长假,聚餐少不了。很多人喜欢点一份海门的红烧羊肉。海门红烧羊肉之所以成为特色美食,除了注重烹饪
2023-05-02生活中有一种很小但是又非常需要的小家电,虽然经常被人忽视,但是有一家公司却把这个小玩意做到挑战传统,
2023-05-021、首先谈谈798的由来吧:2、2000年12月,原700厂、706厂、707厂、718厂、797厂、798厂等六家单位
2023-05-021、工具:走珠和香体露。2、使用前擦干汗渍。一般早上出门都用珠香。这个时候,如果时机成熟,最好洗个澡。
2023-05-02一、题文意识对人体的生理活动具有调节和控制作用。______(判断对错)二、解答正确三、分析意识对人体的生
2023-05-02湖南日报·新湖南客户端5月1日讯(通讯员罗永凤郭檑)“万寿宫台区设备线路运行正常,无异常问题 ...
2023-05-02吉利汽车(00175)发布公告,集团旗下高端智能电动汽车公司ZEEKRIntel
2023-05-02央视网消息:今天(5月1日),不少的热门旅游城市和景区、景点都迎来了游客高峰,各地为了留住游客也是各展
2023-05-021、中国的胡润富豪榜和全球性的福布斯富豪榜一直在变动,各位大佬们虽然都没有很在意,但是数据在不断变化
2023-05-02今天来聊聊关于怎么辨别白酒是粮食酒,如何鉴别白酒是不是粮食酒的文章,现在就为大家来简单介绍下怎么辨别
2023-05-021、它只是一个简单的中文单词,发音为Jim:nzh,意思是简单和直;直截了当。强调这正是如此或几乎如此。2、
2023-05-02《纽约时报》5月1日小偶像,陷入困境的北美数字媒体公司ViceMedia正准备申请破产。两位了解Vice运营情况的
2023-05-025月1日12时厦门迎来了今年伏季休渔期726艘渔船进入“休眠”此前厦门市海洋发展局发布了《关于实施海洋伏...
2023-05-02社会主导形态的儿童观指的是在社会中具有主导地位的人们对儿童的根本看法、态度,比如社会中的政府机构、法
2023-05-02投资顾问是一个与投资理财相关的职业,主要负责为客户提供投资建议、规划理财方案、评估投资风险等咨询服务
2023-05-021、飞利浦 Philips2、峰力 PHONAK3、俏康 Cholcom4、邦力健5、瑞声达 Resound6、西门子
2023-05-021、魅族的M6系列共出过四个型号,分别是M6TP,M6SP,M6SL和M6TS。以上就是【魅族m6,魅族m6】相关内容
2023-05-02唐三从来不打没把握的仗,对拿下这场比拼的胜利很有自信,还在背后竖起大拇指给队友看,他的聪明与沉稳在
2023-05-02当前的FocusST借用了与标准车相同的样式提示,即梯形格栅,带LED的角形大灯以及带扩散器和特别设计的排气管
2023-05-02看到一则关于公司招聘会计要求必须是A型血的消息,感觉挺可笑的,可笑的是不仅仅公司把招聘的灰色地带玩到
2023-05-01今年“五一档”市场竞争异常激烈,共有18部新片入市。由刘晓世执导,王一博、胡军、周冬雨等主演的《长...
2023-05-01财联社5月1日讯(记者徐昊)“五一”假期期间,居民消费热情高涨。在整个经济回暖的大背景下,造车新势...
2023-05-011、绵毛葡萄(VitisretordiiRoman duCaill exPlanch )木质藤本,生山坡
2023-05-01(观察者网讯)继硅谷银行、签字银行后,短短两个月内,美国联邦保险公司(FDIC)又开始为第三家摇摇欲坠的
2023-05-01劳动铸就梦想奋斗开创未来世界因劳动而改变,生活因劳动而美好。“五一”国际劳动节到来之际,让我们一...
2023-05-01自苏丹武装冲突爆发以来,中国政府采取快速有力措施,全力保护中国公民安全,周密组织撤离行动。根据统一部
2023-05-015月1日,五菱汽车官方公众号发布五菱缤果的销量数据。3月29日正式上市的五菱缤果上市首月销量16383辆,成为
2023-05-01转自:央视新闻今天,预计保障航班15415班,预计可提供座位数228万个,预计运输旅客156万人次。从订票情况
2023-05-01及时传递正面信息,积极引导群众关注权威发布,做到“不信谣、不传谣、不造谣”,不在网络、朋友圈、微...
2023-05-01林州市气象台2023年5月1日12时31分发布大风蓝色预警信号:预计未来24小时,林州市及所辖镇和街道将出现6级
2023-05-01景区女厕所排长队游客:以为景点排队今天的热度非常高,现在也是在热搜榜上了,那么具体的景区女厕所排长队
2023-05-01新华社北京5月1日电 特稿:未来已来——多国专家谈人工智能与人类劳动新华社记者未来已来,科幻作家威...
2023-05-01尊敬的各位游客:重庆动物园2023年“五一”节日期间人流量较大,因园区承载量有限,为保证您有更好的游...
2023-05-01通过官方的海报得知,时间仙子的真名终于让我们知道了,并且和她的属性有关,一听就是大美女。看来这就是时
2023-05-015月1日,生意社DBP基准价为9237 50元 吨,与上月初(9675 00元 吨)相比,下降了-4 52%。DBP年度统计(2022-05-01--202
2023-05-01音频解说1、QQ空间(Qzone)是腾讯公司于2005年开发出来的一个具有个性空间,具有博客(blog)的功能,自问世以
2023-05-01对于年轻、个性、爱折腾的消费者来说,花较少的钱买一台有“潜力”的车,通过改装赋予其独特的风格好像...
2023-05-01【香港故宫文化博物馆今日近7300人次入场,创开馆以来新高】4月30日,香港西九文化区管理局表示,香港故宫
2023-05-011、“苹果肌 "的位置是在眼睛下方二公分处呈倒三角状的组织,微笑或做表情时会因为脸部肌肉的挤压而稍...
2023-05-011、《宋词解读》是2020年北方文艺出版社出版的图书,作者是诸葛忆兵。2、。本文到此分享完毕,希望对大家有
2023-04-304月30日,青岛市浮山森林公园内迎来不少游客,漫步于浮山绿道上,路两旁景观层次丰富,道路本身也颇有亮点
2023-04-30腹部模型是一种流行的(但很混乱)的方式,可以让女性捕捉到她不断增长的怀孕腹部的复制品。制作腹部模型后
2023-04-30作者丨陈嘉玲编辑丨周鹏峰“我的项目,还不知等到什么时候才能退出来。”4月21日,一位投资人手里拿着某...
2023-04-30一只股票一直跌,可能是因为整个大环境不好,股票市场中,大环境不好的时候,股票基本上处于下跌形势,股票
2023-04-30A股TOP20公司这十年:营收总额增长74%,“市值一哥”轮番变换,a股,股价,股市值,白酒股,贵州茅台,市值一哥,t
2023-04-30玲娜贝儿,关于玲娜贝儿介绍这个很多人还不知道,我们一起来看看!1、玲娜贝儿(LinaBell),上海迪士尼在20
2023-04-30微软将不再生产带有Microsoft品牌的PC配件,包括鼠标、键盘、网络摄像头。
2023-04-30中钢网其他新闻资讯频道提供钢材行业其他新闻资讯,中钢网-免保证金、免手续费、零风险、零成本钢材现货交
2023-04-30中国经济长期快速发展,带动了文化市场的繁荣和旅游产业的快速发展。透过现象看本质,文化旅游产业融合发展
2023-04-30“接到天气预报信息,因五一假期将有强降雨,召开本次调度动员会……”4月28日一大早,武汉最大水环境综...
2023-04-30这应该是今年迄今最损的一张政治漫画了。反正,在西方,很多漫画都挺损;但这张美国漫画,尤其损,可以说真
2023-04-30男子为女儿打造四轮小车能原地掉头网友:仰望U8瞬间掉价100万
2023-04-30联想电脑音响音箱钦银金属质感箱体细腻喷砂工艺,触感舒适。采用银金属3D立体钢网2000加交叉式网孔真钢数和
2023-04-30据FootMercato和每日邮报的报道,阿森纳和米兰双雄都看上了23岁的比利时国脚、朗斯中锋奥蓬达。以速度著称
2023-04-301、紫雨林2、紫雨林乐队是个一女三男的韩国组合「紫雨林」,听过他们的音乐应该说他们的演唱风格很古怪,配乐
2023-04-30“全党全国各族人民要像英雄模范那样坚守像英雄模范那样奋斗共同谱写新时代人民共和国的壮丽凯歌”中华...
2023-04-30在此前的一场NBA季后赛中,洛杉矶湖人坐镇主场以125比85狂虐了孟菲斯灰熊。他全场出场26分06秒,投篮11中4
2023-04-30Copyright © 2015-2022 亚洲水产网版权所有 备案号:豫ICP备20022870号-9 联系邮箱:553 138 779@qq.com