Skip to content

Latest commit

 

History

History
executable file
·
374 lines (290 loc) · 11.5 KB

CHANGELOG.md

File metadata and controls

executable file
·
374 lines (290 loc) · 11.5 KB

Change Log

0.7.4(2021/4/14)

  • [fix] : 修复schema.label为对象时不兼容问题

0.7.3(2021/3/2)

  • [fix] : 修复设计器生命周期created位置不正确问题
  • [fix] : 更新依赖epage-core,增强根据shema添加组件store.addWidget()
  • [fix] : 修复store.updateWidgetOption(rootSchema.key, {})不能更新rootSchema.option问题

0.7.2(2021/3/1)

  • [feat] : 设计器支持toolsetting面板自定义
new Epage({
  panels: {
    tool: false, // 隐藏工具面板,以下自定义
    // tool: {
    //   render: function ({ el, store,  ctx}) {
    //     el.innerHTML ='tool'
    //   },
    //   style: ''
    // },
    setting: false,  // 隐藏配置面板,以下自定义
    // setting: {
    //   render: function ({ el, store,  ctx}) {
    //     el.innerHTML ='tool'
    //   },
    //   style: ''
    // },
    // ...
  }
})

0.7.1(2021/2/21)

0.7.0(2021/2/20)

  • [feat] : 设计器界面升级
    • 增加header面板,分leftcenterright三部分
    • logicpreviewschema视图改外全屏方式
    • 增加pch5双端同时配置能力
  • [feat] : 设计器支持插件面板定制能力
import { render } from 'epage-core'
import iviewWidgets, { entry as PCEntry } from 'epage-iview'
import vantWidgets, { entry as H5Entry } from 'epage-vant'

class EpageCustomPlugin {
  apply(hooks, epage) {
    // 生命周期参考下方 生命周期钩子 说明
    hooks.life.beforeCreate.tap(function ({ ctx })  {
      console.log(11, ctx)
    })
     // hooks.life及hooks.schema的钩子,ctx为设计器实例
     // hooks.render的钩子,ctx为渲染器实例
  }
}

const config = {
  // 必填
  el,
  // 非必填
  schema,
  // 旧用法,未来会替换,不止双端设计器,建议使用新用法
  widgets: iviewWidgets,
  // 旧用法,未来会替换,不止双端设计器,建议使用新用法
  Render: render.VueRender,
  // 下方均为新用法
  view: 'pc', // 非必填,默认pc,设计器默认渲染视图
  // 新用法中pc 与h5其一必填,或两个都有
  pc: {
    widgets: iviewWidgets,
    component: PCEntry, // 渲染入口
    Render: render.VueRender
  },
  h5: {
    widgets: vantWidgets,
    component: H5Entry, // 渲染入口
    Render: render.VueRender
  },
  // 非必填,全局扩展配置面板:所有widget都会有此配置
  // 一般替换或增强内置全局配置,只要没志向key 为
  // prop | style | global 即可替换内置
  // 属性 | 样式 | 页面配置
  // 用法与下方 `widget.Setting` 椅子
  settings: [{
    key: 'prop',
    name: '自定义属性',
    // 用此属性将使用内置渲染器,
    // framework: 'vue',
    component: function ({ el, store }) {},
  }],
  // 非必填,定制面板
  panels: {
    header: {
      // 有render属性,left、center、right属性失效
      // style属性继续生效
      render: function({ el, store }) {
        el.innerHTML = 'Epage Header'
      },
      // 非必填
      style: 'font-size: 20px;',
      // 左侧标题
      left: {
        render: function({ el, store }) {
          el.innerHTML = 'Epage Title'
        },
        style: 'font-size: 20px;',
      },
      center, // 同 left
      right: {
        logic: false,
        schema: false,
        preview: false,
        help: false,
        style, // 同 left
        render, // 同 left
      }
    }
  },
  // 非必填
  plugins: [
    new EpageCustomPlugin()
  ]
}

new Epage(config)
  • [feat] : 设计器增加生命周期钩子
{
  // 设计器生命周期
  life: {
    init, // 初始化,store、render等尚未进行
    beforeCreate, // 设计器创建之前,可获取store
    created, // 设计器创建之后,可获取内部渲染器$render
    beforeDestroy, // 设计器销毁前
    destroyed // 设计器销毁后,注销事件等
  },
  // schema 相关hook
  schema: {
    copy, // schema执行copy时调用,复制到剪切板以前对schema做自定义修改
  },
  // 同设计器生命周期,只是针对内置渲染器
  render: {
    init,
    beforeCreate,
    created,
    beforeDestroy,
    destroyed,
  }
}
  • [feat] : 单个widget.Setting支持数组形式,并保留原来单一vue组件能力
// widget/Setting.js
// 原来单个vue组件也支持,也可以为下方数组形式
export default [{
  // 必填参数,其中prop | style | global为内置设置面板key
  // 为这三个值将替换对应内置配置表单,否则将在此基础扩展面板
  key: 'prop', 
  // 面板标题
  name: '自定义属性',
  // 可选参数,如果值为vue或react,将使用epage-core的render模块
  // 的 VueRender或ReactRender渲染,下方component属性值
  // 应为对应框架的组件
  fragment: 'vue',
  // 不指定 fragment字段,且component为函数,将执行component
  // 参数 { el, store } 
  // el为当前配置面板内dom容器
  // store为当前设计器store,可获取、修改设计器内所有状态
  component: funtion ({ el, store }) {
    el.innerHTML = '自定义配置'
    // 这里可通过 new ReactRender({ el, store, component })
    // 实现react组件的配置表单能力
  }
}]

⚠️⚠️⚠️ 不兼容更新 ⚠️⚠️⚠️

  • src/Design.js重命名为 src/Epage.js
  • 原内置widget的 Setting.vue,移动到epage-iview包中
  • 去掉 widget 模块导出,响应能力如下改动:
    • Epage.widget.input.SettingSetting表单 改为 epage-iview包的inputWidget.Setting
    • Epage.setting对应epage-iview包的setting模块
  • 原从epage-iview包内引入的样式,做如下修改:
/* 原epage-iview项目,直接依赖epage */
@import '~iview/src/styles/index.less';
@import '~epage/src/style/main.less';

/* 修改后,epage-iview与epage相互独立 */
@import '~iview/src/styles/index.less';
@import '~vant/lib/index.less'; /* 双端设计才需要 */
@import '.~epage/src/style/main.less';
@import '~epage-iview/src/style/main.less';
@import '~epage-vant/src/style/main.less'; /* 双端设计才需要 */
  • epage-iview渲染组件 + 渲染器)直接依赖epage(设计器),改造后epage-iview(渲染组件)与epage相互独立,渲染器 移动到epage-core的render模块(EpageCore.render.VueRender

0.6.1(2021/1/18)

  • [fix] : 修复widget被二次添加时,widget.Setting生命周期没有再次使用问题

0.6.0(2020/12/31)

  • [feat] : 开放单一widget样式配置,自定义高级背景配置
  • [feat] : 新增text widget能力,支持{{$f[schema.name]]}}表达式运算

0.5.0(2020/11/04)

  • [feat] : 增加整体页面配置(背景色、间距等)
  • [feat] : 配置面板支持自定义扩展,通过new Epage扩展参数
const settings = [
  { key: 'style', title: '样式设置', component: VueComponent }
]
new Epage({..., settings })
  • [feat] : 工具面板界面优化
  • [fix] : 字典能力优化(暂不可见)

0.4.1(2020/10/20)

  • [feat] : 逻辑关系中,被控组件存在多值时,增加值的 关系
  • [feat] : 逻辑关系比较增加值类型条件
  • [feat] : 去除工具面板图标,以通用
  • [fix] : 修复 cascader 值类型转换未递归问题

0.4.0(2020/10/12)

  • [feat] : 增加widget显隐属性默认值,逻辑配置面板,不符合条件时回退到默认值
  • [feat] : 逻辑配置面板,可配置自定义脚本,可直接使用ctx全局变量,关于ctx可参考button的ctx

0.3.8(2020/08/19)

  • [fix] : 修复datePickertimePicker在设计器中,默认值为使用时日期时,切换其他组件默认值被修改问题

0.3.7(2020/08/18)

  • [fix] : 修复上个版本增加json类型忽略undefined情况导致渲染报错

0.3.6(2020/08/17)

  • [feat] : 增加json表单类型校验

0.3.5(2020/08/13)

  • [fix] : 修复从设计器实例页跳转到其他页,重新返回设计器页预览视图未显示问题

0.3.4(2020/08/10)

  • [feat] : 增加ContextScript模块导出

0.3.3(2020/08/01)

  • [feat] : 增加基础widget默认值
  • [feat] : button组件支持自定义脚本

0.3.1~0.3.2(2020/07/22)

  • [feat] : 增加页面配置属性,设置整体页面背景色、边距等
  • [fix] : 修复基础widget 多选、级联、复选、单选等设计时,手动输入key自动失焦问题

0.3.0(2020/07/09)

  • [feat] : 升级设计器主界面工具面板,分类展开方式呈现
  • [feat] : 原工作面板内置的formvalidate按钮删除,可在epage外自行实现
  • [fix] : 删除设计器实例化时getFormDatagetSchema参数。同时增加设计器内部渲染器示例的引用epage.$render,尤其在预览视图可以对渲染示例操作,如获取预览模式下用户输入的值epage.$render.store.getFormData()

注意 epage.$render.storeepage.store不同,后者为设计器内部的渲染器示例的store,后者为设计器内部的store,二者在设计视图下是相同的

0.2.9(2020/07/02)

  • [fix] : 工具方法增加 usePlugins方法,判断Vue项目plugin是否重复安装

0.2.8(2020/06/19)

  • [fix] : 修复helper模块下formatDate格式时间HH未替换及转字符串未补0问题

0.2.7(2020/06/11)

  • [feat] : worker支持custom类型脚本,不对结果进行校验
const worker = new Epage.Worker()
const data = [1, 2]

worker.onmessage = function (e) {
  const { message, success, data } = e.data
  console.log(data)
  // [{ value: 1 }, { value: 2 }]
}
worker.postMessage({
  action: 'custom',
  data: data,
  fn: `return data.map(function(item){
    return { value: item }
    })`
})

0.2.6

  • [fix] : 修复配置逻辑关系时,更改主控widget,受控widget不更新问题
  • [feat] : 增加逻辑配置中 EffectProperties

0.2.5

  • [fix] : 修复隐藏widget依然进行表单规则校验问题,增加getFormRules

0.2.4

  • [fix] : 修改上传widget 的默认校验规则
  • [fix] : 修改基础非表单Schema默认静态属性,去除validatorstype
  • [fix] : 修改打包脚本由npm run prod改为npm run build

0.2.3

  • [fix] : 修复datePicker schema定义,去除option.type
  • [fix] : 修复timePicker 设置表单时间点及区间切换错误
  • [fix] : 修复cascader连接符不生效问题,优化手动输入数据时样式
  • [fix] : 修复inputNumber设置表单步长及精度最小值不准确问题

0.2.2

  • [fix] : 修复基础widget的Schema默认字段,去除冗余字段,修改默认
  • [fix] : 更新 package.json 增加 peerDependencies 字段

0.2.1

  • [fix] : 修复逻辑面板主控、被控widget显示名不正确
  • [fix] : 修复无schema.type值时,获取store.getFormData()报错

0.2.0

  • [feat] : 导出增加schema,移除原导出Schema,同时schema模块中提供多种基础Schema可供继承
schema.BaseSchema // 基础Schema,所有Schema都将继承,只包含schema必须字段
schema.FormSchema // 针对表单提供的特定场景Schema,
schema.RootSchema // 根Schema,继承至grid widget的Schema

注意:

原通过Epage.Schema方式继承需改为 Epage.schema.BaseSchemaEpage.schema.FormSchema

  • [feat] : 替换 schema.titleschema.label
  • [fix] : 修改switch schema的默认规则

0.1.0

  • [feat] : 正式开源第一版