添加资源池

根据项目需求 添加,

实例两个数据

{
"mainData": [
{
"x": 0,
"y": 0,
"w": 4,
"h": 4,
"i": 0,
"Component": "planExecution",
"IsResource": false
}
]
}

layoutData.json

{
"mainData": [{
"x": 0,
"y": 0,
"w": 2,
"h": 2,
"i": 0,
"Component": "productionLine",
"IsResource": true
},
{
"x": 0,
"y": 0,
"w": 2,
"h": 2,
"i": 0,
"Component": "takeTime",
"IsResource": true
},
{
"x": 0,
"y": 0,
"w": 4,
"h": 2,
"i": 0,
"Component": "yieldStatistics",
"IsResource": true
}
]
}

resourcesData.json

引到页面中

  import layoutData from '@/virtualData/layoutData.json'
import resourcesData from '@/virtualData/resourcesData.json'

增加 资源数据 并且给页面数据 赋值

      // 初始化数据
init() {
this.layoutData = layoutData.mainData
this.ResourceData = resourcesData.mainData
}

初始化页面之后,把资源池数据添加到页面数据中

 // 打开资源池
OpenResource() {
// 资源起始点
const x = 12
// 计算向下高度
let y = 0
// 是否行并行
let wFlag = false
// 并行高度
let tempY = 0
const Resource = this.ResourceData
for (const item of Resource) {
if (item.w === 2) {
if (wFlag) {
// 第二个并行
item.x = x + 2
item.y = tempY
tempY = false
} else {
// 第一个并行行
item.x = x
item.y = y
tempY = y
wFlag = true
}
} else {
item.x = x
item.y = y
}
item.i = this.layoutConfig.index
y += item.h
this.layoutConfig.index += 1
}
this.layoutData = this.layoutData.concat(Resource)
this.historyLayout = JSON.parse(JSON.stringify(this.layoutData))
},

然后把资源池和页面数据分开,并且加上校验。

<div class="Main_border" v-if="layoutConfig.ToolVisible">
</div>
 .Main_border {
height: 75%;
width: 75%;
position: absolute;
box-sizing: border-box;
border: 1px solid #000000;
}

加上分割线,然后添加移动监听。

  // 监听组件移动结束位置
movedEvent(i, newX) {
const item = this.layoutData.find(t => t.i === i)
const itemW = item.w
if (newX + itemW <= 12) { // 放到线中 允许添加
console.log('放到线中 允许添加')
item.IsResource = false
this.historyLayout = JSON.parse(JSON.stringify(this.layoutData))
} else if (newX >= 12) { // 不在线中 允许添加
this.historyLayout = JSON.parse(JSON.stringify(this.layoutData))
item.IsResource = true
console.log('不在线中 允许添加')
} else { // 压线 禁止添加
this.layoutData = JSON.parse(JSON.stringify(this.historyLayout))
console.log('压线 禁止添加')
}
}

 

利用vue-gird-layout 制作可定制桌面 (二)的更多相关文章

  1. 利用vue-gird-layout 制作可定制桌面 (一)

    安装 vue-gird-layout https://github.com/jbaysolutions/vue-grid-layout 先跑一遍demo 运行起来. # install with np ...

  2. 使用vue全家桶制作博客网站

    前面的话 笔者在做一个完整的博客上线项目,包括前台.后台.后端接口和服务器配置.本文将详细介绍使用vue全家桶制作的博客网站 概述 该项目是基于vue全家桶(vue.vue-router.vuex.v ...

  3. 转载: 使用vue全家桶制作博客网站 HTML5 移动网站制作的好教程

    使用vue全家桶制作博客网站   前面的话 笔者在做一个完整的博客上线项目,包括前台.后台.后端接口和服务器配置.本文将详细介绍使用vue全家桶制作的博客网站 概述 该项目是基于vue全家桶(vue. ...

  4. 一步一步教你用 Vue.js + Vuex 制作专门收藏微信公众号的 app

    一步一步教你用 Vue.js + Vuex 制作专门收藏微信公众号的 app 转载 作者:jrainlau 链接:https://segmentfault.com/a/1190000005844155 ...

  5. 利用Vue.js实现拼图游戏

    之前写过一篇<基于Vue.js的表格分页组件>的文章,主要介绍了Vue组件的编写方法,有兴趣的可以访问这里进行阅读:http://www.cnblogs.com/luozhihao/p/5 ...

  6. 【百度地图API】如何利用自己的数据制作社交地图?只显示可视区域内的标注

    原文:[百度地图API]如何利用自己的数据制作社交地图?只显示可视区域内的标注 摘要:如果你自己的数据已经超过1万个,如何进行合理的显示?除了聚合marker外,还有一个办法.那就是,只显示可视区域内 ...

  7. C/S模式开发中如何利用WebBrowser控件制作导航窗体

    原文:C/S模式开发中如何利用WebBrowser控件制作导航窗体 转自: CSDN 相信不少同学们都做过MIS系统的开发,今天这里不讨论B/S模式开发的问题.来谈谈winform开发.用过市面上常见 ...

  8. 利用css+原生js制作简易钟表

    利用css+原生js制作简单的钟表.效果如下所示 实现该效果,分三大块:html.javascript.css html部分html部分比较简单,定义一个clock的div,内部有原点.时分秒针.日期 ...

  9. 利用U盘启动制作GHO镜像

    利用U盘启动制作GHO镜像 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. In a realproduction environment. 我们我们可能遇到频繁的安装系统,安装环境 ...

随机推荐

  1. Cloudera 5.8.3 SolrCloud+HDFS的索引数据备份和恢复。(需重启solr进程。)

    一.备份基于HDFS的solrCloud集合数据 1.确认要备份的solr文件夹. /solr/history_customer_collection_test 2.开启HDFS快照功能. hdfs ...

  2. [bzoj2600][Ioi2011]ricehub_二分

    ricehub bzoj-2600 Ioi-2011 题目大意:在数轴上有r块稻田,稻田坐标为整数.计划建造一个米仓,使得它可以收取尽量多的稻米.米仓的坐标仍需为整数.每一块权值为val的稻田距离米仓 ...

  3. pl/sql developer 布局结构保存

    pl/sql developer 布局结构保存 调整了工具栏,调整了窗体框位置,点击 窗口->保存版面 就可以保留当前的调整的结果,不用一次一次调整了: 也可以在工具 -> 首选项 -&g ...

  4. UVALive3938 &quot;Ray, Pass me the dishes!&quot; 线段树动态区间最大和

    AC得相当辛苦的一道题.似乎不难,可是须要想细致, 開始的时候的错误思路----是受之前做过的区间最长连续子串影响http://blog.csdn.net/u011026968/article/det ...

  5. asp.net控件的异步刷新

    需求:我们知道,asp.net控件中的button控件,默认是开启了自己主动回发的,而有时候.我们不想刷新整个界面.而仅仅想局部刷新,可页面中又偏偏用到了.net button控件. 尽管我非常讨厌. ...

  6. MFC画标尺

    void CJjjView::OnPaint() { CPaintDC dc(this); //屏幕初始化 dc.SetMapMode(MM_LOENGLISH);//0.01in ;1英寸映射 dc ...

  7. android的低内存管理器【转】

    本文转载自:http://blog.csdn.net/haitaoliang/article/details/22092321 版权声明:本文为博主原创文章,未经博主允许不得转载. 安卓应用不用太在意 ...

  8. Spring版本功能变更&Spring4.x的新特性

    有朋友想知道Spring不同版本都有哪些功能变更,说直接在百度搜索找到的结果都不是想要的,其实还是关键词不对,找Spring不同版本的新特性就能获得更好的结果.其实在Spring工程github的wi ...

  9. [HTML5] 让IE支持HTML5的方法

    越来越多的站点开始使用 HTML5 标签,但是目前的情况是还有很多人在使用IE6.IE7.IE8.为了让所有浏览者都可以正常的访问,解决方案有下面两个: 1.为网站创建多套模板,通过程序对User-A ...

  10. wampserver配置多站点

    1.打开C:\wamp\bin\apache\apache2.2.22\conf\httpd.conf(因安装的路径而异),查找listen 80 下面加上listen 8080 2.然后加上 < ...