1.1.8 • Published 3 years ago

vue-page-free-build v1.1.8

Weekly downloads
10
License
ISC
Repository
-
Last release
3 years ago

vue 随心所欲搭建自由页面

  • 页面编辑器,可以自定义注册组件。然后通过拖拽移动,缩放,自由修改样式,数据,事件,以及其他数据,生成一个自定义的页面。然后获取对应的json数据。

原作者

  • levy

创建时间

  • 2021-1-7

demo图片

  • demo项目地址:www.mml-kj.com/free/

    demo图片

    demo图片

第一步 安装依赖

// 第一步 安装依赖
npm install vue-page-free-build

第二步 组件注册

  • 新建一个组件注册的js文件(registrationFile.js)
/**
 * @description 插件
 */
import free from "vue-page-free-build";

/**
 * @description 需要注册的组件
 */
import textVue from "./component/textVue.vue";
import imageVue from "./component/imageVue.vue";

export const freePanel = new free.createFreePanel({
  components:[{
    name:"textVue",
    component:textVue
  },{
    name:"imageVue",
    component:imageVue
  }]
});

/**
 * 获取操控
 */
export const controlPanel = new free.controlFreePanel(freePanel.freeTransit);

freePanel构造组件

freePanel.component

controlPanel构造函数方法列表

基础方法参数方法名字
controlPanel.addComponentname/组件名字,bool/默认false(true为绝对定位)添加指定组件
controlPanel.copyComponent复制组件并添加面板复制指定组件
controlPanel.removeComponent默认删除当前选中,id/组件id删除指定组件
controlPanel.setStylekey/修改的字段,value/修改值修改选中组件的样式
controlPanel.setDatakey/修改的字段,value/修改值修改选中组件的数据
controlPanel.setPositioningkey/修改的字段,value/修改值绝对定位的组件修改定位位置,也可以通过拖拽移动,和缩放
controlPanel.setConfigkey/修改的字段,value/修改值设置更多配置数据
controlPanel.setCurrentControlid/组件id点击组件时设置当前可以操控的组件
controlPanel.setZoomValuenumber/缩放值设置当前面板缩放级别
controlPanel.setHiddenbool/布尔值,id/组件id(不传默认选中)设置组件隐藏
controlPanel.rollBack返回上一步操作
controlPanel.nextStep前进一步操作
controlPanel.echoComponentlist/列表数据回显页面
controlPanel.resetFreePanelbool/默认false,true深度重置会注销监听事件重置面板构造器
controlPanel.savePhaseData保存当前进度操作页面数据
分组功能参数方法名字
controlPanel.createGroup创建分组
controlPanel.delGroupgroupId/组id删除分组
controlPanel.setGroupgroupId/组id开启修改分组成员
controlPanel.determineGroup在开启设置分组后,确定当前分组成员的修改
controlPanel.getGroupgroupId/组id获取分组数据
controlPanel.setGroupMemberNamegroupId/组id,label/名字设置分组名字
controlPanel.setGroupNamegroupId/组id,id/组件id,label/名字设置组件名字
事件功能参数方法名字
controlPanel.addPageEventfunctionName/方法名称, functionStr/方法函数转换字符串为参数添加页面事件功能,所有组件可以使用
controlPanel.upPageEventfuncId/方法id, options.functionName,options.functionStr修改页面事件功能
controlPanel.removePageEventfuncId/方法id删除页面事件功能
controlPanel.addComponentEventfunctionName/方法名称, functionStr/方法函数转换字符串为参数添加组件事件功能,只有该组件能使用
controlPanel.upComponentEventfuncId/方法id, options.functionName,options.functionStr修改组件事件功能
controlPanel.removeComponentEventfuncId/方法id删除组件事件功能
controlPanel.bindComponentEventway/事件类型, funcId/方法id, paramet/携带参数给当前选中组件绑定事件函数
controlPanel.removeBindComponentEventway/事件类型给当前选中组件解除绑定事件
监听事件参数方法名字
controlPanel.listeningCurrentSwitchcallback/回调函数监听当前操作组件切换变化
controlPanel.listeningCurrentChangecallback/回调函数监听当前操作记录
controlPanel.listeningZoomChangecallback/回调函数监听面板缩放
controlPanel.listeningGroupChangecallback/回调函数监听分组数据的变化
controlPanel.listeningEventChangecallback/回调函数监听事件函数的变化,与绑定事件的变化
controlPanel.listeningComponentListChangecallback/回调函数监听组件列表变化

第三步 在vue中引用控办组件

<template>
  <div >
    <!-- :controlPanel="controlPanel" 必要操作,把控制器传给面板 -->
    <!-- currentStyle  修改当前点击选中组件的高亮样式-->
    <!-- sameGroupStyle  修改当前点击选中组件的同组合组件高亮样式-->
    <!-- haveBeenGrouped  修改选中同组合组件时不可选中的组件样式-->
    <!-- alignmentLineStyle 组件对齐线样式 -->
    <freePanel 
      :controlPanel="controlPanel">
      currentStyle=""
      sameGroupStyle=""
      haveBeenGrouped=""
      alignmentLineStyle=""
    </freePanel>
  </div>
</template>

<script>
import { freePanel, controlPanel } from "**/**/**/registrationFile.js";
export default {
  components: {
    freePanel: freePanel.component,
    // ......
  },
  data() {
    return {
      controlPanel:controlPanel,
      // ......
    };
  },
  // ......

};
</script>

组件开发规范(../../textVue.vue 为例)

<template>
  <div :style="freeStyle">{{freeData.text}}</div>
</template>

<script>
export default {
  props: {
    // 注册需要修改的样式(将会通过props接收修改值)
    freeStyle: {
      type: Object,
      default: () => {
        return {
          width: '100px',
          height: 'auto',
          fontSize: '14px',
          color: 'red',
        };
      },
    },
    // 注册需要修改的数据(将会通过props接收修改值)
    freeData: {
      type: Object,
      default: () => {
        return {
          text:"文本内容"
        };
      },
    },
    // 注册需要修改的更多配置数据(将会通过props接收修改值)
    freeConfig: {
      type: Object,
      default: () => {
        return {
          animation:""
        };
      },
    },

    // ......
  },

  // ......
};
</script>

<style lang="scss" scope>
</style>

更新时间

  • 2021-1-16 (levy)
1.1.8

3 years ago

1.1.6

3 years ago

1.1.5

3 years ago

1.1.4

3 years ago

1.1.3

3 years ago

1.1.1

3 years ago

1.1.2

3 years ago

1.0.20

3 years ago

1.0.19

3 years ago

1.0.18

3 years ago

1.0.17

3 years ago

1.0.16

3 years ago

1.0.15

3 years ago

1.0.14

3 years ago

1.0.11

3 years ago

1.0.13

3 years ago

1.0.12

3 years ago

1.0.9

3 years ago

1.0.10

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.0

3 years ago