{"id":20103279,"url":"https://github.com/bmfe/eros-widget","last_synced_at":"2025-10-19T01:06:26.528Z","repository":{"id":90566738,"uuid":"120586893","full_name":"bmfe/eros-widget","owner":"bmfe","description":"eros widget is the two encapsulation for eros module.","archived":false,"fork":false,"pushed_at":"2018-12-13T06:30:46.000Z","size":28,"stargazers_count":13,"open_issues_count":0,"forks_count":9,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-09T10:27:39.745Z","etag":null,"topics":["eros","vue","weex","weex-eros"],"latest_commit_sha":null,"homepage":"https://bmfe.github.io/eros-docs/#/zh-cn/eros_widget","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bmfe.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-02-07T08:35:00.000Z","updated_at":"2023-04-13T14:16:37.000Z","dependencies_parsed_at":"2024-01-10T07:51:57.146Z","dependency_job_id":null,"html_url":"https://github.com/bmfe/eros-widget","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmfe%2Feros-widget","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmfe%2Feros-widget/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmfe%2Feros-widget/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmfe%2Feros-widget/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bmfe","download_url":"https://codeload.github.com/bmfe/eros-widget/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252648582,"owners_count":21782409,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["eros","vue","weex","weex-eros"],"created_at":"2024-11-13T17:35:35.432Z","updated_at":"2025-10-19T01:06:26.437Z","avatar_url":"https://github.com/bmfe.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"eros widget is the two encapsulation for eros module.\n\n## How to use\n1.install eros-widget in eros init project.\n```\n$ npm i eros-widget -S\n```\n2.init widget in appboard js bundle.(default: `config/index.js`)\n``` js\nimport widget from 'eros-Widget'\n\nconst options = {}\n\nnew widget(options)\n```\n\n## Config options\n```js\nconst options = {\n    router: {\n        /**\n         * 路由配置表\n         */\n        routes: {}\n    },\n    ajax: {\n        baseUrl: 'http://app.weex-eros.com:52077',\n        /**\n         * 接口别名\n         */\n        apis: {},\n        // 接口超时时间\n        timeout: 30000,\n\n        /**\n         * 请求发送统一拦截器 （可选）\n         * options 你请求传入的所有参数和配置\n         * next\n         */\n        requestHandler (options, next) {\n            console.log('request-opts', options)\n            next()\n        },\n        /**\n         * 请求返回统一拦截器 （可选）\n         * options 你请求传入的所有参数和配置\n         * resData 服务器端返回的所有数据\n         * resolve 请求成功请resolve你得结果，这样请求的.then中的成功回调就能拿到你resolve的数据\n         * reject 请求成功请resolve你得结果，这样请求的.then中的失败回调就能拿到你reject的数据\n         */\n        responseHandler (options, resData, resolve, reject) {\n            const { status, errorMsg, data } = resData\n            if (status !== 200) {\n                console.log(`invoke error status: ${status}`)\n                console.log(`invoke error message: ${errorMsg}`)\n                reject(resData)\n            } else {\n                // 自定义请求逻辑\n                resolve(data)\n            }\n        }\n    }\n```\n\n`router.routes`: config $router.open path alias\n```js\nroutes: {\n\t'demo': {\n        title: 'weex-eros demo',\n        url: '/pages/demo/index.js'\n    }\n}\n```\n\n#### `ajax.baseUrl`: config you request baseUrl\n#### `ajax.apis`: config you request path alias\n```js\napis: {\n    'COMMON.getInfo': '/test/info/'\n}\n```\n also you can config dynamic path.\n```js\napis: {\n    'COMMON.getInfo': '/test/info/{plaform}/{id}'\n}\n```\nand we deliver them in $get/$post params option.\n```js\nthis.$get({\n    name: 'COMMON.getInfo',\n    params: {\n        platform: 'app',\n        id: 3\n    },\n    data: {\n        name: 'eros'\n    }\n})\n```\nfinally our request url become :\n```\najax.baseUrl + /test/info/app/3?name=eros\n```\n\n#### `ajax.timeout`: request timeout time.(ms)\n#### `ajax.requestHandler`: request Interceptor\n#### `ajax.responseHandler`: response Interceptor\n\n## How to develop\n\n1.init eros project.\n\n```\n$ eros init\n```\n\n2.cd your project and enter src/js\n\n```\n$ cd eros-demo/src/js\n```\n\n3.clone eros-widget.git.\n```\n$ git clone https://github.com/bmfe/eros-widget.git eros-widget\n```\n\n4.add config `eros.dev.js` alias option.\n```js\n\"ErosWidget\": \"js/eros-widget\"\n```\n\n5.init widget in appboard js bundle.(default: `config/index.js`)\n```js\nimport ErosWidget from 'ErosWidget'\n\nconst options = {}\n\nnew ErosWidget(options)\n```\n\n\u003e welcome your pull request! eros loves you.\n\n## Records\n# 1.0.1-beta.8\n* [bugfix] backAppeared 和 beforeBackAppeared 不执行的问题\n* [bugfix] pickAndUpload 成功后成功回调进入 error 回调\n* [optimize] fetch method GET POST 大小写均可\n\n# 1.0.1-beta.7\n* [bugfix] $image.upload status code 判断失误\n\n# 1.0.1-beta.6\n* [optimize] 重写 $bindingx 的引用方法，重写了 bind 方法，支持所有内部暴露出来的方法\n* [bugfix] 父子组件同时注册生命周期，执行两次的 bug\n\n# 1.0.1-beta.3/4/5\n* [add] support bindingx.\n\n# 1.0.1-beta.2\n* [bugfix] beforeAppear 和 beforeBackAppear 另个页面返回或者结束后仍会获取到上次的$router.setBackParams数据的 bug.\n\n# 1.0.1-beta.1\n* [bugfix] 修复全局事件注册2次的bug\n\n# 1.0.1\n生命周期，自定义事件均做调整，如果不更改，请不要升级到 `1.0.1`。\n* `bmRouter` 变更为 `eros`\n* 添加 `pushMessage`，可在页面中监听推送\n* 添加 `appActive`，可在页面中监听 app 切换到后台事件\n* 添加 `appDeactive`，可在页面中监听 app 切换至前台事件\n* `viewWillAppear` 变更为 `beforeAppear`，beforeBackAppear，通过打开类型来做区分\n* `viewDidAppear` 变更为 `appeared`，`backAppeared`，通过打开类型来做区分\n* `viewWillDisappear` 变更为 `beforeDisappear`\n* `viewDidDisappear` 变更为 `disappeared`\n\n# 1.0.0\n* 从模板中抽离 widget 完成","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbmfe%2Feros-widget","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbmfe%2Feros-widget","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbmfe%2Feros-widget/lists"}