npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

v-low-code

v1.1.0

Published

低代码编辑插件

Downloads

5

Readme

vue 低代码页面编辑面板插件

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

安装依赖

// 第一步 安装依赖
npm install v-low-code

组件注册

  • 新建一个组件注册的 js 文件(registrationFile.js)
/**
 * @description 插件
 */
import {
  // 编辑面板组件
  panelView,
  // 页面显示组件
  pageView,
  // 组件改造函数
  componentPro,
  // 组件绑定操控操作函数
  controlPanel,
} from 'v-low-code';
import 'v-low-code/index.css';

/**
 * @description 本地引入方式-demo组件
 */
import textVue from './component/textVue.vue';

/**
 * @description 页面组件
 */
export const flexiblePage = new componentPro(pageView, {
  // 组件列表
  components: [
    {
      name: 'textVue',
      component: textVue,
    },
  ],
});

/**
 * @description 面板组件
 */
export const flexiblePanel = new componentPro(panelView, {
  // 组件列表
  components: [
    {
      name: 'textVue',
      component: textVue,
    },
  ],
});

/**
 * @description 绑定操控方法
 */
export const controlAPI = new controlPanel(flexiblePanel.freeTransit, {
  // 错误操作
  errorCallback: function (err) {
    console.log(err);
  },
});
  • 面板组件的引用
<template>
    <-- currentClass 当前操作元素组件的样式 -->
    <-- sameGroupClass 当前设置分组的组件 && 当前操作的组件的同组成员组件 -->
    <-- alignmentLineClass 对齐线样式 -->
    <-- zoomClass 缩放节点样式 -->
    <-- angleShowsView 旋转角度提示文本 -->
    <-- lockCoilBoxClass 锁定圈样式 -->
    <flexible-panel
      currentClass=""
      sameGroupClass=""
      alignmentLineClass=""
      zoomClass=""
      angleShowsView=""
      lockCoilBoxClass=""
    ></flexible-panel>
</template>

<script>
import { flexiblePanel } from "**/**/**/registrationFile.js";
export default {
  components: {
    flexiblePanel: flexiblePanel.component,
  },
};
</script>
  • 页面组件的引用
<template>
    <-- pageStyle 页面的根节点样式 -->
    <-- componentList 页面的元素组件列表数据 -->
    <-- zoomValue 页面的缩放比例 -->
    <flexible-page
      pageStyle=""
      componentList=""
      zoomValue=""
    ></flexible-page>
</template>

<script>
import { flexiblePage } from "**/**/**/registrationFile.js";
export default {
  components: {
    flexiblePage: flexiblePage.component,
  },
};
</script>
  • 自定义组件开发模板(../../textVue.vue 为例)
<template>
  <div
    :style="{
      padding: freeStyle.boxPadding,
    }"
  >
    <div
      :style="{
        marginBottom: freeStyle.spacing,
      }"
      @click="clickev"
    >
      {{ freeData.text }}
    </div>
  </div>
</template>

<script>
export default {
  freeConfig: {
    /**
     * 根标签布局初始值(后面可以根据页面交互操作修改)
     * 属性支持:
     *  width             宽度
     *  height            高度
     *  top               上边距
     *  left              下边距
     *  transform.rotate  旋转角度
     */
    rootNodeStyle: {
      top: '0px',
      left: '0px',
      width: '120px',
      height: '70px',
      transform: {rotate:0},
    },
    /**
     * 自由样式
     * 属性:  自定义key
     */
    freeStyle: {
      boxPadding: '20px',
      spacing: '5px',
    },
    /**
     * 自由数据
     * 属性:  自定义key
     */
    freeData: {
      text: 'hello world!',
    },
    /**
     * 自由绑定函数
     * 属性:  自定义函数名
     */
    freeBindMethods: {
      clickev(a) {
        console.log(a);
      },
    },
  },
};
</script>

<style></style>

controlAPI 构造函数方法列表

| 基础方法 | 参数 | 方法名字 | | ---------------------------- | ------------------------- | -------------------- | | controlAPI.useThis | idid/组件 id,或者面板 id | 获取组件实例对象 | | controlAPI.setCurrentControl | id/组件 id,或者面板 id | 设置当前操作的组件 | | controlAPI.rollBack | 无 | 返回上一步操作 | | controlAPI.nextStep | 无 | 前进下一步操作 | | controlAPI.echoComponent | 页面保存的 json 数据 | 回显页面数据 | | controlAPI.savePhaseData | 无 | 保存数据 | | controlAPI.resetFreePanel | 无 | 重置面板数据 | | controlAPI.setZoomValue | number/缩放值 | 设置当前面板缩放级别 |

| 操作方法 | 参数 | 方法名字 | | ---------------------------- | ------------------------------------------------------ | ------------ | | controlAPI.addCloudComponent | url/远程组件的地址,name/组件名字,data/初始数据非必填 | 添加远程组件 | | controlAPI.addComponent | name/组件名字,data/初始数据非必填 | 添加指定组件 | | controlAPI.copyComponent | id/组件 id 非必填,不填复制当操作 | 复制指定组件 | | controlAPI.removeComponent | id/组件 id 非必填,不填删除当操作 | 删除组件 | | controlAPI.editorFuncEvent | {id:组件 id, funcName:函数名, code:函数的字符串} | 编辑函数功能 | | controlAPI.removeFuncEvent | {id:组件 id, funcName:函数名 } | 删除函数功能 | | controlAPI.disableFuncEvent | {id:组件 id, funcName:函数名, disable:禁用状态} | 禁用事件方法 | | controlAPI.setStyle | key/修改的字段,value/修改值 | 修改样式 | | controlAPI.setData | key/修改的字段,value/修改值 | 修改数据 | | controlAPI.setConfig | key/修改的字段,value/修改值 | 修改配置 | | controlAPI.setRootNodeStyle | key/修改的字段,value/修改值 | 修改排版样式 | | controlAPI.setHidden | bool/布尔值,id/组件 id(不传默认选中) | 设置组件隐藏 |

| 监听事件 | 参数 | 方法名字 | | --------------------------------------- | ----------------- | ------------------------ | | controlAPI.listeningCurrentSwitch | callback/回调函数 | 监听当前操作组件切换变化 | | controlAPI.listeningCurrentChange | callback/回调函数 | 监听当前操作记录 | | controlAPI.listeningComponentListChange | callback/回调函数 | 监听组件列表变化 | | controlAPI.listeningEventChange | callback/回调函数 | 监听事件函数的变化 | | controlAPI.listeningZoomChange | callback/回调函数 | 监听面板缩放 |

| 容器扩展 | 参数 | 方法名字 | | ----------------------- | ---- | -------------- | | controlAPI.coilBox | 无 | 面板容器锁定框 | | controlAPI.closeCoilBox | 无 | 移除锁定框 |

原作者

  • levy

创建时间

  • 2021-6-28