利用vue-gird-layout 制作可定制桌面 (二)
添加资源池

根据项目需求 添加,

实例两个数据
{
  "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 制作可定制桌面 (二)的更多相关文章
- 利用vue-gird-layout 制作可定制桌面 (一)
		安装 vue-gird-layout https://github.com/jbaysolutions/vue-grid-layout 先跑一遍demo 运行起来. # install with np ... 
- 使用vue全家桶制作博客网站
		前面的话 笔者在做一个完整的博客上线项目,包括前台.后台.后端接口和服务器配置.本文将详细介绍使用vue全家桶制作的博客网站 概述 该项目是基于vue全家桶(vue.vue-router.vuex.v ... 
- 转载: 使用vue全家桶制作博客网站 HTML5 移动网站制作的好教程
		使用vue全家桶制作博客网站 前面的话 笔者在做一个完整的博客上线项目,包括前台.后台.后端接口和服务器配置.本文将详细介绍使用vue全家桶制作的博客网站 概述 该项目是基于vue全家桶(vue. ... 
- 一步一步教你用 Vue.js + Vuex 制作专门收藏微信公众号的 app
		一步一步教你用 Vue.js + Vuex 制作专门收藏微信公众号的 app 转载 作者:jrainlau 链接:https://segmentfault.com/a/1190000005844155 ... 
- 利用Vue.js实现拼图游戏
		之前写过一篇<基于Vue.js的表格分页组件>的文章,主要介绍了Vue组件的编写方法,有兴趣的可以访问这里进行阅读:http://www.cnblogs.com/luozhihao/p/5 ... 
- 【百度地图API】如何利用自己的数据制作社交地图?只显示可视区域内的标注
		原文:[百度地图API]如何利用自己的数据制作社交地图?只显示可视区域内的标注 摘要:如果你自己的数据已经超过1万个,如何进行合理的显示?除了聚合marker外,还有一个办法.那就是,只显示可视区域内 ... 
- C/S模式开发中如何利用WebBrowser控件制作导航窗体
		原文:C/S模式开发中如何利用WebBrowser控件制作导航窗体 转自: CSDN 相信不少同学们都做过MIS系统的开发,今天这里不讨论B/S模式开发的问题.来谈谈winform开发.用过市面上常见 ... 
- 利用css+原生js制作简易钟表
		利用css+原生js制作简单的钟表.效果如下所示 实现该效果,分三大块:html.javascript.css html部分html部分比较简单,定义一个clock的div,内部有原点.时分秒针.日期 ... 
- 利用U盘启动制作GHO镜像
		利用U盘启动制作GHO镜像 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. In a realproduction environment. 我们我们可能遇到频繁的安装系统,安装环境 ... 
随机推荐
- 1012关于SYSBENCH的用法
			sysbench安装.使用.结果解读 sysbench是一个模块化的.跨平台.多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况.目前sysbench代码托管在launchpad上 ... 
- HTML5的未来
			2014年10月29日,万维网联盟(W3C)宣布,经过差点儿8年的艰辛努力.该标准规范终于终于制定完毕.之所以是8年,由于在1999年HTML4的规范制定以后,W3C对于HTML的发展.貌似就不再那么 ... 
- java学习笔记(二)图形用户接口
			这个学期主要放在ACM比赛上去了,比赛结束了.不知不觉就15周了,这周就要java考试了,复习一下java吧.java的学习的目的还是让我们学以致用,让我们可以运用java开发一下小项目.而不是单单应 ... 
- C#调用C++回调函数的问题
			C++的回调函数中有一个参数是,是返回一个字符串,原则如下: typedef void (*TDataEvent)(char *AData ,int ALen); 其中char ... 
- c19---指针和字符串
			// // main.c // 指针和字符串 // // Created by xiaomage on 15/6/14. // Copyright (c) 2015年 xiaomage. All ri ... 
- Tool-杂项-建模:犀牛(3D造型软件)
			ylbtech-Tool-杂项-建模:犀牛(3D造型软件) 犀牛(Rhino)是美国Robert McNeel & Assoc.开发的PC上强大的专业3D造型软件,它可以广泛地应用于三维动画制 ... 
- Object源码分析(二)
			第五个方法:protected native Object clone() throws CloneNotSupportedException; 源码简介: clone方法首先会判对象是否实现了Clo ... 
- Gym-101915D Largest Group 最大独立集 Or 状态压缩DP
			题面题意:给你N个男生,N个女生,男生与男生之间都是朋友,女生之间也是,再给你m个关系,告诉你哪些男女是朋友,最后问你最多选几个人出来,大家互相是朋友. N最多为20 题解:很显然就像二分图了,男生一 ... 
- JS中的数据类型及判断数据类型的方法
			简单类型(基本类型): number,string,boolean,null,undefined 复杂类型(引用类型):object typeof 只能判断基本数据类型 instanceof 能够判断 ... 
- NOIP2013 D2T1  积木大赛
			[NOIP2013T4]积木大赛 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 noip2013day2 描述 春春幼儿园举办了一年一度的"积木大 ... 
