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

scene-sdk

v0.0.2

Published

scene sdk

Downloads

2

Readme

LegoSdk

介绍

LegoSdk以SPEC(@baidu/eform中有相关解释)为输入,生成表单,把用户填写的内容输出为结构化数据,并完成数据校验;输出数据结合样式逻辑,形成客户广告模块的实时预览。

spec文档demo

实现简介

@baidu/eform@baidu/lego-sdk-preview进行封装,同时增加了个性化品专以及定制预览等逻辑。对eform需对外的方法进行了代理,如validate、getValue、setValue;umd版本还包括@baidu/eform-default-view

发布方式

本地编译

    npm run build
    npm run test-build

umd版本

直接bos上传,测试版、正式版都需要上传: 测试版:http://ecmb.bdimg.com/adcoup-mat/lego-sdk/new/lego-sdk-test.js 正式版:http://ecmb.bdimg.com/adcoup-mat/lego-sdk/new/lego-sdk.js

edp版本

    // * publish 需要登陆,用此命令
    npm login --registry=http://edp-registry.baidu.com
    // 账号:Username:songao5  Password:123456  Email:[email protected]
    npm publish --registry=http://edp-registry.baidu.com

使用方式

代码引入

  • edp模块使用(推荐)
    edp import baidu-lego-sdk
  • umd方式(包含@baidu/eform-default-view模块,即表单使用默认的view) 直接下载打包后的文件即可,文件位于项目文件夹的output/lego-sdk.js;直接使用在线地址: 测试版:http://ecmb.bdimg.com/adcoup-mat/lego-sdk/new/lego-sdk-test.js 正式版:http://ecmb.bdimg.com/adcoup-mat/lego-sdk/new/lego-sdk.js

  • npm模块使用(使用前沟通,为减少维护成本,目前只发布到了1.0.8版)


    // 安装npm包
    npm install @baidu/lego-sdk --registry http://registry.npm.baidu.com --dev
    // 代码中引入
    import LegoSdk from '@baidu/lego-sdk'

    // 如需使用默认的表单样式,再引入@baidu/eform-default-view,并注册view
    npm install @baidu/eform-default-view --registry http://registry.npm.baidu.com --dev    

    import EformView from '@baidu/eform-default-view' 
    LegoSdk.registerView(EformView);

生成实例


    /**
     * 物料编辑预览控件
     *
     * @param  {HTMLElement} dom  legoSdk展现容器
     *     @param {Array} template.spec 样式spec信息
     *     @param {Array} template.renders 样式渲染信息,一个或多个render配置信息,一般后端接口返回;一个render格式为:
     *      {
     *          "id": 8231,
     *          "name": "SMART",
     *          "js": "xxx",
     *          "width": 360,
     *          "height": 400
     *      }
     * @param  {Object} options 选项
     *     @param {boolean} options.hideEform 是否隐藏表单区域,默认false
     *     @param {boolean} options.hidePreview 是否隐藏预览区域,默认false
     *     @param {Array.<Object>} options.extraTabs 额外TAB
     *     @param {number} options.previewTabIndex 预览面板在所有TAB面板中的索引位置,默认0
     *     @param {number} options.activeTabIndex 初始展示的面板在所有TAB面板中的索引位置
     *     @param {string} options.tips 预览区域下方的提示文字
     *
     *     @param {Object} options.defaultValue 默认数据
     *     @param {Object} options.uploadUrl 上传路径
     *     @param {number} options.isSupportDWZ 是否支持短网址,默认为true
     *
     *     @param {boolean} options.rewriteLinkTarget 是否重写预览里的a链接的target
     *     @param {boolean} options.fixedHeightCanvas 表单预览区域高度用给定的值
     *     @param {string} options.baseCssUrl 基础css文件url
     *     @param {string} options.previewBeforeCode 定制预览代码(head里)
     *     @param {string} options.previewAfterCode 定制预览代码(最后面)
     *     @param {Array|undefined} options.pplBlockNames 个性化blockName
     *     @param {Array|undefined} options.previewPlugins 定制预览插件名array
     *     @param {Array|undefined} extensions 业务端需要用到的通用extension数组,也可用于实例时给extension传参,如:
     *          [
     *              'sf',
     *              {
     *                  name: 'dwz',
     *                  params: {
     *                      apiUrl: 'http://www.baidu.com'
     *                  }
     *              }
     *          ]
     *          外层可能传的名字叫extensionMap,会做兼容处理
     *     @param {string?} configUrl legoSdk通用配置,如extensionAPI配置等,外部传递可以实现环境的区分
     *     @param {string?} previewConfigUrl 外部传递可以实现环境的区分
     */
    let legoSdk = new LegoSdk(dom, template, options);

实际用例

查看demo文件

常用方法


// 获取json数据
legoSdk.getValue();

// 设置数据
legoSdk.setValue({
    'title': '标题....',
    ...
});

// 校验数据
legoSdk.validate();

其他

upload接口约定

        
        // 接口地址
        http://SERVICE_URL&spec=xxx&callback=parent.eform_a0e0_callback
        // spec、callback参数必须;
        // 有些业务端会对callback参数有正则匹配的校验,如锦囊,测试时需注意

        //上传成功
        if (data.success == 'true' || data.success == true) {

        }
        
        // 返回数据格式
        {
            "success": "true",
            "message": {}, //出错时message内容为 'ERROR':"xxxx"
            "result": {
                "preview_url": "http://ecmb.bdimg.com/tam-ogel/e0feeaeb09048b628358b0f987f0059c_1242_1102.jpg"
            }
        }

changelog

1.2.1

2017-08-15 19:30

  • disable方法会影响到外层A链接bug fixed
  • 优化事件调用,增加debounce方法
  • padding_extra extension配置修改
  • dwz extension增加对extraAttr.hideUrl的判断

1.2.0

2017-08-10 18:00

  • 优化config配置,configUrl、previewConfigUrl参数化,实例化时可传入,eform接受config参数,与backup config做merge

1.1.8

2017-08-08 18:00

1.1.5

2017-08-03 14:25

  • 修复baidu浏览器某些版本不支持Object.assign bug
  • URL类型自动增加http协议功能添加

1.1.3

2017-08-01 16:30

  • 修复list setValue为空,minCount === maxCount时没显示添加按钮bug

1.1.2

2017-07-28 17:00

1.1.1

2017-07-21 13:00

1.0.9

2017-07-14 15:00

接口人及使用情况

  • lego 陈立 已使用新版umd方式,lego重构版本使用npm版本
  • maya 陈立 已使用新版,edp版
  • 开放平台 张磊 edp版
  • 锦囊 范学亮 已使用新版umd方式,锦囊重构版本需使用edp版本
  • 中小业务端 范学亮 umd,测试中
  • 华表 范学亮
  • 起跑线 张鑫
  • 知识营销 褚波
  • 品牌序章 张力 接入中 npm版