├── ip.txt ├── platforms ├── ios │ ├── README.md │ └── WeexEros │ │ ├── WeexEros │ │ ├── Assets.xcassets │ │ │ ├── Contents.json │ │ │ ├── Scan │ │ │ │ ├── Contents.json │ │ │ │ └── Scan_line.imageset │ │ │ │ │ ├── Scan_line@2x.png │ │ │ │ │ └── Contents.json │ │ │ ├── Navbar │ │ │ │ ├── Contents.json │ │ │ │ ├── NavBar_BackIcon.imageset │ │ │ │ │ ├── NavBar_BackIcon@2x.png │ │ │ │ │ ├── NavBar_BackIcon@3x.png │ │ │ │ │ └── Contents.json │ │ │ │ └── NavBar_BackItemIcon.imageset │ │ │ │ │ ├── NavBar_BackItemIcon@2x.png │ │ │ │ │ ├── NavBar_BackItemIcon@3x.png │ │ │ │ │ └── Contents.json │ │ │ ├── Other │ │ │ │ ├── Contents.json │ │ │ │ └── image_placeholder.imageset │ │ │ │ │ ├── image_placeholder@2x.png │ │ │ │ │ ├── image_placeholder@3x.png │ │ │ │ │ └── Contents.json │ │ │ ├── pullLoadding │ │ │ │ ├── Contents.json │ │ │ │ ├── loadding0001.imageset │ │ │ │ │ ├── loadding0001@2x.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── loadding0002.imageset │ │ │ │ │ ├── loadding0002@2x.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── loadding0003.imageset │ │ │ │ │ ├── loadding0003@2x.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── loadding0004.imageset │ │ │ │ │ ├── loadding0004@2x.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── loadding0005.imageset │ │ │ │ │ ├── loadding0005@2x.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── loadding0006.imageset │ │ │ │ │ ├── loadding0006@2x.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── loadding0007.imageset │ │ │ │ │ ├── loadding0007@2x.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── loadding0008.imageset │ │ │ │ │ ├── loadding0008@2x.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── loadding0009.imageset │ │ │ │ │ ├── loadding0009@2x.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── loadding0010.imageset │ │ │ │ │ ├── loadding0010@2x.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── loadding0011.imageset │ │ │ │ │ ├── loadding0011@2x.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── loadding0012.imageset │ │ │ │ │ ├── loadding0012@2x.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── loadding0013.imageset │ │ │ │ │ ├── loadding0013@2x.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── loadding0014.imageset │ │ │ │ │ ├── loadding0014@2x.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── loadding0015.imageset │ │ │ │ │ ├── loadding0015@2x.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── loadding0016.imageset │ │ │ │ │ ├── loadding0016@2x.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── loadding0017.imageset │ │ │ │ │ ├── loadding0017@2x.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── loadding0018.imageset │ │ │ │ │ ├── loadding0018@2x.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── loadding0019.imageset │ │ │ │ │ ├── loadding0019@2x.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── loadding0020.imageset │ │ │ │ │ ├── loadding0020@2x.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── loadding0021.imageset │ │ │ │ │ ├── loadding0021@2x.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── loadding0022.imageset │ │ │ │ │ ├── loadding0022@2x.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── loadding0023.imageset │ │ │ │ │ ├── loadding0023@2x.png │ │ │ │ │ └── Contents.json │ │ │ │ └── loadding0024.imageset │ │ │ │ │ ├── loadding0024@2x.png │ │ │ │ │ └── Contents.json │ │ │ ├── LaunchImage.launchimage │ │ │ │ ├── 640-960.png │ │ │ │ ├── 1125-2436.png │ │ │ │ ├── 1242-2208.png │ │ │ │ ├── 640-1136.png │ │ │ │ ├── 750-1334.png │ │ │ │ └── Contents.json │ │ │ └── AppIcon.appiconset │ │ │ │ ├── 1024-1024store_1024pt.png │ │ │ │ ├── 1024-1024iPhoneApp_60pt@2x.png │ │ │ │ ├── 1024-1024iPhoneApp_60pt@3x.png │ │ │ │ ├── 1024-1024iPhoneNotification_20pt@2x.png │ │ │ │ ├── 1024-1024iPhoneNotification_20pt@3x.png │ │ │ │ ├── 1024-1024iPhoneSpootlight5_29pt@2x.png │ │ │ │ ├── 1024-1024iPhoneSpootlight5_29pt@3x.png │ │ │ │ ├── 1024-1024iPhoneSpootlight7_40pt@2x.png │ │ │ │ ├── 1024-1024iPhoneSpootlight7_40pt@3x.png │ │ │ │ └── Contents.json │ │ ├── bundle.zip │ │ ├── WeexEros.entitlements │ │ ├── AppDelegate.h │ │ ├── en.lproj │ │ │ └── Launch Screen.strings │ │ ├── zh-Hans.lproj │ │ │ └── Launch Screen.strings │ │ ├── main.m │ │ ├── AppDelegate.m │ │ ├── eros.native.json │ │ ├── bundle.config │ │ ├── Info.plist │ │ └── Base.lproj │ │ │ └── Launch Screen.storyboard │ │ ├── install.sh │ │ ├── Podfile │ │ └── WeexEros.xcodeproj │ │ └── xcshareddata │ │ └── xcschemes │ │ └── WeexEros.xcscheme └── android │ ├── README.md │ └── WeexFrameworkWrapper │ ├── app │ ├── .gitignore │ ├── src │ │ ├── main │ │ │ ├── assets │ │ │ │ ├── bundle.zip │ │ │ │ ├── eros.native.json │ │ │ │ └── bundle.config │ │ │ ├── res │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── drawable-xhdpi │ │ │ │ │ └── ic_splash.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── values │ │ │ │ │ ├── strings.xml │ │ │ │ │ ├── colors.xml │ │ │ │ │ ├── dimens.xml │ │ │ │ │ └── styles.xml │ │ │ │ ├── values-w820dp │ │ │ │ │ └── dimens.xml │ │ │ │ └── layout │ │ │ │ │ ├── activity_splash.xml │ │ │ │ │ └── activity_main.xml │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── benmu │ │ │ │ └── wx │ │ │ │ ├── App.java │ │ │ │ ├── wxapi │ │ │ │ ├── AppRegister.java │ │ │ │ ├── WXEntryActivity.java │ │ │ │ └── WXPayEntryActivity.java │ │ │ │ └── activity │ │ │ │ ├── MainActivity.java │ │ │ │ └── SplashActivity.java │ │ ├── test │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── benmu │ │ │ │ └── wx │ │ │ │ └── ExampleUnitTest.java │ │ └── androidTest │ │ │ └── java │ │ │ └── com │ │ │ └── benmu │ │ │ └── wx │ │ │ └── ExampleInstrumentedTest.java │ ├── samplechannel │ │ └── release │ │ │ └── output.json │ ├── proguard-rules.pro │ └── build.gradle │ ├── settings.gradle │ ├── eros_demo.jks │ ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ ├── install.sh │ ├── build.gradle │ └── gradlew.bat ├── _config.yml ├── src ├── js │ ├── config │ │ ├── apis.js │ │ ├── push.js │ │ ├── routes.js │ │ └── index.js │ ├── css │ │ ├── module │ │ │ ├── content-null.scss │ │ │ ├── common-order.scss │ │ │ └── tab-switch.scss │ │ ├── fragment │ │ │ ├── no-search.scss │ │ │ ├── form.scss │ │ │ └── dialog.scss │ │ └── core │ │ │ ├── ellipsis.scss │ │ │ └── mixins.scss │ ├── widget │ │ ├── geo.js │ │ ├── pay.js │ │ ├── camera.js │ │ ├── share.js │ │ ├── index.js │ │ ├── coms.js │ │ ├── nav.js │ │ ├── font.js │ │ ├── events.js │ │ ├── tools.js │ │ ├── axios.js │ │ ├── storage.js │ │ ├── notice.js │ │ └── image.js │ ├── pages │ │ └── yanxuanDemo │ │ │ ├── class │ │ │ ├── header.vue │ │ │ ├── config.js │ │ │ └── index.scss │ │ │ ├── home │ │ │ ├── YXSlider.vue │ │ │ ├── index.scss │ │ │ ├── header.vue │ │ │ ├── topChannel.scss │ │ │ ├── block1.vue │ │ │ ├── block3.vue │ │ │ ├── block2.vue │ │ │ └── topChannel.vue │ │ │ ├── config.js │ │ │ ├── my │ │ │ ├── config.js │ │ │ └── index.scss │ │ │ ├── shop │ │ │ ├── block.vue │ │ │ ├── index.scss │ │ │ ├── header.vue │ │ │ ├── a.vue │ │ │ ├── block.scss │ │ │ ├── config.js │ │ │ └── index.vue │ │ │ ├── topic │ │ │ ├── header.vue │ │ │ ├── block1.vue │ │ │ ├── config.js │ │ │ ├── index.vue │ │ │ └── block2.vue │ │ │ ├── common │ │ │ ├── tabBar.vue │ │ │ └── refresh.vue │ │ │ ├── utils │ │ │ └── util.js │ │ │ └── index.vue │ ├── components │ │ ├── tabs │ │ │ ├── item.vue │ │ │ └── bar.vue │ │ └── bmContainer │ │ │ └── index.vue │ └── mediator │ │ └── index.vue ├── assets │ └── test.jpeg ├── iconfont │ ├── iconfont.ttf │ ├── font_1469606063_76593.ttf │ ├── font_zn5b3jswpofuhaor.ttf │ └── font_1469606522_9417143.woff └── mock │ ├── test │ └── info.js │ └── test2 │ └── info2.js ├── CHANGELOG.md ├── ISSUE_TEMPLATE.md ├── .babelrc ├── package.json ├── LICENSE ├── README.md ├── config ├── eros.dev.js └── eros.native.js ├── .gitignore └── scripts ├── update.ios.sh ├── update.android.sh ├── install.ios.sh └── install.android.sh /ip.txt: -------------------------------------------------------------------------------- 1 | 192.168.15.12 -------------------------------------------------------------------------------- /platforms/ios/README.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /platforms/android/README.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-minimal -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /src/js/config/apis.js: -------------------------------------------------------------------------------- 1 | export default { 2 | 'COMMON.getInfo': '/test/info' 3 | } 4 | -------------------------------------------------------------------------------- /src/assets/test.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/src/assets/test.jpeg -------------------------------------------------------------------------------- /src/iconfont/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/src/iconfont/iconfont.ttf -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## date: 2017-12-29 2 | * 模板更新: widget 更新优化 3 | * 模板更新: 移除__eros__文件夹 不再需要 4 | * 模板更新: 支持 npm install weex-ui 来使用 -------------------------------------------------------------------------------- /src/iconfont/font_1469606063_76593.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/src/iconfont/font_1469606063_76593.ttf -------------------------------------------------------------------------------- /src/iconfont/font_zn5b3jswpofuhaor.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/src/iconfont/font_zn5b3jswpofuhaor.ttf -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /src/iconfont/font_1469606522_9417143.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/src/iconfont/font_1469606522_9417143.woff -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/Scan/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/bundle.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/bundle.zip -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/Navbar/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/Other/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/eros_demo.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/android/WeexFrameworkWrapper/eros_demo.jks -------------------------------------------------------------------------------- /src/mock/test/info.js: -------------------------------------------------------------------------------- 1 | module.exports = [{ 2 | "delay": 500, 3 | "response": { 4 | "resCode": 0, 5 | "msg": null, 6 | "data": "mock请求成功!" 7 | } 8 | }] -------------------------------------------------------------------------------- /src/mock/test2/info2.js: -------------------------------------------------------------------------------- 1 | module.exports = [{ 2 | "delay": 500, 3 | "response": { 4 | "resCode": 0, 5 | "msg": null, 6 | "data": "mock请求成功!" 7 | } 8 | }] -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/app/src/main/assets/bundle.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/android/WeexFrameworkWrapper/app/src/main/assets/bundle.zip -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/android/WeexFrameworkWrapper/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/android/WeexFrameworkWrapper/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/android/WeexFrameworkWrapper/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/LaunchImage.launchimage/640-960.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/LaunchImage.launchimage/640-960.png -------------------------------------------------------------------------------- /src/js/css/module/content-null.scss: -------------------------------------------------------------------------------- 1 | /*暂无订单*/ 2 | .wrap-null { 3 | padding-top: 254; 4 | align-items: center; 5 | } 6 | .null-txt { 7 | margin-top: 40; 8 | font-size: $font-32; 9 | color: $base-disabled; 10 | } -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/app/src/main/res/drawable-xhdpi/ic_splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/android/WeexFrameworkWrapper/app/src/main/res/drawable-xhdpi/ic_splash.png -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/android/WeexFrameworkWrapper/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/android/WeexFrameworkWrapper/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/LaunchImage.launchimage/1125-2436.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/LaunchImage.launchimage/1125-2436.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/LaunchImage.launchimage/1242-2208.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/LaunchImage.launchimage/1242-2208.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/LaunchImage.launchimage/640-1136.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/LaunchImage.launchimage/640-1136.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/LaunchImage.launchimage/750-1334.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/LaunchImage.launchimage/750-1334.png -------------------------------------------------------------------------------- /src/js/config/push.js: -------------------------------------------------------------------------------- 1 | const globalEvent = weex.requireModule('globalEvent') 2 | 3 | /** 4 | * 消息推送 5 | * options 客户端个推推送的所有消息 6 | */ 7 | globalEvent.addEventListener('pushMessage', function (options) { 8 | 9 | }) 10 | -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/Scan/Scan_line.imageset/Scan_line@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/Scan/Scan_line.imageset/Scan_line@2x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/AppIcon.appiconset/1024-1024store_1024pt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/AppIcon.appiconset/1024-1024store_1024pt.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/AppIcon.appiconset/1024-1024iPhoneApp_60pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/AppIcon.appiconset/1024-1024iPhoneApp_60pt@2x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/AppIcon.appiconset/1024-1024iPhoneApp_60pt@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/AppIcon.appiconset/1024-1024iPhoneApp_60pt@3x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/Navbar/NavBar_BackIcon.imageset/NavBar_BackIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/Navbar/NavBar_BackIcon.imageset/NavBar_BackIcon@2x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/Navbar/NavBar_BackIcon.imageset/NavBar_BackIcon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/Navbar/NavBar_BackIcon.imageset/NavBar_BackIcon@3x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0001.imageset/loadding0001@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0001.imageset/loadding0001@2x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0002.imageset/loadding0002@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0002.imageset/loadding0002@2x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0003.imageset/loadding0003@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0003.imageset/loadding0003@2x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0004.imageset/loadding0004@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0004.imageset/loadding0004@2x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0005.imageset/loadding0005@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0005.imageset/loadding0005@2x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0006.imageset/loadding0006@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0006.imageset/loadding0006@2x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0007.imageset/loadding0007@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0007.imageset/loadding0007@2x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0008.imageset/loadding0008@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0008.imageset/loadding0008@2x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0009.imageset/loadding0009@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0009.imageset/loadding0009@2x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0010.imageset/loadding0010@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0010.imageset/loadding0010@2x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0011.imageset/loadding0011@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0011.imageset/loadding0011@2x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0012.imageset/loadding0012@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0012.imageset/loadding0012@2x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0013.imageset/loadding0013@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0013.imageset/loadding0013@2x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0014.imageset/loadding0014@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0014.imageset/loadding0014@2x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0015.imageset/loadding0015@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0015.imageset/loadding0015@2x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0016.imageset/loadding0016@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0016.imageset/loadding0016@2x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0017.imageset/loadding0017@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0017.imageset/loadding0017@2x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0018.imageset/loadding0018@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0018.imageset/loadding0018@2x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0019.imageset/loadding0019@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0019.imageset/loadding0019@2x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0020.imageset/loadding0020@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0020.imageset/loadding0020@2x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0021.imageset/loadding0021@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0021.imageset/loadding0021@2x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0022.imageset/loadding0022@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0022.imageset/loadding0022@2x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0023.imageset/loadding0023@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0023.imageset/loadding0023@2x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0024.imageset/loadding0024@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0024.imageset/loadding0024@2x.png -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | WeexEros 3 | 女 4 | 男 5 | 6 | -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/AppIcon.appiconset/1024-1024iPhoneNotification_20pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/AppIcon.appiconset/1024-1024iPhoneNotification_20pt@2x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/AppIcon.appiconset/1024-1024iPhoneNotification_20pt@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/AppIcon.appiconset/1024-1024iPhoneNotification_20pt@3x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/AppIcon.appiconset/1024-1024iPhoneSpootlight5_29pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/AppIcon.appiconset/1024-1024iPhoneSpootlight5_29pt@2x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/AppIcon.appiconset/1024-1024iPhoneSpootlight5_29pt@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/AppIcon.appiconset/1024-1024iPhoneSpootlight5_29pt@3x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/AppIcon.appiconset/1024-1024iPhoneSpootlight7_40pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/AppIcon.appiconset/1024-1024iPhoneSpootlight7_40pt@2x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/AppIcon.appiconset/1024-1024iPhoneSpootlight7_40pt@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/AppIcon.appiconset/1024-1024iPhoneSpootlight7_40pt@3x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/Other/image_placeholder.imageset/image_placeholder@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/Other/image_placeholder.imageset/image_placeholder@2x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/Other/image_placeholder.imageset/image_placeholder@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/Other/image_placeholder.imageset/image_placeholder@3x.png -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/app/samplechannel/release/output.json: -------------------------------------------------------------------------------- 1 | [{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":1},"path":"app-samplechannel-release.apk","properties":{"packageId":"com.benmu.wx","split":"","minSdkVersion":"14"}}] -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/Navbar/NavBar_BackItemIcon.imageset/NavBar_BackItemIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/Navbar/NavBar_BackItemIcon.imageset/NavBar_BackItemIcon@2x.png -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/Navbar/NavBar_BackItemIcon.imageset/NavBar_BackItemIcon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmfe/eros-yanxuan-demo-v2/HEAD/platforms/ios/WeexEros/WeexEros/Assets.xcassets/Navbar/NavBar_BackItemIcon.imageset/NavBar_BackItemIcon@3x.png -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Tue Nov 21 18:48:24 CST 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip 7 | -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/WeexEros.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | aps-environment 6 | development 7 | 8 | 9 | -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // WeexEros 4 | // 5 | // Created by XHY on 2017/8/7. 6 | // Copyright © 2017年 benmu. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface AppDelegate : BMAppDelegate 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/en.lproj/Launch Screen.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "UILabel"; text = "WeexEros"; ObjectID = "GJd-Yh-RWb"; */ 3 | "GJd-Yh-RWb.text" = "WeexEros"; 4 | 5 | /* Class = "UILabel"; text = "Copyright © 2017年 benmu. All rights reserved."; ObjectID = "obG-Y5-kRd"; */ 6 | "obG-Y5-kRd.text" = "Copyright © 2017年 benmu. All rights reserved."; 7 | -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/zh-Hans.lproj/Launch Screen.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "UILabel"; text = "WeexEros"; ObjectID = "GJd-Yh-RWb"; */ 3 | "GJd-Yh-RWb.text" = "WeexEros"; 4 | 5 | /* Class = "UILabel"; text = "Copyright © 2017年 benmu. All rights reserved."; ObjectID = "obG-Y5-kRd"; */ 6 | "obG-Y5-kRd.text" = "Copyright © 2017年 benmu. All rights reserved."; 7 | -------------------------------------------------------------------------------- /src/js/css/fragment/no-search.scss: -------------------------------------------------------------------------------- 1 | // @Author: songqi 2 | // @Date: 2017-03-16 3 | // @Last modified by: songqi 4 | // @Last modified time: 2017-03-16 5 | 6 | 7 | 8 | @import "../core/base"; 9 | 10 | /*暂无搜索记录*/ 11 | .no-search { 12 | text-align: center; 13 | padding-top: 100; 14 | font-size: $font-30; 15 | color: $blue-ink; 16 | font-weight: bold; 17 | } 18 | -------------------------------------------------------------------------------- /src/js/config/routes.js: -------------------------------------------------------------------------------- 1 | // 这里的后缀都是 .js 因为打包出来的都是js文件,而不是.vue文件,我们要告诉客户端跳转那个js 2 | 3 | // 这里的路径和dev.json路径的区别 4 | // pages里面配置的是路由跳转的地址,也就是dev生成的 dist文件夹下的js bundle路径 从dist/js开始 5 | // dev.json 的 exports 需要打包的js地址,填入src的需要被打包成js bundle的地址 从src开始 6 | 7 | export default { 8 | 'a': { 9 | title: '路由测试页', 10 | url: '/pages/yanxuanDemo/shop/a.js' 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ### 简略的描述你的问题。 2 | > 例:图片上传导致系统崩溃。 3 | ### 环境信息 4 | > 例子: 5 | > * 开发平台:darwin\/windows/linux 6 | > * node 版本:8.x.x 7 | > * npm 版本:5.x.x 8 | > * 调试类型:模拟器/真机 9 | > * 调试系统版本: ios 8 10 | > * 开发工具及其版本 xcode 9 11 | 12 | ### 尽可能写下你对问题的分析,你觉得可能是由于什么造成的。 13 | > 例:bmImage module 中不支持传递参数的类型,导致的崩溃。 14 | ### 什么场景下会复现这个问题,复现率是多少。 15 | > 例:百分百复现,调用即复现。 16 | 17 | ### 详细的描述下你的 issue, 最好能有截图。(复杂的问题请一定仔细填写此项) 18 | > 答: -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // WeexEros 4 | // 5 | // Created by XHY on 2017/8/7. 6 | // Copyright © 2017年 benmu. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/js/css/core/ellipsis.scss: -------------------------------------------------------------------------------- 1 | /*公用文字截断*/ 2 | .limit-one{ 3 | lines: 1; 4 | text-overflow: ellipsis; 5 | flex: 1; 6 | } 7 | .limit-two{ 8 | lines: 2; 9 | text-overflow: ellipsis; 10 | } 11 | .limit-three{ 12 | lines: 3; 13 | text-overflow: ellipsis; 14 | } 15 | .limit-four { 16 | lines: 4; 17 | text-overflow: ellipsis; 18 | } 19 | .unlimit{ 20 | lines: 0; 21 | text-overflow: ellipsis; 22 | } 23 | -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/Scan/Scan_line.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Scan_line@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0001.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "loadding0001@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0002.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "loadding0002@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0003.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "loadding0003@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0004.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "loadding0004@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0005.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "loadding0005@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0006.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "loadding0006@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0007.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "loadding0007@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0008.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "loadding0008@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0009.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "loadding0009@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0010.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "loadding0010@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0011.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "loadding0011@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0012.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "loadding0012@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0013.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "loadding0013@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0014.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "loadding0014@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0015.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "loadding0015@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0016.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "loadding0016@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0017.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "loadding0017@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0018.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "loadding0018@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0019.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "loadding0019@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0020.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "loadding0020@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0021.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "loadding0021@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0022.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "loadding0022@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0023.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "loadding0023@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/pullLoadding/loadding0024.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "loadding0024@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx1536m 2 | android.enableAapt2=false 3 | APPLICATION_ID=com.benmu.wx 4 | GRADLE_TOOL_VERSION=3.0.0 5 | GRADLE_VERSION=https\://services.gradle.org/distributions/gradle-4.1-all.zip 6 | MIN_SDK_VERSION=14 7 | TARGET_SDK_VERSION=25 8 | COMPILE_SDK_VERSION=25 9 | BUILD_TOOLS_VERSION=26.0.2 10 | PROJECT_SUPPORTLIBVERSION=25.3.1 11 | 12 | 13 | 14 | 15 | 16 | 17 | #start 18 | GETUI_APPID= 19 | GETUI_APPKEY= 20 | GETTUI_APPSECRET= 21 | #end 22 | -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/app/src/test/java/com/benmu/wx/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.benmu.wx; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() throws Exception { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/Navbar/NavBar_BackIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "NavBar_BackIcon@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "NavBar_BackIcon@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/install.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | echo "开始更新依赖库" 3 | rm -r wxframework/ 4 | rm -r sdk/ 5 | rm -r nexus/ 6 | rm -r ErosPluginAmap/ 7 | 8 | git clone https://github.com/bmfe/WeexErosFramework.git "wxframework" --depth=1 9 | 10 | git clone https://github.com/bmfe/WeexSDK.git "sdk" --depth=1 11 | 12 | git clone https://github.com/bmfe/eros-nexus.git "nexus" --depth=1 13 | 14 | git clone https://github.com/bmfe/eros-plugin-android-amap.git "ErosPluginAmap" --depth=1 15 | 16 | cd ../ 17 | 18 | echo "依赖库更新完成" 19 | -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/Other/image_placeholder.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "image_placeholder@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "image_placeholder@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /src/js/widget/geo.js: -------------------------------------------------------------------------------- 1 | const geolocation = weex.requireModule('bmGeolocation') 2 | const Geolocation = Object.create(null) 3 | 4 | Geolocation.install = (Vue) => { 5 | Vue.prototype.$geo = { 6 | get () { 7 | return new Promise((resolve, reject) => { 8 | geolocation.getGeolocation(({ status, errorMsg, data }) => { 9 | status === 0 ? resolve(data) : reject({ status, errorMsg, data }) 10 | }) 11 | }) 12 | } 13 | } 14 | } 15 | 16 | Vue.use(Geolocation) 17 | -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/Navbar/NavBar_BackItemIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "NavBar_BackItemIcon@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "NavBar_BackItemIcon@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /platforms/ios/WeexEros/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | sudo rm -rf WeexiOSSDK/ 4 | sudo rm -rf Benmu-iOS-Library/ 5 | #sudo rm -rf Podfile.lock 6 | #sudo rm -rf Pods/ 7 | 8 | git clone https://github.com/bmfe/WeexiOSSDK.git 9 | #cd WeexiOSSDK 10 | #git checkout 0.18.0 11 | #cd ../ 12 | 13 | git clone https://github.com/bmfe/Benmu-iOS-Library.git 14 | cd Benmu-iOS-Library 15 | git checkout feature-components 16 | 17 | pod update 18 | 19 | echo ========================= 20 | echo 🍺 ios资源文件加载完成 21 | echo ========================= 22 | 23 | open WeexEros.xcworkspace 24 | -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/app/src/main/java/com/benmu/wx/App.java: -------------------------------------------------------------------------------- 1 | package com.benmu.wx; 2 | 3 | import android.app.Application; 4 | 5 | import com.benmu.framework.BMInitConfig; 6 | import com.benmu.framework.BMWXApplication; 7 | import com.benmu.framework.BMWXEngine; 8 | 9 | /** 10 | * Created by Carry on 2017/8/23. 11 | */ 12 | 13 | public class App extends BMWXApplication { 14 | public Application mInstance; 15 | 16 | @Override 17 | public void onCreate() { 18 | super.onCreate(); 19 | mInstance = this; 20 | 21 | 22 | 23 | 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /platforms/ios/WeexEros/Podfile: -------------------------------------------------------------------------------- 1 | source 'https://github.com/CocoaPods/Specs.git' 2 | platform :ios, '8.0' 3 | #忽略引入库的警告 4 | inhibit_all_warnings! 5 | 6 | def common 7 | #WeexSDK 8 | pod 'WeexSDK', :git => 'https://github.com/bmfe/WeexiOSSDK.git', :tag => '0.18' 9 | #Weex debugger 调试工具,只在开发模式集成 10 | pod 'WXDevtool', '0.15.3', :configurations => ['Debug'] 11 | #Eros iOS 基础库 12 | pod 'BMBaseLibrary', :git => 'https://github.com/bmfe/Benmu-iOS-Library.git', :tag => '1.2.1' 13 | 14 | #Other Plugins 15 | 16 | end 17 | 18 | target 'WeexEros' do 19 | common 20 | end 21 | -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/AppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.m 3 | // WeexEros 4 | // 5 | // Created by XHY on 2017/8/7. 6 | // Copyright © 2017年 benmu. All rights reserved. 7 | // 8 | 9 | #import "AppDelegate.h" 10 | 11 | @interface AppDelegate () 12 | 13 | @end 14 | 15 | @implementation AppDelegate 16 | 17 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 18 | { 19 | BOOL result = [super application:application didFinishLaunchingWithOptions:launchOptions]; 20 | 21 | //do something 22 | 23 | return result; 24 | } 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /src/js/widget/pay.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @Author: songqi 3 | * @Date: 2017-01-11 4 | * @Last modified by: songqi 5 | * @Last modified time: 2017-02-09 6 | */ 7 | 8 | const pay = weex.requireModule('bmPay') 9 | 10 | var Pay = Object.create(null) 11 | 12 | Pay.install = (Vue, options) => { 13 | Vue.prototype.$pay = { 14 | wechat (params) { 15 | return new Promise((resolve, reject) => { 16 | pay.payByWechat(params, ({ status, errorMsg, data }) => { 17 | status === 0 ? resolve(data) : reject({ status, errorMsg, data }) 18 | }) 19 | }) 20 | } 21 | } 22 | } 23 | 24 | Vue.use(Pay) 25 | -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/app/src/main/res/layout/activity_splash.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/js/widget/camera.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @Author: songqi 3 | * @Date: 2017-01-11e 4 | * @Last modified by: songqi 5 | * @Last modified time: 2017-03-08 6 | */ 7 | 8 | const camera = weex.requireModule('bmCamera') 9 | const Camera = Object.create(null) 10 | 11 | Camera.install = (Vue, options) => { 12 | Vue.prototype.$camera = { 13 | // 扫一扫 14 | scan () { 15 | return new Promise((resolve, reject) => { 16 | camera.scan(({ status, errorMsg, data }) => { 17 | status === 0 ? resolve(data) : reject({ status, errorMsg, data }) 18 | }) 19 | }) 20 | } 21 | } 22 | } 23 | 24 | Vue.use(Camera) 25 | -------------------------------------------------------------------------------- /src/js/widget/share.js: -------------------------------------------------------------------------------- 1 | const share = weex.requireModule('bmShare') 2 | 3 | const Share = Object.create(null) 4 | 5 | Share.install = (Vue, options) => { 6 | Vue.prototype.$share = (cfg) => { 7 | return new Promise((resolve, reject) => { 8 | share.share({ 9 | title: cfg.title, 10 | content: cfg.content || '', 11 | image: cfg.image || '', 12 | url: cfg.url || '', 13 | platforms: cfg.platforms || [] // 传空的话默认全部 14 | }, data => { 15 | resolve(data) 16 | }, err => { 17 | reject(err) 18 | }) 19 | }) 20 | } 21 | } 22 | 23 | Vue.use(Share) 24 | -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/app/src/main/java/com/benmu/wx/wxapi/AppRegister.java: -------------------------------------------------------------------------------- 1 | //package com.benmu.wx.wxapi; 2 | // 3 | //import android.content.BroadcastReceiver; 4 | //import android.content.Context; 5 | //import android.content.Intent; 6 | // 7 | //import com.benmu.framework.BMWXEnvironment; 8 | //import com.tencent.mm.opensdk.openapi.IWXAPI; 9 | // 10 | // 11 | //public class AppRegister extends BroadcastReceiver { 12 | // 13 | // @Override 14 | // public void onReceive(Context context, Intent intent) { 15 | // IWXAPI mWXApi = BMWXEnvironment.mWXApi; 16 | // if (mWXApi == null) return; 17 | // mWXApi.registerApp(BMWXEnvironment.mPlatformConfig.getWechat().getAppId()); 18 | // } 19 | //} 20 | -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Users/Carry/Documents/sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["env", { 4 | "targets": { 5 | "modules": false, 6 | "loose": true, 7 | "browsers": ["> 1%", "last 2 versions", "not ie <= 8"] 8 | } 9 | }], 10 | "stage-0" 11 | ], 12 | "plugins": [ 13 | ["import",[{ 14 | "libraryName": "weex-ui", 15 | "libraryDirectory": "packages", 16 | "style": false 17 | }, { 18 | "libraryName": "bui-weex", 19 | "libraryDirectory": "src/components", 20 | "style": false 21 | }]], 22 | ["transform-runtime", { 23 | "polyfill": false, 24 | "helpers": false 25 | }] 26 | ], 27 | "env": { 28 | "test": { 29 | "presets": ["env", "stage-0"], 30 | "plugins": ["istanbul"] 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/js/widget/index.js: -------------------------------------------------------------------------------- 1 | 2 | // 配置方法 3 | import './font.js' 4 | // 弹窗 5 | import './notice.js' 6 | // 获取地理位置 7 | import './geo.js' 8 | // 获取相机信息 9 | import './camera.js' 10 | // 图片操作相关 11 | import './image.js' 12 | // 设置导航 13 | import './nav.js' 14 | // 支付相关 15 | import './pay.js' 16 | // 存储相关 17 | import './storage.js' 18 | // 全局事件 19 | import './events.js' 20 | // 分享 21 | import './share.js' 22 | // 工具方法 23 | import './tools.js' 24 | 25 | import './coms.js' 26 | 27 | // 路由 28 | import Router from './router.js' 29 | // 发送请求 30 | import Axios from './axios.js' 31 | 32 | let instance = null 33 | export default class Widget { 34 | constructor ({ router, ajax }) { 35 | if (!instance) { 36 | Vue.use(new Axios(ajax)) 37 | Vue.use(new Router(router)) 38 | instance = this 39 | } 40 | return instance 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "eros-template-name", 3 | "version": "1.0.1-beta.2", 4 | "description": "a weex project", 5 | "main": "index.js", 6 | "keywords": [ 7 | "weex" 8 | ], 9 | "author": "Zero", 10 | "license": "MIT", 11 | "dependencies": { 12 | "eros-widget": "^1.0.1-beta.5", 13 | "weex-ui": "^0.6.0beta-2" 14 | }, 15 | "devDependencies": { 16 | "babel-core": "~6.25.0", 17 | "babel-eslint": "^8.2.2", 18 | "babel-plugin-import": "^1.6.7", 19 | "babel-plugin-transform-runtime": "~6.23.0", 20 | "babel-preset-env": "~1.5.2", 21 | "babel-preset-stage-0": "^6.24.1", 22 | "babel-register": "^6.22.0", 23 | "bindingx-parser": "0.0.x", 24 | "eslint": "^4.17.0", 25 | "eslint-plugin-html": "^4.0.2", 26 | "eslint-plugin-vue": "^4.3.0" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/app/src/main/java/com/benmu/wx/activity/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.benmu.wx.activity; 2 | 3 | import android.support.v7.app.AppCompatActivity; 4 | import android.os.Bundle; 5 | import android.util.Log; 6 | import android.view.View; 7 | import android.view.ViewGroup; 8 | 9 | import com.benmu.framework.activity.AbstractWeexActivity; 10 | import com.benmu.wx.R; 11 | 12 | public class MainActivity extends AbstractWeexActivity { 13 | 14 | @Override 15 | protected void onCreate(Bundle savedInstanceState) { 16 | super.onCreate(savedInstanceState); 17 | setContentView(R.layout.activity_main); 18 | initView(); 19 | renderPage(); 20 | } 21 | 22 | private void initView() { 23 | mContainer = (ViewGroup) findViewById(R.id.layout_container); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | jcenter() 6 | google() 7 | mavenCentral() 8 | } 9 | dependencies { 10 | classpath 'com.android.tools.build:gradle:3.0.0' 11 | // classpath 'com.benmu.eros:eros-raven:0.0.2' 12 | // NOTE: Do not place your application dependencies here; they belong 13 | // in the individual module build.gradle files 14 | classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5' 15 | } 16 | } 17 | 18 | allprojects { 19 | repositories { 20 | jcenter() 21 | google() 22 | mavenCentral() 23 | maven { url 'https://jitpack.io' } 24 | } 25 | } 26 | 27 | task clean(type: Delete) { 28 | delete rootProject.buildDir 29 | } 30 | 31 | -------------------------------------------------------------------------------- /src/js/pages/yanxuanDemo/class/header.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 搜索商品,共8888款好物 4 | 5 | 6 | 11 | -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/app/src/androidTest/java/com/benmu/wx/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package com.benmu.wx; 2 | 3 | import android.content.Context; 4 | import android.support.test.InstrumentationRegistry; 5 | import android.support.test.runner.AndroidJUnit4; 6 | 7 | import org.junit.Test; 8 | import org.junit.runner.RunWith; 9 | 10 | import static org.junit.Assert.*; 11 | 12 | /** 13 | * Instrumentation test, which will execute on an Android device. 14 | * 15 | * @see Testing documentation 16 | */ 17 | @RunWith(AndroidJUnit4.class) 18 | public class ExampleInstrumentedTest { 19 | @Test 20 | public void useAppContext() throws Exception { 21 | // Context of the app under test. 22 | Context appContext = InstrumentationRegistry.getTargetContext(); 23 | 24 | assertEquals("com.benmu.wxframework", appContext.getPackageName()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/js/widget/coms.js: -------------------------------------------------------------------------------- 1 | 2 | const _com = weex.requireModule('bmCommunication') 3 | const Coms = Object.create(null) 4 | 5 | Coms.install = (Vue, options) => { 6 | Vue.prototype.$coms = { 7 | call (to = +to, tip = true) { 8 | _com['call']({ to, tip }) 9 | }, 10 | sms (to, content) { 11 | return new Promise((resolve, reject) => { 12 | _com.sms(to, content, ({ status, errorMsg, data }) => { 13 | status === 0 ? resolve(data) : reject({ status, errorMsg, data }) 14 | }) 15 | }) 16 | }, 17 | contacts () { 18 | return new Promise((resolve, reject) => { 19 | _com.contacts(({ status, errorMsg, data }) => { 20 | status === 0 ? resolve(data) : reject({ status, errorMsg, data }) 21 | }) 22 | }) 23 | } 24 | } 25 | } 26 | 27 | Vue.use(Coms) 28 | -------------------------------------------------------------------------------- /src/js/css/module/common-order.scss: -------------------------------------------------------------------------------- 1 | // 标题分类 2 | .wrap-label { 3 | padding-left: 30; 4 | padding-right: 30; 5 | padding-top: 50; 6 | padding-bottom: 30; 7 | flex-direction: row; 8 | justify-content: space-between; 9 | } 10 | .label-tit { 11 | font-size: $font-32; 12 | color: $blue-ink; 13 | } 14 | .line { 15 | margin-right: 18; 16 | width: 10; 17 | height: 16; 18 | border-radius: 10; 19 | } 20 | .line-green { 21 | background-color: $base-green; 22 | } 23 | .line-orange { 24 | background-color: $base-orange; 25 | } 26 | .line-black { 27 | background-color: $blue-ink; 28 | } 29 | .line-red { 30 | background-color: $base-red; 31 | } 32 | // 标题分类 end 33 | 34 | .order-num { 35 | margin-left: 30; 36 | font-size: $font-24; 37 | color: $base-white; 38 | font-weight: bold; 39 | padding-top: 8; 40 | padding-right: 10; 41 | padding-bottom: 8; 42 | padding-left: 10; 43 | border-radius: 32; 44 | background-color: $base-red; 45 | } -------------------------------------------------------------------------------- /src/js/pages/yanxuanDemo/home/YXSlider.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 14 | -------------------------------------------------------------------------------- /src/js/pages/yanxuanDemo/config.js: -------------------------------------------------------------------------------- 1 | export const tabConfig = [{ 2 | icon: '', 3 | name: "首页", 4 | key: 'home', 5 | src: `${weex.config.eros.jsServer}/dist/js/pages/yanxuanDemo/home/index.js`, 6 | visibility: 'visible' 7 | }, { 8 | icon: '', 9 | name: "专题", 10 | key: 'topic', 11 | src: `${weex.config.eros.jsServer}/dist/js/pages/yanxuanDemo/topic/index.js`, 12 | visibility: 'hidden' 13 | }, { 14 | icon: '', 15 | name: "分类", 16 | key: 'class', 17 | src: `${weex.config.eros.jsServer}/dist/js/pages/yanxuanDemo/class/index.js`, 18 | visibility: 'hidden' 19 | }, { 20 | icon: '', 21 | name: "购物车", 22 | key: 'shop', 23 | src: `${weex.config.eros.jsServer}/dist/js/pages/yanxuanDemo/shop/index.js`, 24 | visibility: 'hidden' 25 | }, { 26 | icon: '', 27 | name: "个人", 28 | key: 'my', 29 | src: `${weex.config.eros.jsServer}/dist/js/pages/yanxuanDemo/my/index.js`, 30 | visibility: 'hidden' 31 | }] -------------------------------------------------------------------------------- /src/js/pages/yanxuanDemo/my/config.js: -------------------------------------------------------------------------------- 1 | export const SERVICES = [{ 2 | name: '拼团订单', 3 | icon: '', 4 | color: 'orange' 5 | }, { 6 | name: '邀请好友', 7 | icon: '', 8 | color: 'yellow' 9 | }, { 10 | name: '优惠券', 11 | icon: '', 12 | color: 'yellow' 13 | }, { 14 | name: '优先购', 15 | icon: '', 16 | color: 'orange' 17 | }, { 18 | name: '礼品卡', 19 | icon: '', 20 | color: 'orange' 21 | }, { 22 | name: '会员', 23 | icon: '', 24 | color: 'yellow' 25 | }, { 26 | name: '足迹', 27 | icon: '', 28 | color: 'orange' 29 | }, { 30 | name: '收藏', 31 | icon: '', 32 | color: 'yellow' 33 | }, { 34 | name: '地址', 35 | icon: '', 36 | color: 'blue' 37 | }, { 38 | name: '客服', 39 | icon: '', 40 | color: 'blue' 41 | }, { 42 | name: '帮助', 43 | icon: '', 44 | color: 'blue' 45 | }, { 46 | name: '设置', 47 | icon: '', 48 | color: 'blue' 49 | }] -------------------------------------------------------------------------------- /src/js/widget/nav.js: -------------------------------------------------------------------------------- 1 | import isFunction from 'lodash/isFunction' 2 | 3 | const navigator = weex.requireModule('bmNavigator') 4 | const Navigator = Object.create(null) 5 | 6 | Navigator.install = (Vue, options) => { 7 | Vue.prototype.$navigator = { 8 | setLeftItem (options, callback) { 9 | navigator.setLeftItem(options, () => { 10 | isFunction(callback) && callback() 11 | }) 12 | }, 13 | setRightItem (options, callback) { 14 | navigator.setRightItem(options, () => { 15 | isFunction(callback) && callback() 16 | }) 17 | }, 18 | setCenterItem (options, callback) { 19 | navigator.setCenterItem(options, () => { 20 | isFunction(callback) && callback() 21 | }) 22 | }, 23 | setNavigationInfo (options, callback) { 24 | navigator.setNavigationInfo(options, () => { 25 | isFunction(callback) && callback() 26 | }) 27 | } 28 | } 29 | } 30 | 31 | Vue.use(Navigator) 32 | -------------------------------------------------------------------------------- /src/js/pages/yanxuanDemo/shop/block.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 猜你喜欢 4 | 5 | 6 | 7 | 8 | 9 | {{i.info}} 10 | {{i.tlt}} 11 | ¥{{i.price}} 12 | 13 | 14 | 15 | 16 | 31 | 32 | -------------------------------------------------------------------------------- /src/js/widget/font.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @Author: songqi 3 | * @Date: 2017-01-11 4 | * @Last modified by: songqi 5 | * @Last modified time: 2017-05-08 6 | */ 7 | 8 | const bmFont = weex.requireModule('bmFont') 9 | const Font = Object.create(null) 10 | 11 | Font.install = (Vue, options) => { 12 | Vue.prototype.$font = { 13 | changeFontSize (options) { 14 | return new Promise((resolve, reject) => { 15 | bmFont.changeFontSize({ 16 | fontSize: options.fontSize || 'NORM' 17 | }, ({ status, errorMsg, data }) => { 18 | status === 0 ? resolve(data) : reject({ status, errorMsg, data }) 19 | }) 20 | }) 21 | }, 22 | 23 | getFontSize () { 24 | return new Promise((resolve, reject) => { 25 | bmFont.getFontSize(({ status, errorMsg, data }) => { 26 | status === 0 ? resolve(data) : reject({ status, errorMsg, data }) 27 | }) 28 | }) 29 | } 30 | } 31 | } 32 | 33 | Vue.use(Font) 34 | -------------------------------------------------------------------------------- /src/js/pages/yanxuanDemo/shop/index.scss: -------------------------------------------------------------------------------- 1 | .iconfont { 2 | font-family: iconfont; 3 | } 4 | 5 | .wrapper { 6 | background-color: #f4f4f4; 7 | } 8 | 9 | .main-list { 10 | // margin-top: 170px; 11 | margin-bottom: 90px; 12 | } 13 | 14 | .slogan { 15 | // position: absolute; 16 | // margin-top: 110px; 17 | width: 750px; 18 | display: flex; 19 | flex-direction: row; 20 | flex-wrap: nowrap; 21 | } 22 | 23 | .i-slg { 24 | height: 66px; 25 | font-size: 26px; 26 | padding-top: 16px; 27 | flex: 1; 28 | text-align: center; 29 | color: #b4282d; 30 | } 31 | 32 | .shop-cart {} 33 | 34 | .cart-empty { 35 | height: 350px; 36 | } 37 | 38 | .img-empty { 39 | position: absolute; 40 | width: 750px; 41 | height: 230px; 42 | top: 20px; 43 | left: 0; 44 | } 45 | 46 | .txt-empty { 47 | position: absolute; 48 | text-align: center; 49 | font-size: 30px; 50 | width: 750px; 51 | top: 250px; 52 | color: #999; 53 | } 54 | 55 | .status-bar { 56 | width: 750; 57 | height: 40; 58 | background-color:#fafafa; 59 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 本木医疗大前端 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/eros.native.json: -------------------------------------------------------------------------------- 1 | "EE9z0SxKB1s4Hc7w4zPFC8ahrdUey27zaRm+F1kAvXLBp6mo5weoXK76oaDadmTwb6oYvBicDDIPuvcRROgoLyeqn0+FRoX+Fo1B42ZhPgo+xhfWquo7R5UzHkSOTYO8+Vnd07HXBPW7toBCOpAaHA8usG4h/SS2Yx5wmKdMYiVbESixm9g2mtmn79/F4IFJSumImndzEPAcgN9oFxVTaEHmIiaBH2/m8gPsYni/5Yeh9KbbZKQDjc40ehi5V/LjipPVGAYU77v+HsFXYnZcmeXBY8Ugm7NJ1upXwUVYjV/Yab9ak7hKRJDr8vnMVfdL1eEhvs/GKjcCbig1qWojSRGq4Rx5lizczmy1HfhQ7yVnSm0sc0Upf8PHP2EvUNTmLiL6AHT4mWTCDPK0brt0tG7aQl7S3d0FYv5C9FDuZjY9XuFQ9TzEfMPmM7JYlHRxFspai/cdAdObeoRk1D7f/YKG+N+VZbauL2dcewb673KdLYedWW/sKG1ZTJfObIGtF2N/CodFC0NRQSeMXJFwDm9UMYBPXl0BdmC1xmo+FV0EgXkMory3T98eJ+OWZDSnBg3ELI5vqQwEkZsZq82Xs80flCrhjv3TH6Ze06gfz5km91qqN6JaDO8ZZPQ7DLSWMU1l/JqXwjYt2dSF05RunZsX+oco30vXybDlLvZ0gw7A/tVdNAFm2yIkbLw2jGF6MZqEhICwXMxA/YFuyyhkN0KgxT+VqqUfHdEA3CULje9AW7eTYIQ4gbFJ70vpAHAZX2RGvh4jgU53iDn45ANTTRnU9S1/csDBtMJQ1aOwLfLR/gSYdk+mdbe6eIXs77Y6S2CJZBDIJ9WmpcUH/5N1B1IUHnHutJy8Y6aUafT7jIrXTrVgG1GjkyA0uF3RUlf+q/9yOBa9S7yePKn6J6fYRtPDTwaeeScDhaxnK91zmjhMg6Kanv7Tgqj7fGvn+vPC5lEMuKkHF6J5EECvhWwyWv9rtSDQ7ulxPvsd0mn4Oej36s+6X4GA+A6vP+UH/FJR6OOQ28NGv442CRt0Lzyd80w4vvkTpQ53ed5IfXi6UIpmXR/8a7VhY/3lmPmKgDvnDmFRA5POKLsmWGdt6XC6RN1x3/87KUyQk0R5OsX5raksfAgGHZNLf2PQzUkKsp15" 2 | -------------------------------------------------------------------------------- /src/js/pages/yanxuanDemo/shop/header.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {{leftBtn.name}} 5 | 6 | {{title}} 7 | 8 | {{rightBtn.name}} 9 | 10 | 11 | 12 | 17 | -------------------------------------------------------------------------------- /src/js/pages/yanxuanDemo/topic/header.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {{leftBtn.name}} 5 | 6 | {{title}} 7 | 8 | {{rightBtn.name}} 9 | 10 | 11 | 12 | 17 | -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/app/src/main/assets/eros.native.json: -------------------------------------------------------------------------------- 1 | "EE9z0SxKB1s4Hc7w4zPFC8ahrdUey27zaRm+F1kAvXLBp6mo5weoXK76oaDadmTwb6oYvBicDDIPuvcRROgoLyeqn0+FRoX+Fo1B42ZhPgo+xhfWquo7R5UzHkSOTYO8+Vnd07HXBPW7toBCOpAaHA8usG4h/SS2Yx5wmKdMYiVbESixm9g2mtmn79/F4IFJSumImndzEPAcgN9oFxVTaEHmIiaBH2/m8gPsYni/5Yeh9KbbZKQDjc40ehi5V/LjipPVGAYU77v+HsFXYnZcmeXBY8Ugm7NJ1upXwUVYjV/Yab9ak7hKRJDr8vnMVfdL1eEhvs/GKjcCbig1qWojSRGq4Rx5lizczmy1HfhQ7yVnSm0sc0Upf8PHP2EvUNTmLiL6AHT4mWTCDPK0brt0tG7aQl7S3d0FYv5C9FDuZjY9XuFQ9TzEfMPmM7JYlHRxFspai/cdAdObeoRk1D7f/YKG+N+VZbauL2dcewb673KdLYedWW/sKG1ZTJfObIGtF2N/CodFC0NRQSeMXJFwDm9UMYBPXl0BdmC1xmo+FV0EgXkMory3T98eJ+OWZDSnBg3ELI5vqQwEkZsZq82Xs80flCrhjv3TH6Ze06gfz5km91qqN6JaDO8ZZPQ7DLSWMU1l/JqXwjYt2dSF05RunZsX+oco30vXybDlLvZ0gw7A/tVdNAFm2yIkbLw2jGF6MZqEhICwXMxA/YFuyyhkN0KgxT+VqqUfHdEA3CULje9AW7eTYIQ4gbFJ70vpAHAZX2RGvh4jgU53iDn45ANTTRnU9S1/csDBtMJQ1aOwLfLR/gSYdk+mdbe6eIXs77Y6S2CJZBDIJ9WmpcUH/5N1B1IUHnHutJy8Y6aUafT7jIrXTrVgG1GjkyA0uF3RUlf+q/9yOBa9S7yePKn6J6fYRtPDTwaeeScDhaxnK91zmjhMg6Kanv7Tgqj7fGvn+vPC5lEMuKkHF6J5EECvhWwyWv9rtSDQ7ulxPvsd0mn4Oej36s+6X4GA+A6vP+UH/FJR6OOQ28NGv442CRt0Lzyd80w4vvkTpQ53ed5IfXi6UIpmXR/8a7VhY/3lmPmKgDvnDmFRA5POKLsmWGdt6XC6RN1x3/87KUyQk0R5OsX5raksfAgGHZNLf2PQzUkKsp15" 2 | -------------------------------------------------------------------------------- /src/js/pages/yanxuanDemo/shop/a.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 1234567 4 | 5 | 6 | 51 | -------------------------------------------------------------------------------- /src/js/pages/yanxuanDemo/class/config.js: -------------------------------------------------------------------------------- 1 | export const CLASSES = ['推荐区', '个性专区', '冬季专区', '家装区', '居家', '餐厨', '配件', '服装', '电器', '洗护', '杂货', '饮食', '婴童', '志趣'] 2 | 3 | export const SUBCLASSES = [ 4 | { name: '中秋系列', img: 'http://yanxuan.nosdn.127.net/82ae05c313b93355239ca1795917a5ac.png?imageView&quality=85&thumbnail=144x144' }, 5 | { name: '超值套装', img: 'http://yanxuan.nosdn.127.net/bd6f7deba69c8af2f6bb80025d7b98de.png?imageView&quality=85&thumbnail=144x144' }, 6 | { name: '热卖爆品', img: 'http://yanxuan.nosdn.127.net/c3418cc60d3968263c5b2ac7fb153c34.png?imageView&quality=85&thumbnail=144x144' }, 7 | { name: '999+好评', img: 'http://yanxuan.nosdn.127.net/87d1cb1bc196c5775b17788aea1c2239.png?imageView&quality=85&thumbnail=144x144' }, 8 | { name: 'boss推荐', img: 'http://yanxuan.nosdn.127.net/fbee769af73c0f63f6120eb27ff3ce96.png?imageView&quality=85&thumbnail=144x144' }, 9 | { name: '明星推荐', img: 'http://yanxuan.nosdn.127.net/7dea8f7e0e706804c3307504e2e7c463.png?imageView&quality=85&thumbnail=144x144' }, 10 | { name: '黑凤梨系列', img: 'http://yanxuan.nosdn.127.net/a4a14669ce1fa497aece9a20c669196e.png?imageView&quality=85&thumbnail=144x144' }, 11 | { name: '趣味粉系列', img: 'http://yanxuan.nosdn.127.net/87fc01e5876482d521ecca13aea42653.png?imageView&quality=85&thumbnail=144x144' } 12 | ] -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Intro 2 |  3 | 4 | eros-yanxuan 是基于 [eros](https://bmfe.github.io/eros-docs/) 开发,从[网易严选 weex 版本改编](https://github.com/zwwill/yanxuan-weex-demo)迁移生成的项目。 5 | 6 | - [eros 文档](https://bmfe.github.io/eros-docs/#/) 7 | - [eros github](https://github.com/bmfe/eros-template) 8 | ## Run 9 | 确保你本地已经集成了 [eros 开发所需的环境](https://bmfe.github.io/eros-docs/#/zh-cn/base_env)。 10 | 11 | clone 项目到本地: 12 | ``` 13 | $ git clone https://github.com/bmfe/eros-yanxuan-demo-v2.git eros-yanxuan 14 | ``` 15 | 16 | 进入目录,下载前端依赖: 17 | ``` 18 | $ cd eros-yanxuan 19 | $ npm i 20 | ``` 21 | 22 | ### iOS SDK 23 | ``` 24 | $ cd platforms/ios/WeexEros 25 | $ pod update // 下载 iOS 依赖 26 | $ open WeexEros.xcworkspace // 自动打开项目 27 | ``` 28 | 选中模拟器,点击绿色箭头运行 app 即可。 29 | 30 | ### Android 31 | 32 | - Android 需要[自行导入项目](https://bmfe.github.io/eros-docs/#/zh-cn/base_init?id=android-%E5%AF%BC%E5%85%A5%E5%B7%A5%E7%A8%8B),便可运行起来。 33 | 34 | ## develop 35 | - 项目根目录下运行 `eros dev` 36 | - 关闭调试,拦截器,打开热更新 37 | - 重新 build app 38 | 39 | ## Question? 40 | 运行过程中出现问题在以下地址解决方法,如果没有找到,还请给我们提 issue。 41 | 42 | - [eros issue](https://github.com/bmfe/eros-template/issues) 43 | - [eros Q&A](https://bmfe.github.io/eros-docs/#/zh-cn/QA) 44 | 45 | 现在,尽情享受 eros 开发。 46 | -------------------------------------------------------------------------------- /src/js/components/tabs/item.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {{title}} 6 | 7 | 8 | 9 | 38 | 39 | -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/bundle.config: -------------------------------------------------------------------------------- 1 | {"filesMd5":[{"page":"/config/index.js","md5":"59fd5dab84146d726ba2fe2eacb9e0ed"},{"page":"/mediator/index.js","md5":"76efe3195c74a8c923efce0fb1e2fb5f"},{"page":"/pages/yanxuanDemo/class/index.js","md5":"605899fa44e46f16021cd2dcd2a46282"},{"page":"/pages/yanxuanDemo/home/index.js","md5":"24f55f9776dddf8b9a177fb02b0d4b85"},{"page":"/pages/yanxuanDemo/index.js","md5":"edcffe56cf17b1014f601e991fde8377"},{"page":"/pages/yanxuanDemo/my/index.js","md5":"f253ca68b6f0c1f428a94ce00ce25419"},{"page":"/pages/yanxuanDemo/shop/a.js","md5":"3999dd7a7294144f8a7c782cccc01be6"},{"page":"/pages/yanxuanDemo/shop/index.js","md5":"00dea478516cabd93d1aa549a67c4a26"},{"page":"/pages/yanxuanDemo/topic/index.js","md5":"06aadf000a6c5b464aad402811e0eeff"},{"page":"/iconfont/font_1469606063_76593.ttf","md5":"f6222bcfedff4a817bb50df7a049d1db"},{"page":"/iconfont/font_1469606522_9417143.woff","md5":"6cf5490fd14ff83350ff952bb5b8e484"},{"page":"/iconfont/font_zn5b3jswpofuhaor.ttf","md5":"c0356b22e8235d2b0be8880cc81894cc"},{"page":"/iconfont/iconfont.ttf","md5":"ec86bfe5bdb872bad2b2af4f11da14f4"},{"page":"/assets/test.jpeg","md5":"58c74e921886aa24f88f758d494ebc6a"}],"android":"1.0.0","iOS":"1.0.0","appName":"eros-yx-demo","jsVersion":"3a0dc0044d21a95ca7a24010bef22a8f","timestamp":1525845135001,"jsPath":"https://app.weex-eros.com/source"} 2 | -------------------------------------------------------------------------------- /src/js/pages/yanxuanDemo/topic/block1.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | {{i.name}} 7 | 8 | 9 | 10 | 11 | 16 | -------------------------------------------------------------------------------- /config/eros.dev.js: -------------------------------------------------------------------------------- 1 | // appBoard,mediator 不建议进行修改 如果修改了 也请对应修改 2 | module.exports = { 3 | 'exports': [ 4 | // appBoard 5 | "js/config/index.js", 6 | // mediator 7 | "js/mediator/index.vue", 8 | // home 9 | // "js/pages/news/index.vue", 10 | "js/pages/yanxuanDemo/index.vue", 11 | "js/pages/yanxuanDemo/home/index.vue", 12 | "js/pages/yanxuanDemo/topic/index.vue", 13 | "js/pages/yanxuanDemo/class/index.vue", 14 | "js/pages/yanxuanDemo/shop/index.vue", 15 | "js/pages/yanxuanDemo/my/index.vue", 16 | "js/pages/yanxuanDemo/shop/a.vue", 17 | ], 18 | 'alias': { 19 | 'Components': 'js/components', 20 | 'Common': 'js/common', 21 | 'Config': 'js/config', 22 | 'Widget': 'js/widget', 23 | 'Pages': 'js/pages', 24 | 'Utils': 'js/utils' 25 | }, 26 | 'eslint': false, 27 | 'diff': { 28 | 'pwd': '/Users/yangmingzhe/Work/opensource/eros-diff-folder', 29 | 'proxy': 'https://app.weex-eros.com/source' 30 | }, 31 | 'server': { 32 | 'path': './', 33 | 'port': 8889 34 | }, 35 | 'mockServer': { 36 | 'port': 52077, 37 | 'mockDir': './dist/mock' 38 | }, 39 | 'socketServer': { 40 | 'port': 8890, 41 | 'switch': true 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/js/mediator/index.vue: -------------------------------------------------------------------------------- 1 | /* 2 | * @Author: Zero 3 | * @Date: 2017-10-10 11:12:40 4 | * @Last Modified by: Zero 5 | * @Last Modified time: 2018-01-08 18:19:20 6 | */ 7 | // 这个vue的实例我们在app启动的时候就执行并常驻app内存,在app关闭时候销毁,所以data中的数据每次重启都会被初始化 8 | // 而我们在app运行期间都可以任意改变data中的数据,然后推送给订阅者 9 | 10 | // 如果想要持久化存储,可以配合storage来完成,每次启动app时候都从本地取数据,当data改变的时候异步的更新一下即可 11 | // 住: 不能再app退出的时候来持久化存储,退出时间很短,无法保证存储成功 12 | 13 | // 我们不建议在这里存储大量的数据 这里仅仅希望用作一个中介者 来提供给其他页面实例来通信 他无法替代storage 读取速度也远远慢与storage 14 | 15 | 16 | 17 | 18 | 19 | 48 | -------------------------------------------------------------------------------- /config/eros.native.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 'appName': 'eros-yx-demo', 3 | 'appBoard': '/config/index.js', 4 | // android 监听全局事件homeBack 如果为true 安卓端需要自行调用router.finish方法来关闭应用 5 | 'androidIsListenHomeBack': 'true', 6 | 'version': { 7 | 'android': '1.0.0', 8 | 'iOS': '1.0.0' 9 | }, 10 | 'page': { 11 | 'homePage': '/pages/yanxuanDemo/index.js', 12 | 'mediatorPage': '/mediator/index.js', 13 | 'navBarColor': '#ffffff', 14 | 'navItemColor': '#333' 15 | }, 16 | 'url': { 17 | 'image': 'https://lev-inf.benmu-health.com/test/xxx', 18 | 'bundleUpdate': 'http://localhosts:3001/app/check' 19 | }, 20 | 'zipFolder': { 21 | 'iOS': '/ios/WeexEros/WeexEros', 22 | 'android': '/android/WeexFrameworkWrapper/app/src/main/assets' 23 | }, 24 | 'getui': { 25 | 'enabled': 'false', 26 | 'appId': '', 27 | 'appKey': '', 28 | 'appSecret': '' 29 | }, 30 | 'umeng': { 31 | 'enabled': 'false', 32 | 'iOSAppKey': '', 33 | 'androidAppKey': '' 34 | }, 35 | 'wechat': { 36 | 'enabled': 'false', 37 | 'appId': '', 38 | 'appSecret': '' 39 | }, 40 | 'amap': { 41 | 'enabled': 'true', 42 | 'iOSAppKey': '623c0396a9b879461c971a14baa678fb', 43 | 'androidAppKey': '' 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/js/pages/yanxuanDemo/home/index.scss: -------------------------------------------------------------------------------- 1 | @import 'src/js/css/core/base.scss'; 2 | body { 3 | margin: 0; 4 | padding: 0; 5 | background-color: #f4f4f4; 6 | color: #333; 7 | } 8 | 9 | .mask { 10 | position: absolute; 11 | top: 0; 12 | left: 0; 13 | right: 0; 14 | bottom: 0; 15 | background-color: rgba(0, 0, 0, .4); 16 | } 17 | 18 | .app-wrapper { 19 | background-color: #f4f4f4; 20 | } 21 | 22 | .r-box { 23 | position: absolute; 24 | top: 0; 25 | left: 0; 26 | right: 0; 27 | bottom: 0; 28 | } 29 | 30 | .iconfont { 31 | font-family: iconfont; 32 | } 33 | 34 | .wrapper { 35 | position: fixed; 36 | top: 0; 37 | right: 0; 38 | bottom: 0; 39 | left: 0; 40 | } 41 | 42 | .main-list { 43 | margin-top: 54px; 44 | margin-bottom: 90px; 45 | 46 | } 47 | 48 | .cell-button { 49 | padding-bottom: 18px; 50 | } 51 | 52 | .slogan { 53 | display: flex; 54 | flex-direction: row; 55 | flex-wrap: nowrap; 56 | background-color: #fff; 57 | } 58 | 59 | .i-slg { 60 | height: 66px; 61 | font-size: 26px; 62 | padding-top: 16px; 63 | flex: 1; 64 | text-align: center; 65 | color: #b4282d; 66 | } 67 | 68 | .indicator { 69 | position: absolute; 70 | left: 310px; 71 | color: #888888; 72 | font-size: 30px; 73 | padding-top: 20px; 74 | padding-bottom: 20px; 75 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | Created by IDE 2 | .DS_Store 3 | .idea/ 4 | *.iml 5 | 6 | .* 7 | !.gitignore 8 | !.eslintrc 9 | !.babelrc 10 | 11 | docs 12 | 13 | # Node 14 | logs 15 | *.log 16 | npm-debug.log* 17 | .npm 18 | node_modules 19 | dist 20 | bower_components 21 | 22 | # Runtime data 23 | pids 24 | *.pid 25 | *.seed 26 | 27 | # Android 28 | # built application files 29 | *.apk 30 | *.ap_ 31 | wxframework 32 | sdk 33 | bmwidget 34 | # files for the dex VM 35 | *.dex 36 | 37 | # Java class files 38 | *.class 39 | 40 | # generated files 41 | bin/ 42 | gen/ 43 | 44 | # Local configuration file (sdk path, etc) 45 | local.properties 46 | sign.properties 47 | 48 | # Eclipse project files 49 | .classpath 50 | .project 51 | 52 | # Android Studio 53 | .idea/ 54 | .gradle 55 | /*/local.properties 56 | /*/outd 57 | build/ 58 | .idea/ 59 | .gradle/ 60 | android/playground/local.properties 61 | 62 | /*/*/production 63 | *.iml 64 | *.iws 65 | *.ipr 66 | *~ 67 | *.swp 68 | # END Android 69 | 70 | # IOS 71 | # Xcode 72 | */build/* 73 | *.pbxuser 74 | *.pbxprog 75 | !default.pbxuser 76 | *.mode1v3 77 | !default.mode1v3 78 | *.mode2v3 79 | !default.mode2v3 80 | *.perspectivev3 81 | !default.perspectivev3 82 | xcuserdata 83 | profile 84 | *.moved-aside 85 | DerivedData 86 | .idea/ 87 | *.hmap 88 | WeexiOSSDK 89 | Benmu-iOS-Library 90 | 91 | #CocoaPods 92 | Pods 93 | 94 | *.xccheckout 95 | *.xcworkspacedata 96 | *.xcworkspace 97 | Podfile.lock 98 | # END IOS 99 | -------------------------------------------------------------------------------- /src/js/widget/events.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @Author: songqi 3 | * @Date: 2017-02-27 4 | * @Last modified by: songqi 5 | * @Last modified time: 2017-04-10 6 | */ 7 | 8 | import _isArray from 'lodash/isArray' 9 | var event = weex.requireModule('bmEvents') 10 | var globalEvent = weex.requireModule('globalEvent') 11 | 12 | const GlobalEvent = Object.create(null) 13 | const GLOBALEVENT = Object.create(null) 14 | 15 | // app 被放到后台 appWillResignActive 16 | globalEvent.addEventListener('appDeactive', function (options) { 17 | _isArray(GLOBALEVENT['appDeactive']) && GLOBALEVENT['appDeactive'].map((item) => { 18 | item(options) 19 | }) 20 | }) 21 | 22 | // app 从后台唤起 appDidBecomeActive 23 | globalEvent.addEventListener('appActive', function (options) { 24 | _isArray(GLOBALEVENT['appActive']) && GLOBALEVENT['appActive'].map((item) => { 25 | item(options) 26 | }) 27 | }) 28 | 29 | GlobalEvent.install = (Vue, options) => { 30 | Vue.mixin({ 31 | beforeCreate () { 32 | if (this.$options.globalEvent) { 33 | var ev = this.$options.globalEvent 34 | for (var i in ev) { 35 | if (!GLOBALEVENT[i]) { 36 | GLOBALEVENT[i] = [] 37 | } 38 | GLOBALEVENT[i].push(ev[i].bind(this)) 39 | } 40 | } 41 | } 42 | }) 43 | Vue.prototype.$event = event 44 | } 45 | 46 | Vue.use(GlobalEvent) 47 | -------------------------------------------------------------------------------- /src/js/config/index.js: -------------------------------------------------------------------------------- 1 | import Widget from 'eros-widget' 2 | import apis from './apis' 3 | import routes from './routes' 4 | import './push' 5 | 6 | new Widget({ 7 | router: { 8 | /** 9 | * 路由配置表 10 | */ 11 | routes 12 | }, 13 | ajax: { 14 | baseUrl: 'http://app.weex-eros.com:52077', 15 | /** 16 | * 接口别名 17 | */ 18 | apis, 19 | // 接口超时时间 20 | timeout: 30000, 21 | 22 | /** 23 | * 请求发送统一拦截器 (可选) 24 | * options 你请求传入的所有参数和配置 25 | * next 26 | */ 27 | requestHandler (options, next) { 28 | console.log('request-opts', options) 29 | next() 30 | }, 31 | /** 32 | * 请求返回统一拦截器 (可选) 33 | * options 你请求传入的所有参数和配置 34 | * resData 服务器端返回的所有数据 35 | * resolve 请求成功请resolve你得结果,这样请求的.then中的成功回调就能拿到你resolve的数据 36 | * reject 请求成功请resolve你得结果,这样请求的.then中的失败回调就能拿到你reject的数据 37 | */ 38 | responseHandler (options, resData, resolve, reject) { 39 | const { status, errorMsg, data } = resData 40 | if (status !== 200) { 41 | console.log(`invoke error status: ${status}`) 42 | console.log(`invoke error message: ${errorMsg}`) 43 | reject(resData) 44 | } else { 45 | // 自定义请求逻辑 46 | resolve(data) 47 | } 48 | } 49 | } 50 | }) 51 | -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "extent" : "full-screen", 5 | "idiom" : "iphone", 6 | "subtype" : "2436h", 7 | "filename" : "1125-2436.png", 8 | "minimum-system-version" : "11.0", 9 | "orientation" : "portrait", 10 | "scale" : "3x" 11 | }, 12 | { 13 | "extent" : "full-screen", 14 | "idiom" : "iphone", 15 | "subtype" : "736h", 16 | "filename" : "1242-2208.png", 17 | "minimum-system-version" : "8.0", 18 | "orientation" : "portrait", 19 | "scale" : "3x" 20 | }, 21 | { 22 | "extent" : "full-screen", 23 | "idiom" : "iphone", 24 | "subtype" : "667h", 25 | "filename" : "750-1334.png", 26 | "minimum-system-version" : "8.0", 27 | "orientation" : "portrait", 28 | "scale" : "2x" 29 | }, 30 | { 31 | "orientation" : "portrait", 32 | "idiom" : "iphone", 33 | "filename" : "640-960.png", 34 | "extent" : "full-screen", 35 | "minimum-system-version" : "7.0", 36 | "scale" : "2x" 37 | }, 38 | { 39 | "extent" : "full-screen", 40 | "idiom" : "iphone", 41 | "subtype" : "retina4", 42 | "filename" : "640-1136.png", 43 | "minimum-system-version" : "7.0", 44 | "orientation" : "portrait", 45 | "scale" : "2x" 46 | } 47 | ], 48 | "info" : { 49 | "version" : 1, 50 | "author" : "xcode" 51 | } 52 | } -------------------------------------------------------------------------------- /scripts/update.ios.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | eros_prefix="[\033[34meros\033[0m]" 4 | 5 | function error_exit { 6 | echo "--------------------------------------------" 7 | echo -e "\033[31m Error code is $1 \033[0m" 1>&2 8 | echo "" 9 | echo " Code tips: " 10 | echo -e "\033[33m1 -> platforms/ios/WeexEros/ is not existed. \033[0m" 11 | echo -e "\033[33m2 -> cannot git pull platforms/ios/WeexEros/WeexiOSSDK, you can try a manual operation. \033[0m" 12 | echo -e "\033[33m3 -> cannot git pull platforms/ios/WeexEros/Benmu-iOS-Library, you can try a manual operation. \033[0m" 13 | echo -e "\033[33m4 -> pod update failed. \033[0m" 14 | echo -e "\033[33m5 -> run open xcode failed, make sure you had install xcode in appStore. \033[0m" 15 | exit 1 16 | } 17 | 18 | cd platforms/ios/WeexEros/ || \ 19 | error_exit 1 20 | echo -e "$eros_prefix \033[33m tips: make sure xcode had been closed.\033[0m" 21 | echo -e "$eros_prefix Enter ios project" 22 | 23 | if [ -e WeexiOSSDK/ ] && [ -e Benmu-iOS-Library/ ] 24 | then 25 | echo -e "$eros_prefix Start to updating." 26 | cd WeexiOSSDK/ && git pull || error_exit 2 27 | cd ../Benmu-iOS-Library/ && git pull || error_exit 3 28 | cd .. 29 | echo -e "$eros_prefix Run pod update and show some update detail:" 30 | pod update --no-ansi || error_exit 4 31 | echo -e "$eros_prefix \033[32miOS sdk has been updated, enjoy it! \033[0m" 32 | open WeexEros.xcworkspace || error_exit 5 33 | else 34 | echo -e "$eros_prefix No WeexiOSSDK or Benmu-iOS-Library file, make sure you had been run eros install." 35 | fi 36 | -------------------------------------------------------------------------------- /src/js/pages/yanxuanDemo/shop/block.scss: -------------------------------------------------------------------------------- 1 | .iconfont { 2 | font-family: iconfont; 3 | } 4 | 5 | .wrapper { 6 | background-color: #fff; 7 | padding-bottom: 10px; 8 | padding-top: 26px; 9 | width: 750px; 10 | } 11 | 12 | .tlt { 13 | text-align: center; 14 | color: #333; 15 | width: 750px; 16 | padding: 10px; 17 | font-size: 30px; 18 | } 19 | 20 | .gb-box { 21 | padding: 16px; 22 | display: flex; 23 | flex-direction: row; 24 | flex-wrap: wrap; 25 | justify-content: space-between; 26 | } 27 | 28 | .i-gd { 29 | width: 350px; 30 | height: 510px; 31 | margin-bottom: 20px; 32 | } 33 | 34 | .gd-bg { 35 | background-color: #f4f4f4; 36 | } 37 | 38 | .gd-img { 39 | width: 350px; 40 | height: 350px; 41 | } 42 | 43 | .gd-tlt { 44 | font-size: 28px; 45 | color: #333; 46 | width: 350px; 47 | margin-top: 15px; 48 | overflow: hidden; 49 | lines: 1; 50 | white-space: nowrap; 51 | text-overflow: ellipsis; 52 | } 53 | 54 | .gd-info { 55 | display: block; 56 | font-size: 28px; 57 | width: 350px; 58 | height: 65px; 59 | padding-left: 10px; 60 | padding-right: 10px; 61 | padding-top: 15px; 62 | padding-bottom: 15px; 63 | color: #9F8A60; 64 | background-color: #F1ECE2; 65 | overflow: hidden; 66 | lines: 1; 67 | white-space: nowrap; 68 | text-overflow: ellipsis; 69 | } 70 | 71 | .gd-price { 72 | font-size: 28px; 73 | width: 350px; 74 | margin-top: 10px; 75 | color: #b4282d; 76 | overflow: hidden; 77 | lines: 1; 78 | white-space: nowrap; 79 | text-overflow: ellipsis; 80 | } -------------------------------------------------------------------------------- /scripts/update.android.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | eros_prefix="[\033[34meros\033[0m]" 4 | 5 | function error_exit { 6 | echo "--------------------------------------------" 7 | echo -e "\033[31m Error code is $1 \033[0m" 1>&2 8 | echo "" 9 | echo " Code tips: " 10 | echo -e "\033[33m1 -> platforms/android/WeexFrameworkWrapper/ is not existed. \033[0m" 11 | echo -e "\033[33m2 -> cannot cannot git pull platforms/android/WeexFrameworkWrapper/wxframework, you can try a manual operation. \033[0m" 12 | echo -e "\033[33m3 -> cannot cannot git pull platforms/android/WeexFrameworkWrapper/sdk, you can try a manual operation. \033[0m" 13 | echo -e "\033[33m4 -> cannot cannot git pull platforms/android/WeexFrameworkWrapper/nexus, you can try a manual operation. \033[0m" 14 | echo -e "\033[33m5 -> cannot cannot git pull platforms/android/WeexFrameworkWrapper/ErosPluginAmap, you can try a manual operation. \033[0m" 15 | exit 1 16 | } 17 | 18 | cd platforms/android/WeexFrameworkWrapper/ || \ 19 | error_exit 1 20 | echo -e "$eros_prefix Enter android project" 21 | if [ -e wxframework/ ] || [ -e sdk/ ] || [ -e nexus/ ] || [ -e ErosPluginAmap/ ] 22 | then 23 | echo -e "$eros_prefix Start to updating." 24 | cd wxframework/ && git pull || error_exit 2 25 | cd ../sdk/ && git pull || error_exit 3 26 | cd ../nexus/ && git pull || error_exit 4 27 | cd ../ErosPluginAmap/ && git pull || error_exit 5 28 | cd .. 29 | echo -e "$eros_prefix \033[32mAndroid sdk has been updated, enjoy it! \033[0m" 30 | else 31 | echo -e "$eros_prefix No wxframework, sdk or bmwidget file, make sure you had been run eros install." 32 | fi 33 | -------------------------------------------------------------------------------- /src/js/pages/yanxuanDemo/home/header.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 扫一扫 6 | 7 | 搜索商品,共8888款好物 8 | 9 | 10 | 消息 11 | 12 | 13 | 14 | 28 | -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "size" : "20x20", 5 | "idiom" : "iphone", 6 | "filename" : "1024-1024iPhoneNotification_20pt@2x.png", 7 | "scale" : "2x" 8 | }, 9 | { 10 | "size" : "20x20", 11 | "idiom" : "iphone", 12 | "filename" : "1024-1024iPhoneNotification_20pt@3x.png", 13 | "scale" : "3x" 14 | }, 15 | { 16 | "size" : "29x29", 17 | "idiom" : "iphone", 18 | "filename" : "1024-1024iPhoneSpootlight5_29pt@2x.png", 19 | "scale" : "2x" 20 | }, 21 | { 22 | "size" : "29x29", 23 | "idiom" : "iphone", 24 | "filename" : "1024-1024iPhoneSpootlight5_29pt@3x.png", 25 | "scale" : "3x" 26 | }, 27 | { 28 | "size" : "40x40", 29 | "idiom" : "iphone", 30 | "filename" : "1024-1024iPhoneSpootlight7_40pt@2x.png", 31 | "scale" : "2x" 32 | }, 33 | { 34 | "size" : "40x40", 35 | "idiom" : "iphone", 36 | "filename" : "1024-1024iPhoneSpootlight7_40pt@3x.png", 37 | "scale" : "3x" 38 | }, 39 | { 40 | "size" : "60x60", 41 | "idiom" : "iphone", 42 | "filename" : "1024-1024iPhoneApp_60pt@2x.png", 43 | "scale" : "2x" 44 | }, 45 | { 46 | "size" : "60x60", 47 | "idiom" : "iphone", 48 | "filename" : "1024-1024iPhoneApp_60pt@3x.png", 49 | "scale" : "3x" 50 | }, 51 | { 52 | "size" : "1024x1024", 53 | "idiom" : "ios-marketing", 54 | "filename" : "1024-1024store_1024pt.png", 55 | "scale" : "1x" 56 | } 57 | ], 58 | "info" : { 59 | "version" : 1, 60 | "author" : "xcode" 61 | } 62 | } -------------------------------------------------------------------------------- /src/js/pages/yanxuanDemo/topic/config.js: -------------------------------------------------------------------------------- 1 | export const TOPICS = [ 2 | { name: '严选look', img: 'https://yanxuan.nosdn.127.net/15030393722652401.jpg' }, 3 | { name: '严选推荐', img: 'https://yanxuan.nosdn.127.net/d943675462a06f817d33062d4eb059f5.jpg' }, 4 | { name: '挑款师推荐', img: 'http://yanxuan.nosdn.127.net/437cc656ff529f8f84db6efc48df9bf4.png' }, 5 | { name: '丁磊私物推荐', img: 'https://yanxuan.nosdn.127.net/1de4da49367dd7c01af1f7a2b23b0237.jpg' }, 6 | ] 7 | 8 | export const ARTICLES = [ 9 | { auther: '严选推荐', autherImg: 'http://yanxuan.nosdn.127.net/3d860cbf663253590da6a64ff07f9919.png?imageView&thumbnail=64y64', tlt: '年中扫一扫,下半年运势好', info: '6个家庭清洁小技巧', price: '6.9', img: 'http://yanxuan.nosdn.127.net/5a1df92d48fa3214bec9bb40ab067683.jpg' }, 10 | { auther: '服装组:小服', autherImg: 'https://yanxuan.nosdn.127.net/15041772608140418.png?imageView&thumbnail=64y64', tlt: '小姐姐们的运动衣提前上架啦', info: '前两天推男式运动T恤时,就有小伙伴在专题评论里,问小姐姐们的运动衣在哪儿。大家的...', price: '', img: ['https://yanxuan.nosdn.127.net/15041772896010423.jpg', 'https://yanxuan.nosdn.127.net/15041772789070419.jpg', 'https://yanxuan.nosdn.127.net/15041772808640420.jpg'] }, 11 | { auther: '居家组:朵朵', autherImg: 'https://yanxuan.nosdn.127.net/15040896357740404.png?imageView&thumbnail=64y64', tlt: '初秋,最想用它来裸睡', info: '连续下了几场雨,杭州的早晚,已透出几丝凉意。再睡席子便有点凉了,于是周末从柜子翻...', price: '', img: ['https://yanxuan.nosdn.127.net/15040927525260414.jpg', 'https://yanxuan.nosdn.127.net/15040927586650416.jpg', 'https://yanxuan.nosdn.127.net/15040927556820415.jpg'] }, 12 | { auther: '严选推荐', autherImg: 'http://yanxuan.nosdn.127.net/3d860cbf663253590da6a64ff07f9919.png?imageView&thumbnail=64y64', tlt: '不为繁华易匠心', info: '那些值得珍藏的严选手作好物', price: '29', img: 'http://yanxuan.nosdn.127.net/4d72145e48e65ee3deaf2e1403e6ec73.jpg' }, 13 | ] -------------------------------------------------------------------------------- /src/js/pages/yanxuanDemo/class/index.scss: -------------------------------------------------------------------------------- 1 | .iconfont { 2 | font-family: iconfont; 3 | } 4 | 5 | .class-list { 6 | width: 162px; 7 | margin-bottom: 90px; 8 | // padding-top: 30px; 9 | border-right-width: 1px; 10 | border-right-color: #d9d9d9; 11 | background-color: #fff; 12 | } 13 | 14 | .class-txt { 15 | font-size: 28px; 16 | height: 92px; 17 | padding-top: 42px; 18 | padding-bottom: 22px; 19 | // margin-top: 40px; 20 | // margin-bottom: 20px; 21 | margin-left: 10px; 22 | margin-right: 10px; 23 | text-align: center; 24 | color: #333; 25 | } 26 | 27 | .main-list { 28 | flex: 1; 29 | display: flex; 30 | flex-direction: column; 31 | flex-wrap: nowrap; 32 | margin-bottom: 90px; 33 | background-color: #fff; 34 | } 35 | 36 | .ad-img { 37 | width: 532px; 38 | height: 194px; 39 | border-radius: 6px; 40 | margin: 28px; 41 | } 42 | 43 | .sub-tlt { 44 | text-align: center; 45 | font-size: 24px; 46 | color: #333; 47 | margin-top: 10px; 48 | margin-bottom: 30px; 49 | } 50 | 51 | .sub-box { 52 | padding-left: 26px; 53 | display: flex; 54 | flex-direction: row; 55 | flex-wrap: wrap; 56 | } 57 | 58 | .sub-i { 59 | width: 178px; 60 | height: 200px; 61 | } 62 | 63 | .i-img { 64 | width: 150px; 65 | margin-left: 14px; 66 | margin-right: 14px; 67 | height: 150px; 68 | } 69 | 70 | .i-name { 71 | font-size: 22px; 72 | text-align: center; 73 | } 74 | 75 | .j-uline { 76 | position: absolute; 77 | top: 39px; 78 | left: 1px; 79 | width: 5px; 80 | height: 36px; 81 | background-color: #b4282d; 82 | } 83 | 84 | .c-act { 85 | color: #b4282d; 86 | } 87 | 88 | .status-bar { 89 | width: 750; 90 | height: 40; 91 | background-color:#fafafa; 92 | } -------------------------------------------------------------------------------- /src/js/widget/tools.js: -------------------------------------------------------------------------------- 1 | 2 | const tools = weex.requireModule('bmTool') 3 | const Tools = Object.create(null) 4 | 5 | Tools.install = (Vue, options) => { 6 | Vue.prototype.$tools = { 7 | resignKeyboard () { 8 | return new Promise((resolve, reject) => { 9 | tools.resignKeyboard(({ status, errorMsg, data }) => { 10 | status === 0 ? resolve(data) : reject({ status, errorMsg, data }) 11 | }) 12 | }) 13 | }, 14 | 15 | // 是否安装微信 16 | isInstallWXApp () { 17 | return new Promise((resolve, reject) => { 18 | tools.isInstallWXApp(({ status, errorMsg, data }) => { 19 | status === 0 ? resolve(data) : reject({ status, errorMsg, data }) 20 | }) 21 | }) 22 | }, 23 | 24 | // 获取 cid 25 | getCid () { 26 | return new Promise((resolve, reject) => { 27 | tools.getCid(({ status, errorMsg, data }) => { 28 | status === 0 ? resolve(data) : reject({ status, errorMsg, data }) 29 | }) 30 | }) 31 | }, 32 | 33 | // 复制内容到剪切板 34 | copyString (string) { 35 | return new Promise((resolve, reject) => { 36 | tools.copyString(string, ({ status, errorMsg, data }) => { 37 | status === 0 ? resolve(data) : reject({ status, errorMsg, data }) 38 | }) 39 | }) 40 | }, 41 | 42 | scan () { 43 | return new Promise((resolve, reject) => { 44 | tools.scan(({ status, errorMsg, data }) => { 45 | status === 0 ? resolve(data) : reject({ status, errorMsg, data }) 46 | }) 47 | }) 48 | } 49 | } 50 | } 51 | 52 | Vue.use(Tools) 53 | -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/app/src/main/java/com/benmu/wx/wxapi/WXEntryActivity.java: -------------------------------------------------------------------------------- 1 | package com.benmu.wx.wxapi; 2 | 3 | import android.app.Activity; 4 | import android.os.Bundle; 5 | 6 | import com.benmu.erospluginwxpay.WXApiModule; 7 | import com.benmu.framework.BMWXEnvironment; 8 | import com.benmu.framework.manager.ManagerFactory; 9 | import com.benmu.framework.manager.impl.dispatcher.DispatchEventManager; 10 | import com.tencent.mm.opensdk.modelbase.BaseReq; 11 | import com.tencent.mm.opensdk.modelbase.BaseResp; 12 | import com.tencent.mm.opensdk.modelmsg.SendAuth; 13 | import com.tencent.mm.opensdk.openapi.IWXAPI; 14 | import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler; 15 | import com.tencent.mm.opensdk.openapi.WXAPIFactory; 16 | import com.umeng.weixin.callback.WXCallbackActivity; 17 | 18 | /** 19 | * Created by Dong Fuhai on 2014-07-22 16:42. 20 | * 21 | * @modify: 22 | */ 23 | public class WXEntryActivity extends WXCallbackActivity implements IWXAPIEventHandler { 24 | 25 | 26 | public static WXEntryActivity activity; 27 | 28 | IWXAPI api; 29 | 30 | @Override 31 | public void onCreate(Bundle savedInstanceState) { 32 | super.onCreate(savedInstanceState); 33 | activity = this; 34 | //注册API 35 | IWXAPI mWXApi = WXApiModule.getInstans().getWXApi(); 36 | if (mWXApi == null) return; 37 | mWXApi.handleIntent(getIntent(), this); 38 | } 39 | 40 | 41 | @Override 42 | public void onReq(BaseReq baseReq) { 43 | 44 | } 45 | 46 | @Override 47 | public void onResp(BaseResp baseResp) { 48 | if (baseResp instanceof SendAuth.Resp) { 49 | SendAuth.Resp newResp = (SendAuth.Resp) baseResp; 50 | ManagerFactory.getManagerService(DispatchEventManager.class).getBus().post(newResp); 51 | } 52 | this.finish(); 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /src/js/components/bmContainer/index.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 50 | -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleURLTypes 20 | 21 | 22 | CFBundleTypeRole 23 | Editor 24 | CFBundleURLName 25 | com.benmu.WeexEros 26 | CFBundleURLSchemes 27 | 28 | weexeros 29 | 30 | 31 | 32 | CFBundleVersion 33 | 1 34 | LSRequiresIPhoneOS 35 | 36 | NSAppTransportSecurity 37 | 38 | NSAllowsArbitraryLoads 39 | 40 | 41 | NSCameraUsageDescription 42 | 需要访问您的相机 43 | NSContactsUsageDescription 44 | 需要访问您的通讯录 45 | NSLocationWhenInUseUsageDescription 46 | 需要访问您的位置信息 47 | NSPhotoLibraryUsageDescription 48 | 需要访问您的相册 49 | UIRequiredDeviceCapabilities 50 | 51 | armv7 52 | 53 | UIStatusBarHidden 54 | 55 | UISupportedInterfaceOrientations 56 | 57 | UIInterfaceOrientationPortrait 58 | 59 | UIViewControllerBasedStatusBarAppearance 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /src/js/pages/yanxuanDemo/home/topChannel.scss: -------------------------------------------------------------------------------- 1 | .iconfont { 2 | font-family: iconfont; 3 | } 4 | 5 | .wrapper { 6 | position: absolute; 7 | width: 750; 8 | height: 54px; 9 | background-color: #fafafa; 10 | border-bottom-width: 1px; 11 | border-bottom-color: #d9d9d9; 12 | } 13 | 14 | .scroller { 15 | width: 660px; 16 | height: 54px; 17 | } 18 | 19 | .i-c { 20 | padding-top: 10px; 21 | padding-left: 45px; 22 | padding-right: 45px; 23 | padding-bottom: 6px; 24 | font-size: 26px; 25 | color: #333; 26 | } 27 | 28 | .c-act { 29 | color: #b4282d; 30 | } 31 | 32 | .j-uline { 33 | position: absolute; 34 | left: 30px; 35 | bottom: 0; 36 | width: 82px; 37 | height: 4px; 38 | background-color: #b4282d; 39 | } 40 | 41 | .more { 42 | position: absolute; 43 | top: 0; 44 | right: 0; 45 | height: 52px; 46 | width: 100px; 47 | background-color: #fafafa; 48 | padding-top: 10px; 49 | opacity: 0.96; 50 | box-shadow: -6px -4px 4px #fafafa; 51 | } 52 | 53 | .moreicon { 54 | width: 32px; 55 | margin-left: 34px; 56 | } 57 | 58 | .panel { 59 | height: 0px; 60 | width: 750px; 61 | position: absolute; 62 | top: 0; 63 | left: 0; 64 | background-color: #fafafa; 65 | } 66 | 67 | .allChannel { 68 | color: #666; 69 | font-size: 27px; 70 | font-weight: 300; 71 | padding-left: 30px; 72 | padding-top: 10px; 73 | } 74 | 75 | .box-line { 76 | padding-top: 30px; 77 | display: flex; 78 | flex-wrap: nowrap; 79 | flex-direction: row; 80 | } 81 | 82 | .box { 83 | width: 150px; 84 | height: 56px; 85 | border-color: #bbb; 86 | border-width: 2; 87 | border-radius: 6; 88 | margin-left: 30px; 89 | } 90 | 91 | .box-act { 92 | border-color: #b4282d; 93 | } 94 | 95 | .box-text { 96 | padding-top: 13px; 97 | text-align: center; 98 | font-weight: 300; 99 | font-size: 27px; 100 | } -------------------------------------------------------------------------------- /src/js/css/module/tab-switch.scss: -------------------------------------------------------------------------------- 1 | 2 | @import "src/js/css/core/base"; 3 | .tabs { 4 | flex-direction: row; 5 | padding-left: 118; 6 | padding-right: 117; 7 | padding-top: 10; 8 | padding-bottom: 20; 9 | background-color: $base-green; 10 | } 11 | .wrap-tab { 12 | flex: 1; 13 | height: 80; 14 | flex-direction: row; 15 | border-radius: 10; 16 | overflow: hidden; 17 | background-color: $base-white; 18 | } 19 | .tab-box { 20 | flex: 1; 21 | @extend .flex-align; 22 | background-color: $base-white; 23 | color: $base-green; 24 | height: 80; 25 | @include border-all ($border-color:$base-white,$solid: solid,$width-value: 2) 26 | } 27 | 28 | .tab-txt { 29 | font-size: $font-32; 30 | font-weight: bold; 31 | color: $base-green; 32 | } 33 | .item-on { 34 | background-color: $base-green; 35 | color: $base-white; 36 | } 37 | .items-on { 38 | color: $base-green; 39 | } 40 | .left-tab { 41 | border-top-left-radius: 10; 42 | border-bottom-left-radius: 10; 43 | } 44 | .right-tab { 45 | border-top-right-radius: 10; 46 | border-bottom-right-radius: 10; 47 | } 48 | 49 | /*tab 滚动*/ 50 | .tabs-scroll{ 51 | position: relative; 52 | width: 750; 53 | height: 130; 54 | margin-top: 0; 55 | flex-direction: row; 56 | flex-wrap: nowrap; 57 | overflow: scroll; 58 | background-color: #fff; 59 | box-shadow: 3px 0 5px #ebf0f5; 60 | } 61 | .tab-box-scroll { 62 | width: 187; 63 | height: 130; 64 | flex-direction: row; 65 | align-items: center; 66 | } 67 | .tab-items { 68 | font-size: $font-32; 69 | font-weight: bold; 70 | color: $blue-ink; 71 | } 72 | .tabs-num { 73 | margin-top: 14; 74 | font-size: $font-28; 75 | color: $blue-ink; 76 | } 77 | .flex-column-center { 78 | flex-direction: column; 79 | justify-content: center; 80 | } 81 | .scroll-arrow { 82 | width: 130; 83 | height: 130; 84 | position: absolute; 85 | right: 0; 86 | } 87 | .tabs-on { 88 | @include border(bottom,$border-color:$base-green,$width-value: 4); 89 | } 90 | .tabs-default { 91 | @include border(bottom,$border-color:$base-white,$width-value: 4); 92 | } 93 | -------------------------------------------------------------------------------- /src/js/components/tabs/bar.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 39 | 40 | -------------------------------------------------------------------------------- /src/js/pages/yanxuanDemo/common/tabBar.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {{i.icon | myFilter}} 5 | {{i.name}} 6 | 7 | 8 | 9 | 10 | 48 | 49 | -------------------------------------------------------------------------------- /scripts/install.ios.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | eros_prefix="[\033[34meros\033[0m]" 4 | 5 | function error_exit { 6 | echo "--------------------------------------------" 7 | echo -e "\033[31m Error code is $1 \033[0m" 1>&2 8 | echo "" 9 | echo " Code tips: " 10 | echo -e "\033[33m1 -> platforms/ios/WeexEros/ is not existed. \033[0m" 11 | echo -e "\033[33m2 -> cannot remove platforms/ios/WeexEros/WeexiOSSDK, please check file permissions. \033[0m" 12 | echo -e "\033[33m3 -> cannot remove platforms/ios/WeexEros/Benmu-iOS-Library, please check file permissions. \033[0m" 13 | echo -e "\033[33m4 -> failed run: git clone https://github.com/bmfe/WeexiOSSDK.git. \033[0m" 14 | echo -e "\033[33m5 -> failed run: git clone https://github.com/bmfe/Benmu-iOS-Library.git. \033[0m" 15 | echo -e "\033[33m6 -> pod update failed. \033[0m" 16 | echo -e "\033[33m7 -> run open xcode failed, make sure you had install xcode in appStore. \033[0m" 17 | exit 1 18 | } 19 | 20 | cd platforms/ios/WeexEros/ || \ 21 | error_exit 1 22 | echo -e "$eros_prefix \033[33mtips: make sure xcode had been closed.\033[0m" 23 | echo -e "$eros_prefix Enter ios project" 24 | 25 | if [ -e WeexiOSSDK/ ] || [ -e Benmu-iOS-Library/ ] 26 | then 27 | echo -e "$eros_prefix WeexiOSSDK and Benmu-iOS-Library is existed, remove old sdk." 28 | rm -rf WeexiOSSDK/ || error_exit 2 29 | rm -rf Benmu-iOS-Library/ || error_exit 3 30 | else 31 | echo -e "$eros_prefix No WeexiOSSDK and Benmu-iOS-Library, we will start to clone new sdk..." 32 | fi 33 | echo -e "$eros_prefix \033[36mMay spend a lot of time, please wait patiently. \033[0m" 34 | git clone https://github.com/bmfe/WeexiOSSDK.git -q --depth=1 || \ 35 | error_exit 4 36 | echo -e "$eros_prefix Weex sdk clone done." 37 | git clone https://github.com/bmfe/Benmu-iOS-Library.git -q --depth=1 || \ 38 | error_exit 5 39 | echo -e "$eros_prefix Eros sdk clone done." 40 | echo -e "$eros_prefix Run pod update and show some update detail:" 41 | pod update --no-ansi || error_exit 6 42 | echo "" 43 | echo -e "$eros_prefix \033[32miOS sdk has been installed, enjoy it! \033[0m" 44 | open WeexEros.xcworkspace || error_exit 7 45 | -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/app/src/main/java/com/benmu/wx/wxapi/WXPayEntryActivity.java: -------------------------------------------------------------------------------- 1 | package com.benmu.wx.wxapi; 2 | 3 | 4 | import android.app.Activity; 5 | import android.content.Intent; 6 | import android.os.Bundle; 7 | 8 | import com.benmu.erospluginwxpay.WXApiModule; 9 | import com.benmu.erospluginwxpay.model.WeChatPayResultModel; 10 | import com.benmu.framework.BMWXEnvironment; 11 | import com.benmu.framework.manager.ManagerFactory; 12 | import com.benmu.framework.manager.impl.dispatcher.DispatchEventManager; 13 | import com.tencent.mm.opensdk.constants.ConstantsAPI; 14 | import com.tencent.mm.opensdk.modelbase.BaseReq; 15 | import com.tencent.mm.opensdk.modelbase.BaseResp; 16 | import com.tencent.mm.opensdk.openapi.IWXAPI; 17 | import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler; 18 | 19 | public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler { 20 | 21 | private static final String TAG = "MicroMsg.SDKSample.WXPayEntryActivity"; 22 | 23 | private IWXAPI api; 24 | 25 | @Override 26 | public void onCreate(Bundle savedInstanceState) { 27 | super.onCreate(savedInstanceState); 28 | api = WXApiModule.getInstans().getWXApi(); 29 | if (api != null) { 30 | api.registerApp(BMWXEnvironment.mPlatformConfig.getWechat().getAppId()); 31 | api.handleIntent(getIntent(), this); 32 | } 33 | } 34 | 35 | @Override 36 | protected void onNewIntent(Intent intent) { 37 | super.onNewIntent(intent); 38 | setIntent(intent); 39 | if (api != null) { 40 | api.handleIntent(intent, this); 41 | } 42 | } 43 | 44 | @Override 45 | public void onReq(BaseReq req) { 46 | 47 | } 48 | 49 | /** 50 | * int ERR_OK = 0; int ERR_COMM = -1; int ERR_USER_CANCEL = -2; int ERR_SENT_FAILED = -3; int 51 | * ERR_AUTH_DENIED = -4; int ERR_UNSUPPORT = -5; 52 | */ 53 | @Override 54 | public void onResp(BaseResp resp) { 55 | if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) { 56 | WeChatPayResultModel bean = new WeChatPayResultModel(); 57 | bean.msg = resp.errStr; 58 | bean.resCode = resp.errCode; 59 | bean.status = resp.errCode; 60 | ManagerFactory.getManagerService(DispatchEventManager.class).getBus().post(bean); 61 | finish(); 62 | } 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/app/src/main/assets/bundle.config: -------------------------------------------------------------------------------- 1 | {"filesMd5":[{"page":"/config/index.js","md5":"64f2acdbb9cc3acc3582d8f37332eee3"},{"page":"/mediator/index.js","md5":"e23855ca4dc5e9e85ef5d0863b21522d"},{"page":"/pages/demo/assets/index.js","md5":"ea848ef6835182a29b8b19f1e351bca8"},{"page":"/pages/demo/bmcalendar/index.js","md5":"7d008feb40959b35112b3425ea065de9"},{"page":"/pages/demo/bmchart/index.js","md5":"7b974384aec42134a4fbfa837d78cf6a"},{"page":"/pages/demo/bmrichtext/index.js","md5":"465df1badf294dce9fcaa2378fa16d71"},{"page":"/pages/demo/event/a.js","md5":"a54661dc599b64457cecabc10d013237"},{"page":"/pages/demo/event/b.js","md5":"48d953bdb1ff0cc127b051a602ccddf9"},{"page":"/pages/demo/font/index.js","md5":"2545cf6c116e10e59a78f33a40c8b8ab"},{"page":"/pages/demo/globalAttr/index.js","md5":"10cab0cd8b7642c26684e7aafef8991c"},{"page":"/pages/demo/image/index.js","md5":"ac558a7bc090bb8bad9d9bdf1bc91139"},{"page":"/pages/demo/index.js","md5":"ad53a14e8da88b308fd131c99b9aeea3"},{"page":"/pages/demo/inputExtend/index.js","md5":"a3226c83180a2d3af09129a6a9e73110"},{"page":"/pages/demo/lifecycle/index.js","md5":"a451c508d3925be84fe7dd17d51ab9f4"},{"page":"/pages/demo/notice/index.js","md5":"b3e7b00df2c14dfa14c7e1eb58a1c5ce"},{"page":"/pages/demo/other/bindingx.js","md5":"60de1e8d6417b2cb0834215059b79673"},{"page":"/pages/demo/other/bui.js","md5":"d751fcbf11234f106de53d6417f6a419"},{"page":"/pages/demo/other/weexui.js","md5":"83f6f29a0c9ce083de47766a9ca78f46"},{"page":"/pages/demo/refresh/index.js","md5":"7647742d029540d1f61ed65793e762c5"},{"page":"/pages/demo/router/home.js","md5":"e6a3d7e8286374316eb768b0120b70ec"},{"page":"/pages/demo/router/index.js","md5":"6f3e3c591d490a07b680ded0c1e14662"},{"page":"/pages/demo/storage/index.js","md5":"355362cd2597bc4fffea185347be2998"},{"page":"/iconfont/font_1469606063_76593.ttf","md5":"f6222bcfedff4a817bb50df7a049d1db"},{"page":"/iconfont/font_1469606522_9417143.woff","md5":"6cf5490fd14ff83350ff952bb5b8e484"},{"page":"/iconfont/font_zn5b3jswpofuhaor.ttf","md5":"c0356b22e8235d2b0be8880cc81894cc"},{"page":"/iconfont/iconfont-eros.ttf","md5":"68780fad0047dc5b02cb613ebb08cda1"},{"page":"/iconfont/iconfont.ttf","md5":"ec86bfe5bdb872bad2b2af4f11da14f4"},{"page":"/assets/demo.jpg","md5":"332c4e7d5398207c1b49750369a72848"}],"android":"eros-template-version","iOS":"eros-template-version","appName":"eros-template-name","jsVersion":"bc2ca5117521035d4f3c82930e21bd91","timestamp":1522306978832,"jsPath":"https://app.weex-eros.com/source"} 2 | -------------------------------------------------------------------------------- /src/js/pages/yanxuanDemo/shop/config.js: -------------------------------------------------------------------------------- 1 | export const GOODS = [ 2 | { tlt: "日式和风敞口保温杯", img: "http://yanxuan.nosdn.127.net/3aa67fee1c7d046a09f4ce878f4485ac.png?imageView&quality=85&thumbnail=330x330", info: "真空隔热,保温保冷", price: "32" }, 3 | { tlt: "切尔西牛皮女靴", img: "http://yanxuan.nosdn.127.net/0e9ddf1a0ed5af78e8ec12cb9489df17.png?imageView&quality=85&thumbnail=330x330", info: "经典牛皮切尔西,时尚帅气", price: "289" }, 4 | { tlt: "小馒头 多色双肩包", img: "http://yanxuan.nosdn.127.net/455eee1712358dbcb2e33d54ab287808.png?imageView&quality=85&thumbnail=330x330", info: "奶油色泽,小巧减龄", price: "79" }, 5 | { tlt: "全棉色织磨毛四件套", img: "http://yanxuan.nosdn.127.net/3e1c00ce7b49a78e645538a8c45cabcb.png?imageView&quality=85&thumbnail=330x330", info: "优雅色织,温暖磨毛", price: "299" }, 6 | { tlt: "日式和风声波式电动牙刷", img: "http://yanxuan.nosdn.127.net/e5474a8f4fd5748079e2ba2ead806b51.png?imageView&quality=85&thumbnail=330x330", info: "进口刷毛,专利技术", price: "119" }, 7 | { tlt: "多功能商务双肩包", img: "http://yanxuan.nosdn.127.net/795884dc6d995eca9a091a6358e3634d.png?imageView&quality=85&thumbnail=330x330", info: "17个功能分区,内置分层收纳", price: "334" }, 8 | { tlt: "黑凤梨 20寸PC膜拉链登机箱", img: "http://yanxuan.nosdn.127.net/3108aaae80416b1cf27c3d7cc5661cea.png?imageView&quality=85&thumbnail=330x330", info: "热卖9万只,网易人手1只", price: "185" }, 9 | { tlt: "日式蓬软太鼓抱枕", img: "http://yanxuan.nosdn.127.net/ad953e16ad8c33b714e7af941ce8cd56.png?imageView&quality=85&thumbnail=330x330", info: "萌趣太鼓造型 软糯轻柔回弹", price: "29" }, 10 | { tlt: "可水洗抗菌防螨丝羽绒枕", img: "http://yanxuan.nosdn.127.net/a6c9e142fd008b3734c690a71a78ae5b.png?imageView&quality=85&thumbnail=330x330", info: "进口防螨布,热销50万件", price: "99" }, 11 | { tlt: "双宫茧桑蚕丝被 空调被", img: "http://yanxuan.nosdn.127.net/6b341648f59d0c3eb48fa81e1d2de06e.png?imageView&quality=85&thumbnail=330x330", info: "一级桑蚕丝,吸湿透气柔软", price: "479" }, 12 | { tlt: "怀抱休闲椅组合(皮款)", img: "http://yanxuan.nosdn.127.net/b5289125e9b55cf72e9a9623d006415e.png?imageView&quality=85&thumbnail=330x330", info: "葛优躺神器皮款", price: "3999" }, 13 | { tlt: "欧式哑光餐具套装", img: "http://yanxuan.nosdn.127.net/431e86c88b4a6c9f065d1d8abea6b603.png?imageView&quality=85&thumbnail=330x330", info: "德化白瓷,坚实耐用", price: "189" }, 14 | { tlt: "清新两用杯", img: "http://yanxuan.nosdn.127.net/431f5d142e3dd9946dc8e38c2aa3cd34.png?imageView&quality=85&thumbnail=330x330", info: "办公杯优选 轻松饮茶", price: "52" }, 15 | { tlt: "两带式男/女款拖鞋", img: "http://yanxuan.nosdn.127.net/7d1c130c7d80edf824e4218c6829b7c8.png?imageView&quality=85&thumbnail=330x330", info: "鞋杯随脚型而变,舒适呵护", price: "69.9" } 16 | ] -------------------------------------------------------------------------------- /src/js/widget/axios.js: -------------------------------------------------------------------------------- 1 | import _isFunction from 'lodash/isFunction' 2 | const bmAxios = weex.requireModule('bmAxios') 3 | export default class Axios { 4 | constructor ({ timeout, apis, baseUrl = '', requestHandler, responseHandler }) { 5 | this.apis = apis 6 | this.timeout = timeout 7 | this.baseUrl = baseUrl 8 | this.requestHandler = requestHandler 9 | this.responseHandler = responseHandler 10 | return this 11 | } 12 | install (Vue) { 13 | /** 14 | * Contributor: Eric Xiao. 15 | * Description: extend promise. 16 | * Eros thanks every contributor. 17 | */ 18 | Promise.prototype.finally = function (callback) { 19 | const P = this.constructor; 20 | return this.then( 21 | value => P.resolve(callback()).then(() => value), 22 | reason => P.resolve(callback()).then(() => { throw reason }) 23 | ); 24 | }; 25 | Promise.prototype.done = function (onFulfilled, onRejected) { 26 | this.then(onFulfilled, onRejected) 27 | .catch(function (reason) { 28 | // Throw a global error 29 | setTimeout(() => { throw reason }, 0); 30 | }); 31 | }; 32 | 33 | const self = this 34 | Vue.prototype.$fetch = (options) => { 35 | return new Promise((resolve, reject) => { 36 | if (_isFunction(self.requestHandler)) { 37 | self.requestHandler(options, () => { handleAxios(options, resolve, reject) }) 38 | } else { 39 | handleAxios(options, resolve, reject) 40 | } 41 | }) 42 | } 43 | 44 | function handleAxios ({ name, url = '', data, method, header }, resolve, reject) { 45 | bmAxios.fetch({ 46 | url: url || (self.baseUrl + self.apis[name]), 47 | data: data || {}, 48 | method: method || 'GET', 49 | header: header || {}, 50 | timeout: self.timeout || 30000 51 | }, (resData) => { 52 | // 统一的监控 53 | if (_isFunction(self.responseHandler)) { 54 | self.responseHandler({ name, url, data, method, header }, resData, resolve, reject) 55 | } else { 56 | resolve(resData) 57 | } 58 | }) 59 | } 60 | } 61 | } 62 | 63 | -------------------------------------------------------------------------------- /src/js/widget/storage.js: -------------------------------------------------------------------------------- 1 | import _isFunction from 'lodash/isFunction' 2 | const storage = weex.requireModule('bmStorage') 3 | 4 | var Storage = Object.create(null) 5 | 6 | Storage.install = (Vue, options) => { 7 | Vue.prototype.$storage = { 8 | set (key, value, callback) { 9 | return new Promise((resolve, reject) => { 10 | storage.setData(key.toString(), JSON.stringify(value), ({ status, data, errorMsg }) => { 11 | _isFunction(callback) && callback.call(this, status === 0) 12 | status === 0 ? resolve(true) : reject(false) 13 | }) 14 | }) 15 | }, 16 | setSync (key, value) { 17 | return storage.setDataSync(key.toString(), JSON.stringify(value)) 18 | }, 19 | get (key, callback) { 20 | return new Promise((resolve, reject) => { 21 | storage.getData(key.toString(), ({ status, data, errorMsg }) => { 22 | _isFunction(callback) && callback.call(this, status === 0) 23 | status === 0 ? resolve(JSON.parse(data)) : reject(false) 24 | }) 25 | }) 26 | }, 27 | getSync (key) { 28 | const { status, data, errorMsg } = storage.getDataSync(key.toString()) 29 | return status === 0 ? JSON.parse(data) : { status, data, errorMsg } 30 | }, 31 | delete (key, callback) { 32 | return new Promise((resolve, reject) => { 33 | storage.deleteData(key.toString(), ({ status, data, errorMsg }) => { 34 | _isFunction(callback) && callback.call(this, status === 0) 35 | status === 0 ? resolve(true) : reject(false) 36 | }) 37 | }) 38 | }, 39 | deleteSync (key) { 40 | const { status, data, errorMsg } = storage.deleteDataSync(key.toString()) 41 | return status === 0 ? true : { status, data, errorMsg } 42 | }, 43 | removeAll (callback) { 44 | return new Promise((resolve, reject) => { 45 | storage.removeData(({ status, data, errorMsg }) => { 46 | _isFunction(callback) && callback.call(this, status === 0) 47 | status === 0 ? resolve(true) : reject(false) 48 | }) 49 | }) 50 | }, 51 | removeAllSync () { 52 | const { status, data, errorMsg } = storage.removeDataSync() 53 | return status === 0 ? true : { status, data, errorMsg } 54 | } 55 | } 56 | } 57 | 58 | Vue.use(Storage) 59 | -------------------------------------------------------------------------------- /src/js/pages/yanxuanDemo/shop/index.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 30天无忧退换货 7 | 48小时快速退款 8 | 满88元免邮费 9 | 10 | 11 | 12 | 13 | 14 | 15 | 去添加点什么吧 16 | 17 | 18 | 19 | 20 | 21 | 22 | 78 | -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/app/src/main/java/com/benmu/wx/activity/SplashActivity.java: -------------------------------------------------------------------------------- 1 | package com.benmu.wx.activity; 2 | 3 | import android.app.Activity; 4 | import android.os.Bundle; 5 | import android.os.Handler; 6 | 7 | import com.benmu.framework.BMWXEnvironment; 8 | import com.benmu.framework.constant.Constant; 9 | import com.benmu.framework.constant.WXEventCenter; 10 | import com.benmu.framework.manager.ManagerFactory; 11 | import com.benmu.framework.manager.impl.ParseManager; 12 | import com.benmu.framework.manager.impl.VersionManager; 13 | import com.benmu.framework.manager.impl.dispatcher.DispatchEventManager; 14 | import com.benmu.framework.model.RouterModel; 15 | import com.benmu.framework.model.WeexEventBean; 16 | import com.benmu.wx.R; 17 | 18 | /** 19 | * Created by Carry on 2017/8/23. 20 | */ 21 | 22 | public class SplashActivity extends Activity { 23 | private Handler mHandler = new Handler(); 24 | 25 | @Override 26 | protected void onCreate(Bundle savedInstanceState) { 27 | super.onCreate(savedInstanceState); 28 | setContentView(R.layout.activity_splash); 29 | init(); 30 | } 31 | 32 | private void init() { 33 | final VersionManager versionManager = ManagerFactory.getManagerService(VersionManager 34 | .class); 35 | new Thread(new Runnable() { 36 | @Override 37 | public void run() { 38 | long prepareTime = versionManager.prepareJsBundle(SplashActivity.this); 39 | mHandler.postDelayed(new Runnable() { 40 | @Override 41 | public void run() { 42 | toHome(); 43 | } 44 | }, 2000 - prepareTime); 45 | } 46 | }).start(); 47 | 48 | 49 | } 50 | 51 | private void toHome() { 52 | String homePage = BMWXEnvironment.mPlatformConfig.getPage().getHomePage(this); 53 | String NavigationColor = BMWXEnvironment.mPlatformConfig.getPage().getNavBarColor(); 54 | RouterModel router = new RouterModel(homePage, Constant.ACTIVITIES_ANIMATION 55 | .ANIMATION_PUSH, null, null, false, null); 56 | DispatchEventManager dispatchEventManager = ManagerFactory.getManagerService 57 | (DispatchEventManager.class); 58 | WeexEventBean eventBean = new WeexEventBean(); 59 | eventBean.setKey(WXEventCenter.EVENT_OPEN); 60 | eventBean.setJsParams(ManagerFactory.getManagerService(ParseManager.class).toJsonString 61 | (router)); 62 | eventBean.setContext(this); 63 | dispatchEventManager.getBus().post(eventBean); 64 | finish(); 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/gradlew.bat: -------------------------------------------------------------------------------- 1 | @if "%DEBUG%" == "" @echo off 2 | @rem ########################################################################## 3 | @rem 4 | @rem Gradle startup script for Windows 5 | @rem 6 | @rem ########################################################################## 7 | 8 | @rem Set local scope for the variables with windows NT shell 9 | if "%OS%"=="Windows_NT" setlocal 10 | 11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 12 | set DEFAULT_JVM_OPTS= 13 | 14 | set DIRNAME=%~dp0 15 | if "%DIRNAME%" == "" set DIRNAME=. 16 | set APP_BASE_NAME=%~n0 17 | set APP_HOME=%DIRNAME% 18 | 19 | @rem Find java.exe 20 | if defined JAVA_HOME goto findJavaFromJavaHome 21 | 22 | set JAVA_EXE=java.exe 23 | %JAVA_EXE% -version >NUL 2>&1 24 | if "%ERRORLEVEL%" == "0" goto init 25 | 26 | echo. 27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 28 | echo. 29 | echo Please set the JAVA_HOME variable in your environment to match the 30 | echo location of your Java installation. 31 | 32 | goto fail 33 | 34 | :findJavaFromJavaHome 35 | set JAVA_HOME=%JAVA_HOME:"=% 36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 37 | 38 | if exist "%JAVA_EXE%" goto init 39 | 40 | echo. 41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 42 | echo. 43 | echo Please set the JAVA_HOME variable in your environment to match the 44 | echo location of your Java installation. 45 | 46 | goto fail 47 | 48 | :init 49 | @rem Get command-line arguments, handling Windowz variants 50 | 51 | if not "%OS%" == "Windows_NT" goto win9xME_args 52 | if "%@eval[2+2]" == "4" goto 4NT_args 53 | 54 | :win9xME_args 55 | @rem Slurp the command line arguments. 56 | set CMD_LINE_ARGS= 57 | set _SKIP=2 58 | 59 | :win9xME_args_slurp 60 | if "x%~1" == "x" goto execute 61 | 62 | set CMD_LINE_ARGS=%* 63 | goto execute 64 | 65 | :4NT_args 66 | @rem Get arguments from the 4NT Shell from JP Software 67 | set CMD_LINE_ARGS=%$ 68 | 69 | :execute 70 | @rem Setup the command line 71 | 72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 73 | 74 | @rem Execute Gradle 75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 76 | 77 | :end 78 | @rem End local scope for the variables with windows NT shell 79 | if "%ERRORLEVEL%"=="0" goto mainEnd 80 | 81 | :fail 82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 83 | rem the _cmd.exe /c_ return code! 84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 85 | exit /b 1 86 | 87 | :mainEnd 88 | if "%OS%"=="Windows_NT" endlocal 89 | 90 | :omega 91 | -------------------------------------------------------------------------------- /src/js/pages/yanxuanDemo/home/block1.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | {{title}} 4 | 5 | 6 | 7 | {{i.name}} 8 | 9 | {{i.price}} 10 | 元起 11 | 12 | {{i.state}} 13 | 14 | 15 | 16 | 17 | 32 | -------------------------------------------------------------------------------- /src/js/pages/yanxuanDemo/home/block3.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 猜你喜欢 4 | 5 | 6 | 7 | 8 | 9 | {{i.info}} 10 | {{i.tlt}} 11 | ¥{{i.price}} 12 | 13 | 14 | 15 | 16 | 31 | -------------------------------------------------------------------------------- /src/js/pages/yanxuanDemo/utils/util.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by zwwill on 2017/8/27. 3 | */ 4 | 5 | let utilFunc = { 6 | initIconFont () { 7 | let domModule = weex.requireModule('dom'); 8 | domModule.addRule('fontFace', { 9 | 'fontFamily': "iconfont", 10 | 'src': "url('http://at.alicdn.com/t/font_404010_jgmnakd1zizr529.ttf')" 11 | }); 12 | }, 13 | setBundleUrl(url, jsFile) { 14 | const bundleUrl = url; 15 | let host = ''; 16 | let path = ''; 17 | let nativeBase; 18 | const isAndroidAssets = bundleUrl.indexOf('your_current_IP') >= 0 || bundleUrl.indexOf('file://assets/') >= 0; 19 | const isiOSAssets = bundleUrl.indexOf('file:///') >= 0 && bundleUrl.indexOf('WeexDemo.app') > 0; 20 | if (isAndroidAssets) { 21 | nativeBase = 'file://assets/dist'; 22 | } else if (isiOSAssets) { 23 | // file:///var/mobile/Containers/Bundle/Application/{id}/WeexDemo.app/ 24 | // file:///Users/{user}/Library/Developer/CoreSimulator/Devices/{id}/data/Containers/Bundle/Application/{id}/WeexDemo.app/ 25 | nativeBase = bundleUrl.substring(0, bundleUrl.lastIndexOf('/') + 1); 26 | } else { 27 | const matches = /\/\/([^\/]+?)\//.exec(bundleUrl); 28 | const matchFirstPath = /\/\/[^\/]+\/([^\/]+)\//.exec(bundleUrl); 29 | if (matches && matches.length >= 2) { 30 | host = matches[1]; 31 | } 32 | if (matchFirstPath && matchFirstPath.length >= 2) { 33 | path = matchFirstPath[1]; 34 | } 35 | nativeBase = 'http://' + host + '/'; 36 | } 37 | const h5Base = './index.html?page='; 38 | // in Native 39 | let base = nativeBase; 40 | if (typeof navigator !== 'undefined' && (navigator.appCodeName === 'Mozilla' || navigator.product === 'Gecko')) { 41 | // check if in weexpack project 42 | if (path === 'web' || path === 'dist') { 43 | base = h5Base + '/dist/'; 44 | } else { 45 | base = h5Base + ''; 46 | } 47 | } else { 48 | base = nativeBase + (!!path? path+'/':''); 49 | } 50 | 51 | const newUrl = base + jsFile; 52 | return newUrl; 53 | }, 54 | getUrlSearch(url,name) { 55 | var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); 56 | var r = url.slice(url.indexOf('?')+1).match(reg); 57 | if (r != null) { 58 | try { 59 | return decodeURIComponent(r[2]); 60 | } catch (_e) { 61 | return null; 62 | } 63 | } 64 | return null; 65 | } 66 | }; 67 | 68 | export default utilFunc; -------------------------------------------------------------------------------- /scripts/install.android.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | eros_prefix="[\033[34meros\033[0m]" 4 | 5 | function error_exit { 6 | echo "--------------------------------------------" 7 | echo -e "\033[31m Error code is $1 \033[0m" 1>&2 8 | echo "" 9 | echo " Code tips: " 10 | echo -e "\033[33m1 -> platforms/android/WeexFrameworkWrapper/ is not existed. \033[0m" 11 | echo -e "\033[33m2 -> cannot remove platforms/android/WeexFrameworkWrapper/wxframework, please check file permissions. \033[0m" 12 | echo -e "\033[33m3 -> cannot remove platforms/android/WeexFrameworkWrapper/sdk, please check file permissions. \033[0m" 13 | echo -e "\033[33m4 -> cannot remove platforms/android/WeexFrameworkWrapper/nexus, please check file permissions. \033[0m" 14 | echo -e "\033[33m5 -> cannot remove platforms/android/WeexFrameworkWrapper/ErosPluginAmap, please check file permissions. \033[0m" 15 | echo -e "\033[33m6 -> failed run: git clone https://github.com/bmfe/WeexErosFramework.git. \033[0m" 16 | echo -e "\033[33m7 -> failed run: git clone https://github.com/bmfe/WeexSDK.git. \033[0m" 17 | echo -e "\033[33m8 -> failed run: git clone https://github.com/bmfe/eros-nexus.git. \033[0m" 18 | echo -e "\033[33m9 -> failed run: git clone https://github.com/bmfe/eros-plugin-android-amap.git. \033[0m" 19 | exit 1 20 | } 21 | 22 | cd platforms/android/WeexFrameworkWrapper/ || \ 23 | error_exit 1 24 | echo -e "$eros_prefix Enter android project" 25 | 26 | if [ -e wxframework/ ] || [ -e sdk/ ] || [ -e nexus/ ] || [ -e ErosPluginAmap/ ] 27 | then 28 | echo -e "$eros_prefix mwxframework, sdk ,nexus or ErosPluginAmap has been existed, remove old sdk." 29 | rm -rf wxframework/ || error_exit 2 30 | rm -rf sdk/ || error_exit 3 31 | rm -rf nexus/ || error_exit 4 32 | rm -rf ErosPluginAmap/ || error_exit 5 33 | else 34 | echo -e "$eros_prefix No eros devDependencies, we will start to clone new sdk..." 35 | fi 36 | echo -e "$eros_prefix \033[36mMay spend a lot of time, please wait patiently. \033[0m" 37 | git clone https://github.com/bmfe/WeexErosFramework.git wxframework --depth=1 -q || \ 38 | error_exit 6 39 | echo -e "$eros_prefix Eros wxframework clone done." 40 | git clone https://github.com/bmfe/WeexSDK.git sdk --depth=1 -q || \ 41 | error_exit 7 42 | echo -e "$eros_prefix Weex sdk clone done." 43 | git clone https://github.com/bmfe/eros-nexus.git nexus --depth=1 -q || \ 44 | error_exit 8 45 | echo -e "$eros_prefix Eros nexus clone done." 46 | git clone https://github.com/bmfe/eros-plugin-android-amap.git ErosPluginAmap --depth=1 -q || \ 47 | error_exit 9 48 | echo -e "$eros_prefix Eros ErosPluginAmap clone done." 49 | 50 | echo "" 51 | echo -e "$eros_prefix \033[32mAndroid sdk has been installed, enjoy it! \033[0m" 52 | -------------------------------------------------------------------------------- /src/js/widget/notice.js: -------------------------------------------------------------------------------- 1 | const modal = weex.requireModule('bmModal') 2 | const Notice = Object.create(null) 3 | 4 | import _isFunction from 'lodash/isFunction' 5 | import _isObject from 'lodash/isObject' 6 | 7 | Notice.install = (Vue, options) => { 8 | Vue.prototype.$notice = { 9 | alert (options) { 10 | if (options.message) { 11 | return new Promise((resolve, reject) => { 12 | modal.alert({ 13 | // titleAlign: options.titleAlign || 'center', 14 | title: options.title || '', 15 | message: options.message || '', 16 | // messageAlign: options.messageAlign || 'center', 17 | okTitle: options.okTitle || '确定' 18 | }, (params) => { 19 | if (_isFunction(options.callback)) { 20 | options.callback.call(params) 21 | } 22 | resolve() 23 | }) 24 | }) 25 | } 26 | }, 27 | confirm (options) { 28 | if (options.message) { 29 | return new Promise((resolve, reject) => { 30 | modal.confirm({ 31 | // titleAlign: options.titleAlign || 'center', 32 | title: options.title || '', 33 | message: options.message || '', 34 | // messageAlign: options.messageAlign || 'center', 35 | cancelTitle: options.cancelTitle || '取消', 36 | okTitle: options.okTitle || '确定' 37 | }, (params) => { 38 | if (_isFunction(options.cancelCallback)) { 39 | options.cancelCallback.call(params) 40 | } 41 | reject() 42 | }, (params) => { 43 | if (_isFunction(options.okCallback)) { 44 | options.okCallback.call(params) 45 | } 46 | resolve() 47 | }) 48 | }) 49 | } 50 | }, 51 | loading: { 52 | show (message = '') { 53 | modal.showLoading({ message }) 54 | }, 55 | hide () { 56 | setTimeout(() => { 57 | modal.hideLoading() 58 | }, 200) 59 | } 60 | }, 61 | toast (options) { 62 | if (!options) return 63 | if (_isObject(options)) { 64 | modal.toast({ 65 | message: options.message 66 | }) 67 | } else { 68 | modal.toast({ 69 | message: options 70 | }) 71 | } 72 | } 73 | } 74 | } 75 | 76 | Vue.use(Notice) 77 | -------------------------------------------------------------------------------- /src/js/css/fragment/form.scss: -------------------------------------------------------------------------------- 1 | @import "src/js/css/core/base"; 2 | 3 | .wrap-input { 4 | @extend .flex-row-between; 5 | margin-left: 30; 6 | margin-right: 30; 7 | height: 110; 8 | border-radius: 10; 9 | background-color: $base-white; 10 | padding-left: 30; 11 | padding-right: 40; 12 | box-shadow: 0 5 10 #ebf0f5; 13 | } 14 | .wrap-input-list { 15 | margin-left: 30; 16 | margin-right: 30; 17 | border-radius: 10; 18 | overflow: hidden; 19 | } 20 | .input-list { 21 | display: flex; 22 | flex-direction: row; 23 | align-items: center; 24 | @include border(); 25 | height: 110; 26 | background-color: $base-white; 27 | padding-left: 30; 28 | padding-right: 40; 29 | } 30 | .write-panel { 31 | margin-left: 30; 32 | margin-right: 30; 33 | border-radius: 10; 34 | background-color: $base-white; 35 | padding-left: 30; 36 | padding-right: 30; 37 | box-shadow: 0 5 10 #ebf0f5; 38 | } 39 | .textarea-box { 40 | position: relative; 41 | padding-bottom: 40; 42 | } 43 | .note { 44 | height: 190; 45 | background-color: $base-white; 46 | margin-top: 30; 47 | margin-bottom: 30; 48 | font-size: $font-32; 49 | color: $base-color; 50 | line-height: 54; 51 | placeholder-color: $base-disabled; 52 | } 53 | .word-limit { 54 | flex-direction: row; 55 | position: absolute; 56 | bottom : 30; 57 | right: 0; 58 | font-size:$font-32; 59 | color: $blue-ink; 60 | } 61 | .addPic { 62 | padding-top: 25; 63 | padding-right: 25; 64 | padding-bottom: 25; 65 | flex-direction: row; 66 | justify-content:flex-start; 67 | align-items: center; 68 | overflow: hidden; 69 | } 70 | .wrap-pic-box { 71 | position: relative; 72 | margin-right: 10; 73 | align-items: center; 74 | width: 100; 75 | height: 100; 76 | justify-content: center; 77 | } 78 | 79 | .pic { 80 | width: 90; 81 | height: 90; 82 | background-color: #f0f4fa; 83 | @include border-all(#dfe1eb,solid,1); 84 | } 85 | .wrap-pic-txt { 86 | flex: 1; 87 | margin-left: 20; 88 | margin-right: 30; 89 | } 90 | .addpic-txt { 91 | flex-direction: row; 92 | flex-wrap: wrap; 93 | font-size: $font-32; 94 | line-height: 36; 95 | color: #ceced9; 96 | text-align: left; 97 | } 98 | .no-border { 99 | border-top-width: 0; 100 | border-bottom-width: 0; 101 | } 102 | 103 | .btn-submit { 104 | margin-top: 78; 105 | margin-right: 30; 106 | margin-bottom: 30; 107 | margin-left: 30; 108 | @include btn-new($btn-lh: 100,$btn-fs: 36); 109 | } 110 | .btn-gray { 111 | background-color: $btn-gray; 112 | } 113 | .export-select { 114 | flex: 1; 115 | font-size: $font-32; 116 | color: $base-disabled; 117 | } 118 | .new-write-panel { 119 | margin-left: 30; 120 | margin-right: 30; 121 | border-radius: 10; 122 | background-color: $base-white; 123 | padding-left: 25; 124 | box-shadow: 0 5 10 #ebf0f5; 125 | overflow: hidden; 126 | } 127 | .pb0 { 128 | padding-bottom: 0; 129 | } -------------------------------------------------------------------------------- /src/js/pages/yanxuanDemo/topic/index.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 84 | -------------------------------------------------------------------------------- /src/js/pages/yanxuanDemo/index.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 52 | 60 | -------------------------------------------------------------------------------- /src/js/widget/image.js: -------------------------------------------------------------------------------- 1 | const imageModule = weex.requireModule('bmImage') 2 | const browser = weex.requireModule('bmBrowserImg') 3 | const bmAxios = weex.requireModule('bmAxios') 4 | 5 | const Image = Object.create(null) 6 | 7 | Image.install = (Vue, options) => { 8 | Vue.prototype.$image = { 9 | // upload change to pickAndUpload 10 | pickAndUpload ({ maxCount = 1, imageWidth = 0, url = '', allowCrop = false, header = {}, params = {}}) { 11 | return new Promise((resolve, reject) => { 12 | var _params = { 13 | maxCount, 14 | imageWidth, 15 | allowCrop, 16 | header, 17 | params 18 | } 19 | if (url) _params.url = url 20 | imageModule.uploadImage(_params, ({ status, errorMsg, data }) => { 21 | status === 0 ? resolve(data) : reject({ status, errorMsg, data }) 22 | }) 23 | }) 24 | }, 25 | upload ({ url = '', params = {}, header = {}, source = [] }) { 26 | return new Promise((resolve, reject) => { 27 | bmAxios.uploadImage({ 28 | url, params, header, source 29 | }, ({ status, errorMsg, data }) => { 30 | status === 200 ? resolve(data) : reject({ status, errorMsg, data }) 31 | }) 32 | }) 33 | }, 34 | 35 | browser ({ index = 0, images = [], type = 'network' }) { 36 | return new Promise((resolve, reject) => { 37 | browser.open({ 38 | index, 39 | images, 40 | type 41 | }, ({ status, errorMsg, data }) => { 42 | status === 0 ? resolve(data) : reject({ status, errorMsg, data }) 43 | }) 44 | }) 45 | }, 46 | camera ({ imageWidth = 0, allowCrop = false }) { 47 | return new Promise((resolve, reject) => { 48 | imageModule.camera({ 49 | imageWidth, 50 | allowCrop 51 | }, ({ status, errorMsg, data }) => { 52 | status === 0 ? resolve(data) : reject({ status, errorMsg, data }) 53 | }) 54 | }) 55 | }, 56 | pick ({ maxCount = 1, imageWidth = 0, allowCrop = false }) { 57 | return new Promise((resolve, reject) => { 58 | imageModule.pick({ 59 | maxCount, 60 | imageWidth, 61 | allowCrop 62 | }, ({ status, errorMsg, data }) => { 63 | status === 0 ? resolve(data) : reject({ status, errorMsg, data }) 64 | }) 65 | }) 66 | }, 67 | preview ({ index = 0, images = [] }) { 68 | return new Promise((resolve, reject) => { 69 | imageModule.preview({ 70 | index, 71 | images 72 | }, ({ status, errorMsg, data }) => { 73 | status === 0 ? resolve(data) : reject({ status, errorMsg, data }) 74 | }) 75 | }) 76 | } 77 | } 78 | } 79 | 80 | Vue.use(Image) 81 | -------------------------------------------------------------------------------- /src/js/pages/yanxuanDemo/my/index.scss: -------------------------------------------------------------------------------- 1 | .iconfont { 2 | font-family: iconfont; 3 | } 4 | 5 | .wrapper { 6 | background-color: #f4f4f4; 7 | } 8 | 9 | .cell-button { 10 | margin-bottom: 18px; 11 | } 12 | 13 | .header { 14 | height: 280px; 15 | } 16 | 17 | .header-bg { 18 | position: absolute; 19 | top: 0; 20 | left: 0; 21 | right: 0; 22 | height: 280px; 23 | } 24 | 25 | .i-photo { 26 | position: absolute; 27 | top: 90px; 28 | left: 30px; 29 | height: 130px; 30 | width: 130px; 31 | border-radius: 130px; 32 | } 33 | 34 | .i-name { 35 | position: absolute; 36 | top: 110px; 37 | left: 190px; 38 | height: 50px; 39 | width: 300px; 40 | font-size: 38px; 41 | color: #fff; 42 | } 43 | 44 | .b-tlt { 45 | position: absolute; 46 | top: 170px; 47 | left: 190px; 48 | height: 40px; 49 | width: 350px; 50 | display: flex; 51 | flex-direction: row; 52 | flex-wrap: nowrap; 53 | } 54 | 55 | .i-tag { 56 | width: 30px; 57 | height: 30px; 58 | font-size: 24px; 59 | padding-top: 2px; 60 | margin-right: 6px; 61 | border-radius: 4px; 62 | } 63 | 64 | .tag-e { 65 | width: 32px; 66 | height: 32px; 67 | } 68 | 69 | .tag-v8 { 70 | color: #fff; 71 | background-color: #b29e75; 72 | text-align: center; 73 | } 74 | 75 | .txt-tag { 76 | color: #b4a078; 77 | flex: 1; 78 | height: 40px; 79 | font-size: 28px; 80 | overflow: hidden; 81 | lines: 1; 82 | text-overflow: ellipsis; 83 | } 84 | 85 | .b-qrcode { 86 | position: absolute; 87 | top: 120px; 88 | right: 40px; 89 | height: 80px; 90 | width: 80px; 91 | border-radius: 70px; 92 | text-align: center; 93 | font-size: 40px; 94 | padding-top: 18px; 95 | color: #fff; 96 | background-color: rgba(255, 255, 255, .3); 97 | } 98 | 99 | .s-box { 100 | padding-left: 26px; 101 | background-color: #fff; 102 | } 103 | 104 | .box-tlt { 105 | height: 94px; 106 | } 107 | 108 | .box-txt { 109 | font-size: 26px; 110 | padding-top: 34px; 111 | color: #333; 112 | } 113 | 114 | .i-box-in { 115 | position: absolute; 116 | top: 34px; 117 | right: 30px; 118 | color: #333; 119 | } 120 | 121 | .box-line { 122 | height: 132px; 123 | display: flex; 124 | padding-right: 30px; 125 | flex-wrap: nowrap; 126 | flex-direction: row; 127 | justify-content: space-between; 128 | } 129 | 130 | .i-box-l { 131 | width: 130px; 132 | height: 132px; 133 | } 134 | 135 | .i-box-icon { 136 | font-size: 50px; 137 | text-align: center; 138 | padding-top: 15px; 139 | height: 79px; 140 | padding-bottom: 10px; 141 | color: #666; 142 | } 143 | 144 | .i-box-tlt { 145 | font-size: 26px; 146 | text-align: center; 147 | color: #666; 148 | } 149 | 150 | .line-serve { 151 | padding-top: 20px; 152 | height: 150px; 153 | } 154 | 155 | .border-bottom { 156 | border-bottom-width: 1px; 157 | border-bottom-color: rgba(0, 0, 0, .15); 158 | } 159 | 160 | .i-c-orange { 161 | color: #ff744d; 162 | } 163 | 164 | .i-c-yellow { 165 | color: #f6a121; 166 | } 167 | 168 | .i-c-blue { 169 | color: #689de5; 170 | } 171 | 172 | .status-bar { 173 | width: 750; 174 | height: 40; 175 | background-color:#1f1f1f; 176 | } -------------------------------------------------------------------------------- /src/js/pages/yanxuanDemo/topic/block2.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {{article.auther}} 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | {{article.tlt}} 21 | {{article.price}}元起 22 | 23 | {{article.info}} 24 | 25 | 26 | 42 | -------------------------------------------------------------------------------- /src/js/css/core/mixins.scss: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | @mixin border($direction: top,$border-color:$border-color,$solid: solid,$width-value: 1){ 3 | border-#{$direction}-style: $solid; 4 | border-#{$direction}-width: $width-value; 5 | border-#{$direction}-color: $border-color; 6 | } 7 | @mixin border-both($direction-both1: top,$direction-both2: bottom,$solid: solid,$width-value-top: 1,$width-value-bottom: 1,$border-color:$border-color){ 8 | border-#{$direction-both1}-style: $solid; 9 | border-#{$direction-both1}-width: $width-value-top; 10 | border-#{$direction-both1}-color: $border-color; 11 | border-#{$direction-both2}-style: $solid; 12 | border-#{$direction-both2}-width: $width-value-bottom; 13 | border-#{$direction-both2}-color: $border-color; 14 | } 15 | @mixin border-all ($border-color:$base-blue,$solid: solid,$width-value: 1) { 16 | border-width: $width-value; 17 | border-style: $solid; 18 | border-color: $border-color; 19 | } 20 | .flex-align{ 21 | align-items: center; 22 | justify-content: center; 23 | } 24 | @mixin btn($background-color: $btn-green,$color: #fff,$border-width:1,$border-style:solid,$border-color: transparent,$font-weight: bold,$margin-top: 88,$margin-bottom: 60,$margin-l: 70,$margin-r: 70,$btn-border-radius: 8){ 25 | background-color: $background-color; 26 | border-radius: $btn-border-radius; 27 | padding-top: 32; 28 | padding-bottom: 32; 29 | text-align: center; 30 | color: $color; 31 | font-weight: $font-weight; 32 | font-size: $font-36; 33 | margin-top: $margin-top; 34 | margin-bottom: $margin-bottom; 35 | margin-left: $margin-l; 36 | margin-right: $margin-r; 37 | border-width: $border-width; 38 | border-style: $border-style; 39 | border-color: $border-color; 40 | } 41 | @mixin btn-new($bgcolor:$btn-green,$color: #fff,$btn-lh: 80,$btn-radius: 8,$btn-fs: 32,$btn-fw: bold) { 42 | background-color: $bgcolor; 43 | color: $color; 44 | border-radius: $btn-radius; 45 | text-align: center; 46 | line-height: $btn-lh; 47 | font-size: $btn-fs; 48 | font-weight: $btn-fw; 49 | vertical-align: middle; 50 | } 51 | @mixin abs-pos($top: 0, $right: 0, $bottom: 0, $left: 0){ 52 | top: $top; 53 | right: $right; 54 | bottom: $bottom; 55 | left: $left; 56 | position: absolute; 57 | } 58 | @mixin text-overflow ( $lines: 1, $ellipsis: ellipsis,$width: 550) { 59 | width: $width; 60 | lines: $lines; 61 | text-overflow: $ellipsis; 62 | } 63 | .btn { 64 | @include btn(); 65 | } 66 | 67 | .btn-dash { 68 | @include btn(transparent,$base-color,2,dashed,$blue-ink); 69 | } 70 | 71 | .btn-red { 72 | @include btn($base-color-pink); 73 | } 74 | .flex-row { 75 | display: flex; 76 | flex-direction: row; 77 | } 78 | .flex-column { 79 | display: flex; 80 | flex-direciton: column; 81 | } 82 | .flex-row-start { 83 | flex-direction: row; 84 | justify-content: flex-start; 85 | align-items: center; 86 | } 87 | .flex-row-center { 88 | flex-direction: row; 89 | @extend .flex-align; 90 | } 91 | .flex-row-between { 92 | flex-direction: row; 93 | justify-content: space-between; 94 | align-items: center; 95 | } 96 | .flex-column-between { 97 | flex-direction: column; 98 | justify-content: space-between; 99 | } 100 | .flex-row-end { 101 | flex-direction: row; 102 | justify-content: flex-end; 103 | align-items:center; 104 | } -------------------------------------------------------------------------------- /src/js/css/fragment/dialog.scss: -------------------------------------------------------------------------------- 1 | /*dialog半透明层*/ 2 | @import "../core/base"; 3 | .mask { 4 | @include abs-pos; 5 | background-color: rgba(0, 0, 0, .4); 6 | } 7 | /*dialog定位*/ 8 | .dialog-wrap{ 9 | @include abs-pos; 10 | @extend .flex-align; 11 | } 12 | /*dialog 内容盒子*/ 13 | .dialog{ 14 | width: $dialog-width; 15 | background-color: $base-white; 16 | border-radius: $dialog-border-radius; 17 | padding-top: $dialog-padding-top; 18 | } 19 | .dialog-hd{ 20 | margin-bottom: 20; 21 | } 22 | /*dialog 标题文字*/ 23 | .dialog-hd-text{ 24 | font-size: $font-34; 25 | color: $dialog-text; 26 | text-align: center; 27 | font-weight: bold; 28 | } 29 | /*dialog 主内容区*/ 30 | .dialog-bd{ 31 | padding-top: 5; 32 | padding-right: 40; 33 | padding-bottom: 20; 34 | padding-left: 40; 35 | } 36 | /*dialog 主内容区可划动 例:选择证件 list cell*/ 37 | .scroll-bd{ 38 | height: 260; 39 | margin-top: 20; 40 | } 41 | .cell-item{ 42 | @include border(top); 43 | padding-top: 22; 44 | padding-right: 30; 45 | padding-bottom: 22; 46 | padding-left: 30; 47 | } 48 | /*dialog 主内容区横排 */ 49 | .dialog-bd-row{ 50 | flex-direction: row; 51 | align-items: center; 52 | } 53 | /*dialog 主内容区可划动文字属性 */ 54 | .dialog-text{ 55 | color: $dialog-text; 56 | font-size: $font-30; 57 | } 58 | .flex-1{ 59 | flex: 1; 60 | } 61 | .dialog-bd-align{ 62 | align-items: center; 63 | } 64 | .dialog-bd-flex-align { 65 | flex-direction: row; 66 | @extend .flex-align; 67 | } 68 | .serv-text{ 69 | flex: 1; 70 | flex-wrap: wrap; 71 | flex-direction: row; 72 | } 73 | /*选择就诊卡左右布局*/ 74 | .pop-box{ 75 | flex-direction: row; 76 | padding-top: 20; 77 | padding-bottom: 20; 78 | padding-left: 30; 79 | padding-right: 30; 80 | @include border(top); 81 | margin-top: 10; 82 | } 83 | .pop-left{ 84 | flex: 1; 85 | font-size: $font-30; 86 | color: $base-color; 87 | } 88 | .pop-right{ 89 | font-size: $font-30; 90 | color: $base-color; 91 | } 92 | .hidden { 93 | hidden: true; 94 | } 95 | .show { 96 | hidden: false; 97 | flex: 1; 98 | } 99 | /*dialog 按钮盒子*/ 100 | .btn-box{ 101 | @include border(top); 102 | @extend .flex-align; 103 | margin-top: 20; 104 | flex-direction: row; 105 | } 106 | .btn-text{ 107 | flex: 1; 108 | color: $dialog-submit-color; 109 | font-size: $font-30; 110 | text-align: center; 111 | padding-bottom: 25; 112 | padding-top: 25; 113 | font-weight: bold; 114 | } 115 | .btn-first-child{ 116 | @include border(right); 117 | color: $dialog-cancel-color; 118 | font-weight: bold; 119 | } 120 | //// 121 | .submit-text{ 122 | color: #d96d77; 123 | } 124 | .dialog-row-wrap{ 125 | margin-top: 20; 126 | } 127 | .dialog-row{ 128 | flex-direction: row; 129 | margin-bottom: 10; 130 | } 131 | 132 | .dialog-text-center{ 133 | text-align: center; 134 | color: $base-blue; 135 | text-decoration: underline; 136 | font-size: $font-30; 137 | margin-top: 10; 138 | } 139 | .check-row{ 140 | flex-direction: row; 141 | align-items: center; 142 | margin-top: 10; 143 | } 144 | .check-row-text{ 145 | font-size: $font-26; 146 | color: $dialog-text; 147 | margin-left: 20; 148 | } 149 | .dialog-large{ 150 | width: 700; 151 | background-color: #f0f3f5; 152 | } 153 | .text-large{ 154 | font-size: $font-40; 155 | color: $blue-ink; 156 | margin-top: 10; 157 | 158 | } 159 | .btn-gray-txt { 160 | color: $btn-gray; 161 | } 162 | 163 | -------------------------------------------------------------------------------- /platforms/android/WeexFrameworkWrapper/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | //apply plugin: 'eros-revan' 3 | 4 | android { 5 | compileSdkVersion 25 6 | buildToolsVersion '26.0.2' 7 | flavorDimensions 'default' 8 | defaultConfig { 9 | applicationId APPLICATION_ID 10 | minSdkVersion 16 11 | targetSdkVersion 25 12 | versionCode 1 13 | versionName "1.0" 14 | multiDexEnabled true 15 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 16 | javaCompileOptions.annotationProcessorOptions.includeCompileClasspath = true 17 | ndk { 18 | abiFilters "x86" 19 | abiFilters "armeabi" 20 | } 21 | } 22 | 23 | signingConfigs { 24 | eros { 25 | keyAlias 'eros签名实例' 26 | keyPassword 'erosdemo' 27 | storeFile file('../eros_demo.jks') 28 | storePassword 'erosdemo' 29 | v2SigningEnabled false 30 | } 31 | } 32 | 33 | 34 | buildTypes { 35 | release { 36 | minifyEnabled false 37 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 38 | signingConfig signingConfigs.eros 39 | manifestPlaceholders=[ 40 | GETUI_APP_ID:GETUI_APPID, 41 | GETUI_APP_KEY:GETUI_APPKEY, 42 | GETUI_APP_SECRET:GETTUI_APPSECRET, 43 | APP_ID:APPLICATION_ID 44 | ] 45 | } 46 | 47 | debug { 48 | minifyEnabled false 49 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 50 | signingConfig signingConfigs.eros 51 | manifestPlaceholders=[ 52 | GETUI_APP_ID:GETUI_APPID, 53 | GETUI_APP_KEY:GETUI_APPKEY, 54 | GETUI_APP_SECRET:GETTUI_APPSECRET, 55 | APP_ID:APPLICATION_ID 56 | ] 57 | } 58 | 59 | } 60 | 61 | lintOptions { 62 | checkReleaseBuilds false 63 | // Or, if you prefer, you can continue to check for errors in release builds, 64 | // but continue the build even when errors are found: 65 | abortOnError false 66 | } 67 | 68 | 69 | productFlavors { 70 | samplechannel{ 71 | dimension 'default' 72 | } 73 | 74 | yingyongbao{ 75 | dimension 'default' 76 | } 77 | } 78 | productFlavors.all { 79 | flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name] 80 | } 81 | 82 | } 83 | 84 | repositories { 85 | mavenCentral() 86 | google() 87 | } 88 | 89 | 90 | dependencies { 91 | compile fileTree(include: ['*.jar'], dir: 'libs') 92 | androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 93 | exclude group: 'com.android.support', module: 'support-annotations' 94 | }) 95 | compile "com.android.support:support-v4:${PROJECT_SUPPORTLIBVERSION}" 96 | testCompile 'junit:junit:4.12' 97 | //eros base 98 | implementation 'com.github.bmfe.eros-nexus:nexus:0.0.6' 99 | implementation 'com.github.bmfe:WeexErosFramework:0.0.6' 100 | 101 | //eros plugin 102 | implementation 'com.github.bmfe:eros-plugin-android-amap:0.0.2' 103 | implementation 'com.github.bmfe:eros-plugin-android-getui:0.0.2' 104 | implementation 'com.github.bmfe:eros-plugin-android-wxshare:0.0.2' 105 | implementation 'com.github.bmfe:eros-plugin-android-wxpay:0.0.2' 106 | } 107 | -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros.xcodeproj/xcshareddata/xcschemes/WeexEros.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 31 | 32 | 33 | 34 | 40 | 41 | 42 | 43 | 44 | 45 | 56 | 58 | 64 | 65 | 66 | 67 | 68 | 69 | 75 | 77 | 83 | 84 | 85 | 86 | 88 | 89 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /src/js/pages/yanxuanDemo/home/block2.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {{head.tlt}} 6 | 查看全部 > 7 | 8 | 9 | 10 | {{head.tlt}} 11 | 查看全部 > 12 | 13 | 14 | 15 | 16 | 17 | 18 | {{i.tlt}} 19 | {{i.info}} 20 | ¥{{i.price}} 21 | 22 | 23 | 查看全部 24 | 25 | 26 | 27 | 28 | 43 | -------------------------------------------------------------------------------- /src/js/pages/yanxuanDemo/common/refresh.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 好 6 | 的 7 | 生 8 | 活 9 | 没 10 | 那 11 | 么 12 | 贵 13 | 14 | 15 | 16 | 86 | -------------------------------------------------------------------------------- /src/js/pages/yanxuanDemo/home/topChannel.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {{item.name}} 6 | 7 | 8 | 全部频道 9 | 10 | 11 | {{channelList[index*4 + rowIndex].name}} 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 117 | -------------------------------------------------------------------------------- /platforms/ios/WeexEros/WeexEros/Base.lproj/Launch Screen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | --------------------------------------------------------------------------------