diff --git a/.babelrc b/.babelrc index b061392b0..c72eeb3a2 100644 --- a/.babelrc +++ b/.babelrc @@ -1,9 +1,12 @@ { "presets": [ - "es2015" + [ + "es2015", + { "modules": false } + ] ], "plugins": [ "transform-runtime", "transform-vue-jsx" ] -} +} \ No newline at end of file diff --git a/README.md b/README.md index b4596c24d..2a90cd0c1 100644 --- a/README.md +++ b/README.md @@ -9,62 +9,76 @@ [![Build Status](https://travis-ci.org/youzan/vant.svg?branch=master)](https://travis-ci.org/youzan/vant) [![Coverage Status](https://img.shields.io/codecov/c/github/youzan/vant/dev.svg)](https://codecov.io/github/youzan/vant?branch=dev) [![npm version](https://img.shields.io/npm/v/vant.svg?style=flat)](https://www.npmjs.com/package/vant) [![downloads](https://img.shields.io/npm/dt/vant.svg)](https://www.npmjs.com/package/vant) -## 一、安装 +[访问中文版](./README.zh-CN.md) + +## Install ```shell npm i -S vant ``` -## 二、使用 +## Usage + +### Use [babel-plugin-import](https://github.com/ant-design/babel-plugin-import) (Recommended) + + ```js + // .babelrc or babel-loader option + { + "plugins": [ + ["import", { "libraryName": "vant", "style": true }] + ] + } + ``` + + Then you can import components from vant, equivalent to import manually below. + + ```js + // import js and css modularly, parsed by babel-plugin-import + import { Button } from 'vant'; + ``` + +### Manually import + + ```jsx + import { Button } from 'vant'; + import 'vant/lib/vant-css/button.css'; + ``` -### 1. 导入所有组件 +### Import all components ```javascript import Vue from 'vue'; import vant from 'vant'; -// 你也可以使用自己的主题 import 'vant/lib/vant-css/index.css'; Vue.use(vant); ``` -### 2. 按需导入组件 +## Development -```javascript -import Vue from 'vue'; -import { Button, Cell } from 'vant'; -import 'vant/lib/vant-css/button.css'; -import 'vant/lib/vant-css/cell.css'; - -Vue.component(Button.name, Button); -Vue.component(Cell.name, Cell); -``` - -## 三、开发 - -### 1. 新建一个组件 +### Add a new component ```shell make init componentName ``` -### 2. 示例预览 +### Start coding -在`docs/nav.config.json`文件里合适的地方写入组件声明,根据组件类型(JS组件,CSS组件,Form等)进行区分 在`docs/examples-docs`目录里新建同名的md文件,如`waterfall.md`,在项目的根目录下执行以下命令,启动server: +Start development mode: ```shell npm run dev ``` -浏览器访问[http://localhost:8080](http://localhost:8080)就可以看到所有组件的示例了。 +Visit [http://localhost:8080](http://localhost:8080) to see an example of all components. -## 四、手机预览 +## Preview -可以手机扫码以下二维码访问手机端demo: +You can scan the following QR code to access the demo: ![zanui_vue_mobile_qrcode](https://img.yzcdn.cn/v2/image/youzanyun/zanui/pc/zanui_vue_mobile_preview_03.png) -## 五、开源协议 +## LICENSE -本项目基于 [MIT](https://zh.wikipedia.org/wiki/MIT%E8%A8%B1%E5%8F%AF%E8%AD%89) 协议,请自由地享受和参与开源。 +[MIT](https://zh.wikipedia.org/wiki/MIT%E8%A8%B1%E5%8F%AF%E8%AD%89) diff --git a/README.zh-CN.md b/README.zh-CN.md new file mode 100644 index 000000000..6cb129656 --- /dev/null +++ b/README.zh-CN.md @@ -0,0 +1,82 @@ +

+ 有赞logo + +

+

+ 项目logo +

+

A Vue.js 2.0 Mobile UI at YouZan

+ +[![Build Status](https://travis-ci.org/youzan/vant.svg?branch=master)](https://travis-ci.org/youzan/vant) [![Coverage Status](https://img.shields.io/codecov/c/github/youzan/vant/dev.svg)](https://codecov.io/github/youzan/vant?branch=dev) [![npm version](https://img.shields.io/npm/v/vant.svg?style=flat)](https://www.npmjs.com/package/vant) [![downloads](https://img.shields.io/npm/dt/vant.svg)](https://www.npmjs.com/package/vant) + +## 一、安装 + +```shell +npm i -S vant +``` + +## 二、使用 + + +### 使用 [babel-plugin-import](https://github.com/ant-design/babel-plugin-import) (推荐) + + ```js + // .babelrc or babel-loader option + { + "plugins": [ + ["import", { "libraryName": "vant", "style": true }] + ] + } + ``` + +   接着你可以直接引入 vant 组件,等价于下方的按需引入组件 + + ```js +   // 模块化地引入 js 和 css, 通过 babel-plugin-import 插件解析 +   import { Button } from 'vant'; + ``` + +### 按需引入组件 + + ```jsx + import { Button } from 'vant/lib/button'; + import 'vant/lib/vant-css/button.css'; + ``` + +### 导入所有组件 + +```javascript +import Vue from 'vue'; +import vant from 'vant'; +import 'vant/lib/vant-css/index.css'; + +Vue.use(vant); +``` + +## 三、开发 + +### 1. 新建一个组件 + +```shell +make init componentName +``` + +### 2. 示例预览 + +在`docs/nav.config.json`文件里合适的地方写入组件声明,根据组件类型(JS组件,CSS组件,Form等)进行区分 在`docs/examples-docs`目录里新建同名的md文件,如`waterfall.md`,在项目的根目录下执行以下命令,启动server: + +```shell +npm run dev +``` + +浏览器访问[http://localhost:8080](http://localhost:8080)就可以看到所有组件的示例了。 + +## 四、手机预览 + +可以手机扫码以下二维码访问手机端demo: + +![zanui_vue_mobile_qrcode](https://img.yzcdn.cn/v2/image/youzanyun/zanui/pc/zanui_vue_mobile_preview_03.png) + +## 五、开源协议 + +本项目基于 [MIT](https://zh.wikipedia.org/wiki/MIT%E8%A8%B1%E5%8F%AF%E8%AD%89) 协议,请自由地享受和参与开源。 diff --git a/build/bin/build-entry.js b/build/bin/build-entry.js index b70e79e86..db939e763 100644 --- a/build/bin/build-entry.js +++ b/build/bin/build-entry.js @@ -3,18 +3,23 @@ var fs = require('fs'); var render = require('json-templater/string'); var uppercamelcase = require('uppercamelcase'); var path = require('path'); -var chalk = require('chalk'); var OUTPUT_PATH = path.join(__dirname, '../../src/index.js'); var IMPORT_TEMPLATE = 'import {{name}} from \'../packages/{{package}}/index.js\';'; -var ISNTALL_COMPONENT_TEMPLATE = ' Vue.component({{name}}.name, {{name}});'; +var ISNTALL_COMPONENT_TEMPLATE = ' {{name}}'; var MAIN_TEMPLATE = `{{include}} +const version = '{{version}}'; +const components = [ +{{components}} +]; + const install = function(Vue) { - /* istanbul ignore if */ if (install.installed) return; -{{install}} + components.forEach(component => { + Vue.component(component.name, component); + }); }; /* istanbul ignore if */ @@ -22,9 +27,14 @@ if (typeof window !== 'undefined' && window.Vue) { install(window.Vue); } -module.exports = { +export { install, - version: '{{version}}', + version, +{{list}} +}; +export default { + install, + version, {{list}} }; `; @@ -66,11 +76,11 @@ ComponentNames.forEach(name => { var template = render(MAIN_TEMPLATE, { include: includeComponentTemplate.join('\n'), - install: installTemplate.join('\n'), - version: process.env.VERSION || require('../../package.json').version, - list: listTemplate.join(',\n') + list: listTemplate.join(',\n'), + components: installTemplate.join(',\n') || ' ', + version: process.env.VERSION || require('../../package.json').version }); fs.writeFileSync(OUTPUT_PATH, template); -console.log(chalk.green('[build entry] DONE:' + OUTPUT_PATH)); +console.log('[build entry] DONE:' + OUTPUT_PATH); diff --git a/build/bin/build-lib.js b/build/bin/build-lib.js new file mode 100644 index 000000000..08155459a --- /dev/null +++ b/build/bin/build-lib.js @@ -0,0 +1,91 @@ +/** + * Build npm lib + * Steps: + * 1. 清理目录 + * 2. 构建 JS 入口文件 + * 3. 打包 JS 文件:vant.js && vant.min.js + * 4. 构建 CSS 文件:vant-css + * 5. 构建每个组件对应的 [component].js + * 6. 生成每个组件目录下的 style 入口 + * 7. 编译 utils + */ + +const fs = require('fs'); +const path = require('path'); +const components = require('../../components.json'); +const chalk = require('chalk'); +require('shelljs/global'); + +// clean dir +log('Starting', 'clean'); +exec('npm run clean --silent'); +log('Finished', 'clean'); + +// build entry +log('Starting', 'build:entry'); +exec('npm run build:file --silent'); +log('Finished', 'build:entry'); + +// lint +log('Starting', 'lint'); +exec('npm run lint --silent'); +log('Finished', 'lint'); + +// build vant.js +log('Starting', 'build:vant'); +exec('npm run build:vant --silent'); +log('Finished', 'build:vant'); + +// build [component].js +log('Starting', 'build:component'); +exec('npm run build:components --silent'); +log('Finished', 'build:component'); + +// build vant-css +log('Starting', 'build:vant-css'); +exec('npm run build:vant-css --silent'); +log('Finished', 'build:vant-css'); + +// build style entrys +log('Starting', 'build:style-entries'); +Object.keys(components).forEach((componentName) => { + const dir = path.join(__dirname, '../../lib/', componentName, '/style'); + const file = path.join(dir, 'index.js'); + const cssPath = path.join(__dirname, '../../lib/vant-css/', `${componentName}.css`); + const content = []; + if (fs.existsSync(cssPath)) { + content.push(`require('../../vant-css/${componentName}.css');`); + } + mkdir(dir); + writeFile(file, content.join('\n')); +}); +log('Finished', 'build:style-entries'); + +// build utils +log('Starting', 'build:utils'); +exec('npm run build:utils --silent'); +log('Finished', 'build:utils'); + +// helpers +function log(status, action, breakLine) { + const now = new Date(); + const clock = `${breakLine ? '\n' : ''}[${padZero(now.getHours())}:${padZero(now.getMinutes())}:${padZero(now.getSeconds())}]`; + console.log(`${chalk.gray(clock)} ${status} '${action ? chalk.cyan.bold(action ) : ''}'`); +} + +function padZero(num) { + return (num < 10 ? '0' : '') + num; +} + +function writeFile(pathname, content) { + if (!fs.existsSync(pathname)) { + fs.closeSync(fs.openSync(pathname, 'w')); + } + fs.writeFileSync(pathname, content, { encoding: 'utf8' }); +} + +function mkdir(pathname) { + if (!fs.existsSync(pathname)) { + fs.mkdirSync(pathname); + } +} diff --git a/build/genExamples.js b/build/genExamples.js index b9ecdb6fb..c668082f9 100644 --- a/build/genExamples.js +++ b/build/genExamples.js @@ -11,8 +11,6 @@ function extract(watch = false) { }); } -extract(); - -module.exports = function watch() { - extract(true); +module.exports = function watch(isProduction) { + extract(!isProduction); }; diff --git a/build/strip-tags.js b/build/strip-tags.js deleted file mode 100644 index bbb719c19..000000000 --- a/build/strip-tags.js +++ /dev/null @@ -1,34 +0,0 @@ -/*! - * strip-tags - * - * Copyright (c) 2015 Jon Schlinkert, contributors. - * Licensed under the MIT license. - */ - -'use strict'; - -var cheerio = require('cheerio'); - -exports.strip = function(str, tags) { - var $ = cheerio.load(str, {decodeEntities: false}); - - if (!tags || tags.length === 0) { - return str; - } - - tags = !Array.isArray(tags) ? [tags] : tags; - var len = tags.length; - - while (len--) { - $(tags[len]).remove(); - } - - return $.html(); -}; - -exports.fetch = function(str, tag) { - var $ = cheerio.load(str, {decodeEntities: false}); - if (!tag) return str; - - return $(tag).html(); -}; diff --git a/build/utils/postcss_pipe.js b/build/utils/postcss_pipe.js deleted file mode 100644 index f1bdbd8d1..000000000 --- a/build/utils/postcss_pipe.js +++ /dev/null @@ -1,29 +0,0 @@ -var config = { - 'bem': { - 'shortcuts': {'component': 'b', 'modifier': 'm', 'descendent': 'e'}, - 'separators': {'descendent': '__', 'modifier': '--'} - } -}; - -// https://github.com/trysound/postcss-easy-import -var partialImport = require('postcss-easy-import')(); - -// 这不是bem,虽然名字叫bem,其实它是suit -// https://github.com/saladcss/saladcss-bem -var bem = require('saladcss-bem')(config.bem); - -// https://github.com/jonathantneal/precss -var precss = require('precss')(); - -// https://github.com/postcss/autoprefixer -var autoprefixer = require('autoprefixer')(); - -module.exports = function (webpack) { - // 顺序很重要 - return [ - partialImport, - bem, - precss, - autoprefixer - ]; -}; diff --git a/build/webpack.build.js b/build/webpack.build.js index 6b3a3ad0d..0ce2bb610 100644 --- a/build/webpack.build.js +++ b/build/webpack.build.js @@ -1,13 +1,13 @@ -var webpack = require('webpack'); -var getPostcssPlugin = require('./utils/postcss_pipe'); -var config = require('./webpack.config.dev.js'); +const webpack = require('webpack'); +const config = require('./webpack.config.dev.js'); +const isMinify = process.argv.indexOf('-p') !== -1; config.entry = { 'vant': './src/index.js' }; config.output = { - filename: './lib/[name].js', + filename: isMinify ? './lib/[name].min.js' : './lib/[name].js', library: 'vant', libraryTarget: 'umd', umdNamedDefine: true @@ -30,18 +30,13 @@ config.plugins = [ minimize: true, debug: false, options: { - postcss: getPostcssPlugin, - babel: { - presets: ['es2015'], - plugins: ['transform-runtime', 'transform-vue-jsx'] - }, vue: { autoprefixer: false, - preserveWhitespace: false, - postcss: getPostcssPlugin + preserveWhitespace: false } } - }) + }), + new webpack.optimize.ModuleConcatenationPlugin() ]; delete config.devtool; diff --git a/build/webpack.build.min.js b/build/webpack.build.min.js deleted file mode 100644 index d9cdcfaa7..000000000 --- a/build/webpack.build.min.js +++ /dev/null @@ -1,20 +0,0 @@ -var webpack = require('webpack'); -var config = require('./webpack.build.js'); - -config.entry = { - 'index': './src/index.js' -}; - -config.plugins = config.plugins.concat([ - new webpack.optimize.UglifyJsPlugin({ - compress: { - warnings: false - }, - output: { - comments: false - }, - sourceMap: false - }) -]); - -module.exports = config; diff --git a/build/webpack.components.js b/build/webpack.components.js index b0b2b91e2..d5a3c18fb 100644 --- a/build/webpack.components.js +++ b/build/webpack.components.js @@ -1,10 +1,16 @@ -var path = require('path'); -var Components = require('../components.json'); -var config = require('./webpack.build.js'); +const path = require('path'); +const Components = require('../components.json'); +const config = require('./webpack.build.js'); +const webpack = require('webpack'); delete config.devtool; -config.entry = Components; +const entry = {}; +Object.keys(Components).forEach(key => { + entry[key + '/index'] = Components[key]; +}); + +config.entry = entry; config.externals = { vue: { @@ -18,8 +24,8 @@ config.externals = { config.output = { path: path.join(__dirname, '../lib'), filename: '[name].js', - libraryTarget: 'umd', - umdNamedDefine: true + libraryExport: "default", + libraryTarget: 'umd' }; module.exports = config; diff --git a/build/webpack.config.dev.js b/build/webpack.config.dev.js index 4294b858c..89ae7be1f 100644 --- a/build/webpack.config.dev.js +++ b/build/webpack.config.dev.js @@ -1,44 +1,19 @@ -var webpack = require('webpack'); -var path = require('path'); -var slugify = require('transliteration').slugify; -var striptags = require('./strip-tags'); -var ExtractTextPlugin = require('extract-text-webpack-plugin'); -var getPostcssPlugin = require('./utils/postcss_pipe'); -var ProgressBarPlugin = require('progress-bar-webpack-plugin'); -var HtmlWebpackPlugin = require('html-webpack-plugin'); -var OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin'); -var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin') +const webpack = require('webpack'); +const path = require('path'); +const ExtractTextPlugin = require('extract-text-webpack-plugin'); +const ProgressBarPlugin = require('progress-bar-webpack-plugin'); +const HtmlWebpackPlugin = require('html-webpack-plugin'); +const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin'); +const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin'); const isProduction = process.env.NODE_ENV === 'production'; -const watchExample = require('./genExamples'); - -if (!isProduction) { - watchExample(); -} - -var StyleExtractPlugin; -if (process.env.NODE_ENV === 'production') { - StyleExtractPlugin = new ExtractTextPlugin('[name].[hash:8].css'); -} else { - StyleExtractPlugin = new ExtractTextPlugin('[name].css'); -} - -function convert(str) { - str = str.replace(/(&#x)(\w{4});/gi, function($0) { - return String.fromCharCode(parseInt(encodeURIComponent($0).replace(/(%26%23x)(\w{4})(%3B)/g, '$2'), 16)); - }); - return str; -} - -function wrap(render) { - return function() { - return render.apply(this, arguments) - .replace(/\
`; + render: function(tokens, idx) { + return tokens[idx].nesting === 1 + ? `
` + :`
\n`; } - return `
\n`; } - }] + ] ], preprocess: function(MarkdownIt, source) { - MarkdownIt.renderer.rules.table_open = function() { - return ''; - }; + MarkdownIt.renderer.rules.table_open = () => '
'; return source; } } @@ -158,9 +131,16 @@ module.exports = { filename: 'examples.html', inject: true }), + new webpack.optimize.CommonsChunkPlugin({ + name: 'vendor', + minChunks: 2 + }), new webpack.HotModuleReplacementPlugin(), new OptimizeCssAssetsPlugin(), - StyleExtractPlugin, + new ExtractTextPlugin({ + filename: isProduction ? '[name].[hash:8].css' : '[name].css', + allChunks: true + }), new FriendlyErrorsPlugin() ] }; diff --git a/build/webpack.config.prod.js b/build/webpack.config.prod.js index d4a45855b..204bf81a5 100644 --- a/build/webpack.config.prod.js +++ b/build/webpack.config.prod.js @@ -6,9 +6,10 @@ var devConfig = require('./webpack.config.dev.js'); module.exports = merge(devConfig, { output: { path: path.join(__dirname, '../docs/dist'), - publicPath: 'https://b.yzcdn.cn/zanui/vue', + publicPath: 'https://b.yzcdn.cn/zanui/vue/', filename: '[name].[hash:8].js', - umdNamedDefine: true + umdNamedDefine: true, + chunkFilename: 'async.[name].[chunkhash:8].js' }, devtool: false, plugins: [ diff --git a/docs/assets/docs.css b/docs/assets/docs.css deleted file mode 100644 index bbcf5edb1..000000000 --- a/docs/assets/docs.css +++ /dev/null @@ -1,206 +0,0 @@ -html, body, div, span, applet, object, iframe, -h1, h2, h3, h4, h5, h6, p, blockquote, pre, -a, abbr, acronym, address, big, cite, code, -del, dfn, em, img, ins, kbd, q, s, samp, -small, strike, strong, sub, sup, tt, var, -b, u, i, center, -dl, dt, dd, ol, ul, li, -fieldset, form, label, legend, -table, caption, tbody, tfoot, thead, tr, th, td, -article, aside, canvas, details, embed, -figure, figcaption, footer, header, hgroup, -menu, nav, output, ruby, section, summary, -time, mark, audio, video { - margin: 0; - padding: 0; - border: 0; - font-size: 100%; - vertical-align: baseline; -} - -body { - font-family: 'Helvetica Neue',Helvetica,'PingFang SC','Hiragino Sans GB','Microsoft YaHei',SimSun,sans-serif; - font-weight: 400; - -webkit-font-smoothing: antialiased; - background-color: #f8f8f8; -} - -a { - color: #4078c0; - text-decoration: none; -} - -button, input, select, textarea { - font-family: inherit; - font-size: inherit; - line-height: inherit; - color: inherit; -} - -ul, ol { - list-style: none; -} - -code.hljs { - line-height: 1.5; - font-family: Menlo, Monaco, Consolas, Courier, monospace; - font-size: 12px; - padding: 20px; - background-color: #f8f8f8; - border: solid 1px #E5E5E5; - margin-bottom: 25px; - border-radius: 4px; - -webkit-font-smoothing: auto; -} - -.clearfix { - &::before { - display: table; - content: ""; - } - - &::after { - display: table; - content: ""; - clear: both; - } -} - -.main-content { - margin: 130px 20px 40px; - padding-top: 20px; -} - -.page-container { - background-color: #fff; - position: relative; - display: flex; - width: 100%; - overflow: hidden; -} - -.page-content { - box-sizing: border-box; - flex: 1; - - section { - padding: 0 40px; - - > h1, - > h2, - > h3, - > h4, - > h5, - > h6 { - color: #333; - line-height: 1.5; - margin: 20px 0; - font-weight: normal; - - .header-anchor { - float: left; - margin-left: -20px; - opacity: 0; - cursor: pointer; - - &:hover { - opacity: .4; - } - } - } - - > h1 { - font-size: 40px; - } - - > h2 { - font-size: 36px; - } - - > h3 { - font-size: 30px; - } - - > h4 { - font-size: 24px; - } - - > h5 { - font-size: 14px - } - - > h6 { - font-size: 14px; - color: #666; - } - - > p { - font-size: 14px; - line-height: 20px; - color: #666; - margin: 14px 0; - } - - > ul li, - > ol li { - color: #666; - font-size: 14px; - line-height: 20px; - margin: 10px 0 10px 20px; - padding-left: 20px; - position: relative; - - &::before { - content: ''; - position: absolute; - width: 8px; - height: 8px; - box-sizing: border-box; - border: 2px solid #999; - border-radius: 50%; - top: 6px; - left: 0; - } - - li { - margin-left: 0; - } - } - } - - p > code, - .table code, - li > code { - background-color: #F2F2F2; - display: inline-block; - border: 1px solid #E5E5E5; - padding: 2px 4px; - color: #333; - margin: 0 3px; - } -} - -.table { - border-collapse: collapse; - width: 100%; - background-color: #fff; - color: #333; - font-size: 14px; - margin-bottom: 45px; - - th { - text-align: left; - border: 1px solid #E5E5E5; - background-color: #F2F2F2; - padding: 10px; - - &:first-child { - padding-left: 10px; - } - } - - td { - border: 1px solid #E5E5E5; - padding: 10px; - } -} diff --git a/docs/examples-docs/actionsheet.md b/docs/examples-docs/actionsheet.md index d560ccf69..bb7a56f26 100644 --- a/docs/examples-docs/actionsheet.md +++ b/docs/examples-docs/actionsheet.md @@ -1,27 +1,21 @@ diff --git a/docs/src/components/example-block.vue b/docs/src/components/example-block.vue deleted file mode 100644 index 742290f02..000000000 --- a/docs/src/components/example-block.vue +++ /dev/null @@ -1,14 +0,0 @@ - - - diff --git a/docs/src/components/mobile-computed.js b/docs/src/components/mobile-computed.js deleted file mode 100644 index 9e6d5c5e9..000000000 --- a/docs/src/components/mobile-computed.js +++ /dev/null @@ -1,19 +0,0 @@ -import MobilePopup from './mobile-popup.vue'; - -export default { - components: { - MobilePopup - }, - - computed: { - mobileUrl() { - return '/zanui/vue/examples' + location.pathname.slice(10); - } - }, - - data() { - return { - mobileShow: false - }; - } -}; diff --git a/docs/src/components/mobile-nav.vue b/docs/src/components/mobile-nav.vue index bb76f9136..c9b6e7de6 100644 --- a/docs/src/components/mobile-nav.vue +++ b/docs/src/components/mobile-nav.vue @@ -62,82 +62,79 @@ export default { }; - diff --git a/docs/src/components/mobile-popup.vue b/docs/src/components/mobile-popup.vue deleted file mode 100644 index cdd637d1f..000000000 --- a/docs/src/components/mobile-popup.vue +++ /dev/null @@ -1,51 +0,0 @@ - - - - - diff --git a/docs/src/doc.config.js b/docs/src/doc.config.js index b58bf3a99..d77c272c0 100644 --- a/docs/src/doc.config.js +++ b/docs/src/doc.config.js @@ -30,6 +30,10 @@ module.exports = { "path": "/changelog", "title": "更新日志", noExample: true + }, + { + "title": "业务组件", + "link": "/zanui/captain/component/quickstart" } ] } diff --git a/docs/src/index.js b/docs/src/index.js index 2f7c3b729..4997a8d15 100644 --- a/docs/src/index.js +++ b/docs/src/index.js @@ -2,17 +2,8 @@ import Vue from 'vue'; import VueRouter from 'vue-router'; import App from './ExamplesDocsApp'; import routes from './router.config'; -import ZanUI from 'src/index.js'; import ZanDoc from 'zan-doc'; -import packageJson from '../../package.json'; import DemoBlock from './components/demo-block'; - -const global = { - version: packageJson.version -}; -window._global = global; - -import '../assets/docs.css'; import 'packages/vant-css/src/index.css'; function isMobile() { @@ -22,11 +13,7 @@ function isMobile() { } Vue.use(VueRouter); -Vue.use(ZanUI); Vue.use(ZanDoc); -Vue.use(ZanUI.Lazyload, { - lazyComponent: true -}); Vue.component('demo-block', DemoBlock); const routesConfig = routes(); diff --git a/docs/src/router.config.js b/docs/src/router.config.js index 19d7ad0a3..b49e01ca1 100644 --- a/docs/src/router.config.js +++ b/docs/src/router.config.js @@ -1,4 +1,6 @@ const navs = require('./doc.config')['zh-CN'].nav; +import componentDocs from '../examples-dist/entry-docs'; +import componentDemos from '../examples-dist/entry-demos'; const registerRoute = (isExample) => { let route = []; @@ -9,31 +11,26 @@ const registerRoute = (isExample) => { if (nav.groups) { nav.groups.forEach(group => { - group.list.forEach(nav => { - addRoute(nav); - }); + group.list.forEach(addRoute); }); } else if (nav.children) { - nav.children.forEach(nav => { - addRoute(nav); - }); + nav.children.forEach(addRoute); } else { addRoute(nav); } }); function addRoute(page) { - const component = isExample - ? require(`../examples-dist${page.path}.vue`) - : require(`../examples-docs${page.path}.md`); - route.push({ - path: '/component' + page.path, - component: component.default || component - }); + const { path } = page; + if (path) { + const name = path.replace('/', ''); + route.push({ + path: '/component' + path, + component: isExample ? componentDemos[name] : componentDocs[name] + }); + } } - // console.log(route); - return route; }; diff --git a/package.json b/package.json index a984d1d87..c26cf675e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vant", - "version": "0.6.6", + "version": "0.7.9", "description": "有赞vue wap组件库", "main": "lib/vant.js", "style": "lib/vant-css/index.css", @@ -12,17 +12,16 @@ ], "scripts": { "bootstrap": "yarn || npm i", - "dev": "npm run build:file && webpack-dev-server --inline --hot --config build/webpack.config.dev.js --content-base ./", + "dev": "npm run build:file && webpack-dev-server --inline --config build/webpack.config.dev.js --content-base ./", "build:file": "node build/bin/build-entry.js", - "build:utils": "cross-env BABEL_ENV=utils babel src --out-dir lib --ignore src/index.js", - "build:vant-css": "gulp build --gulpfile packages/vant-css/gulpfile.js && cp-cli packages/vant-css/lib lib/vant-css", - "build:components": "webpack --progress --hide-modules --config build/webpack.components.js", - "build:vant": "webpack --progress --hide-modules --config build/webpack.build.js && webpack --progress --hide-modules --config build/webpack.build.min.js", - "build:example": "node build/genExamples.js", + "build:utils": "cross-env BABEL_ENV=utils babel src --out-dir lib --ignore src/index.js --presets=es2015", + "build:components": "cross-env NODE_ENV=production webpack --progress --hide-modules --config build/webpack.components.js --color", + "build:vant-css": "gulp build --gulpfile packages/vant-css/gulpfile.js --color && cp -R packages/vant-css/lib/ lib/vant-css", + "build:vant": "cross-env NODE_ENV=production webpack --progress --hide-modules --color --config build/webpack.build.js && cross-env NODE_ENV=production webpack -p --progress --hide-modules --color --config build/webpack.build.js", "deploy": "npm run deploy:docs && npm run deploy:cdn && gh-pages -d docs/dist --remote youzan && rimraf docs/dist", "deploy:cdn": "superman cdn /zanui/vue docs/dist/*.js docs/dist/*.css", - "deploy:docs": "rimraf docs/dist && npm run build:example && cross-env NODE_ENV=production webpack --progress --hide-modules --config build/webpack.config.prod.js", - "dist": "npm run clean && npm run build:file && npm run lint && npm run build:vant && npm run build:components && npm run build:utils && npm run build:vant-css", + "deploy:docs": "rimraf docs/dist && cross-env NODE_ENV=production webpack --progress --hide-modules --config build/webpack.config.prod.js", + "dist": "node build/bin/build-lib.js", "clean": "rimraf lib && rimraf packages/*/lib", "lint": "felint lint src/**/*.js packages/**/*.{js,vue} build/**/*.js", "test": "karma start test/unit/karma.conf.js --single-run", @@ -43,98 +42,79 @@ "license": "ISC", "dependencies": { "raf.js": "0.0.4", - "vue-lazyload": "^1.0.3" + "vue-lazyload": "^1.0.6" }, "peerDependencies": { - "vue": "2.3.4" + "vue": "2.4.2" }, "devDependencies": { - "autoprefixer": "^6.7.5", - "avoriaz": "^2.0.0", + "autoprefixer": "^7.1.2", + "avoriaz": "2.0.0", "babel-cli": "^6.14.0", - "babel-core": "^6.17.0", - "babel-eslint": "^6.1.2", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^6.2.5", - "babel-plugin-module-resolver": "^2.2.0", + "babel-core": "^6.25.0", + "babel-loader": "^7.1.1", + "babel-plugin-module-resolver": "^2.7.1", "babel-plugin-syntax-jsx": "^6.18.0", "babel-plugin-transform-runtime": "^6.15.0", - "babel-plugin-transform-vue-jsx": "^3.3.0", + "babel-plugin-transform-vue-jsx": "^3.5.0", "babel-polyfill": "^6.23.0", "babel-preset-es2015": "^6.16.0", - "babel-runtime": "^6.11.0", - "chai": "^3.5.0", - "chalk": "^1.1.3", + "babel-runtime": "^6.25.0", + "chai": "^4.1.1", "cheerio": "^0.22.0", - "codecov": "^2.1.0", - "copy-webpack-plugin": "^4.0.1", - "cp-cli": "^1.0.2", - "cross-env": "^3.1.3", - "css-loader": "^0.24.0", - "decamelize": "^1.2.0", - "eslint-loader": "^1.7.1", - "eslint-plugin-vue": "^2.0.1", - "extract-text-webpack-plugin": "^2.0.0-beta.5", + "codecov": "^2.2.0", + "cross-env": "^5.0.5", + "css-loader": "^0.28.4", + "eslint-plugin-vue": "^2.1.0", + "extract-text-webpack-plugin": "2.1.2", "felint": "^0.5.0-alpha.3", - "file-loader": "^0.9.0", "file-save": "^0.2.0", "friendly-errors-webpack-plugin": "^1.6.1", - "gh-pages": "^0.12.0", + "gh-pages": "^1.0.0", "gulp": "^3.9.1", "gulp-util": "^3.0.8", - "highlight.js": "^9.8.0", - "html-loader": "^0.4.3", - "html-webpack-plugin": "^2.22.0", - "inject-loader": "^3.0.0-beta2", + "highlight.js": "^9.12.0", + "html-webpack-plugin": "^2.29.0", "isparta-loader": "^2.0.0", - "json-loader": "^0.5.4", "json-templater": "^1.0.4", - "karma": "^1.5.0", - "karma-chrome-launcher": "^2.0.0", + "karma": "^1.7.0", + "karma-chrome-launcher": "^2.2.0", "karma-coverage": "^1.1.1", "karma-mocha": "^1.3.0", "karma-phantomjs-launcher": "^1.0.4", "karma-sinon-chai": "^1.2.4", "karma-sourcemap-loader": "^0.3.7", - "karma-spec-reporter": "0.0.30", - "karma-webpack": "^2.0.2", - "lerna": "2.0.0-beta.31", - "lolex": "^1.5.1", - "markdown-it": "^6.1.1", - "markdown-it-anchor": "^2.5.0", + "karma-spec-reporter": "^0.0.31", + "karma-webpack": "^2.0.4", + "lerna": "^2.0.0", + "markdown-it": "^8.3.2", "markdown-it-container": "^2.0.0", - "mocha": "^3.2.0", - "optimize-css-assets-webpack-plugin": "^1.3.0", - "postcss": "^5.1.2", - "postcss-easy-import": "^2.0.0", - "postcss-loader": "^1.3.3", - "precss": "^1.4.0", - "prismjs": "^1.5.1", - "progress-bar-webpack-plugin": "^1.9.3", + "mocha": "^3.4.2", + "optimize-css-assets-webpack-plugin": "^3.0.0", + "postcss": "^6.0.8", + "postcss-easy-import": "^2.1.0", + "postcss-loader": "^2.0.6", + "precss": "^2.0.0", + "progress-bar-webpack-plugin": "^1.10.0", "rimraf": "^2.5.4", - "run-sequence": "^1.2.2", - "saladcss-bem": "^0.0.1", - "sinon": "^1.17.7", - "sinon-chai": "^2.8.0", - "style-loader": "^0.13.1", - "theaterjs": "^3.0.0", - "transliteration": "^1.1.11", - "uppercamelcase": "^1.1.0", - "url-loader": "^0.5.7", - "vue": "2.3.4", + "run-sequence": "^2.1.0", + "sinon": "^2.4.1", + "sinon-chai": "^2.12.0", + "style-loader": "^0.18.2", + "uppercamelcase": "^3.0.0", + "url-loader": "^0.5.9", + "vue": "^2.4.2", "vue-hot-reload-api": "^2.1.0", "vue-html-loader": "^1.2.4", - "vue-loader": "^12.0.0", - "vue-markdown-loader": "^1.0.0", - "vue-router": "^2.5.0", + "vue-loader": "^13.0.4", + "vue-markdown-loader": "^2.0.0", + "vue-router": "^2.7.0", "vue-style-loader": "^3.0.0", - "vue-template-compiler": "2.3.4", - "vue-template-es2015-compiler": "^1.4.2", - "webpack": "^2.2.1", - "webpack-dev-server": "^1.16.3", - "webpack-merge": "^2.0.0", - "webpack-node-externals": "^1.5.4", - "webpack-vendor-chunk-plugin": "^1.0.0", - "zan-doc": "^0.1.0" + "vue-template-compiler": "^2.4.2", + "vue-template-es2015-compiler": "^1.5.3", + "webpack": "^3.5.1", + "webpack-dev-server": "^2.7.1", + "webpack-merge": "^4.1.0", + "zan-doc": "0.1.12" } } diff --git a/packages/actionsheet/README.md b/packages/actionsheet/README.md index 4c6172563..e69de29bb 100644 --- a/packages/actionsheet/README.md +++ b/packages/actionsheet/README.md @@ -1,26 +0,0 @@ -# @youzan/<%= name %> - -!!! 请在此处填写你的文档最简单描述 !!! - -[![version][version-image]][download-url] -[![download][download-image]][download-url] - -[version-image]: http://npm.qima-inc.com/badge/v/@youzan/<%= name %>.svg?style=flat-square -[download-image]: http://npm.qima-inc.com/badge/d/@youzan/<%= name %>.svg?style=flat-square -[download-url]: http://npm.qima-inc.com/package/@youzan/<%= name %> - -## Demo - -## Usage - -## API - -| 参数 | 说明 | 类型 | 默认值 | 可选值 | -|-----------|-----------|-----------|-------------|-------------| -| className | 自定义额外类名 | string | '' | '' | - - - - -## License -[MIT](https://opensource.org/licenses/MIT) diff --git a/packages/badge/README.md b/packages/badge/README.md index 4c6172563..e69de29bb 100644 --- a/packages/badge/README.md +++ b/packages/badge/README.md @@ -1,26 +0,0 @@ -# @youzan/<%= name %> - -!!! 请在此处填写你的文档最简单描述 !!! - -[![version][version-image]][download-url] -[![download][download-image]][download-url] - -[version-image]: http://npm.qima-inc.com/badge/v/@youzan/<%= name %>.svg?style=flat-square -[download-image]: http://npm.qima-inc.com/badge/d/@youzan/<%= name %>.svg?style=flat-square -[download-url]: http://npm.qima-inc.com/package/@youzan/<%= name %> - -## Demo - -## Usage - -## API - -| 参数 | 说明 | 类型 | 默认值 | 可选值 | -|-----------|-----------|-----------|-------------|-------------| -| className | 自定义额外类名 | string | '' | '' | - - - - -## License -[MIT](https://opensource.org/licenses/MIT) diff --git a/packages/button/README.md b/packages/button/README.md index 4c6172563..e69de29bb 100644 --- a/packages/button/README.md +++ b/packages/button/README.md @@ -1,26 +0,0 @@ -# @youzan/<%= name %> - -!!! 请在此处填写你的文档最简单描述 !!! - -[![version][version-image]][download-url] -[![download][download-image]][download-url] - -[version-image]: http://npm.qima-inc.com/badge/v/@youzan/<%= name %>.svg?style=flat-square -[download-image]: http://npm.qima-inc.com/badge/d/@youzan/<%= name %>.svg?style=flat-square -[download-url]: http://npm.qima-inc.com/package/@youzan/<%= name %> - -## Demo - -## Usage - -## API - -| 参数 | 说明 | 类型 | 默认值 | 可选值 | -|-----------|-----------|-----------|-------------|-------------| -| className | 自定义额外类名 | string | '' | '' | - - - - -## License -[MIT](https://opensource.org/licenses/MIT) diff --git a/packages/card/README.md b/packages/card/README.md index 4c6172563..e69de29bb 100644 --- a/packages/card/README.md +++ b/packages/card/README.md @@ -1,26 +0,0 @@ -# @youzan/<%= name %> - -!!! 请在此处填写你的文档最简单描述 !!! - -[![version][version-image]][download-url] -[![download][download-image]][download-url] - -[version-image]: http://npm.qima-inc.com/badge/v/@youzan/<%= name %>.svg?style=flat-square -[download-image]: http://npm.qima-inc.com/badge/d/@youzan/<%= name %>.svg?style=flat-square -[download-url]: http://npm.qima-inc.com/package/@youzan/<%= name %> - -## Demo - -## Usage - -## API - -| 参数 | 说明 | 类型 | 默认值 | 可选值 | -|-----------|-----------|-----------|-------------|-------------| -| className | 自定义额外类名 | string | '' | '' | - - - - -## License -[MIT](https://opensource.org/licenses/MIT) diff --git a/packages/cell-swipe/index.js b/packages/cell-swipe/index.js index bb9559c21..075cbb40d 100644 --- a/packages/cell-swipe/index.js +++ b/packages/cell-swipe/index.js @@ -1,2 +1,3 @@ -import CellSwipe from './components/CellSwipe.vue' +import CellSwipe from './src/cell-swipe'; + export default CellSwipe; diff --git a/packages/cell-swipe/components/CellSwipe.vue b/packages/cell-swipe/src/cell-swipe.vue similarity index 100% rename from packages/cell-swipe/components/CellSwipe.vue rename to packages/cell-swipe/src/cell-swipe.vue diff --git a/packages/cell/README.md b/packages/cell/README.md index 4c6172563..e69de29bb 100644 --- a/packages/cell/README.md +++ b/packages/cell/README.md @@ -1,26 +0,0 @@ -# @youzan/<%= name %> - -!!! 请在此处填写你的文档最简单描述 !!! - -[![version][version-image]][download-url] -[![download][download-image]][download-url] - -[version-image]: http://npm.qima-inc.com/badge/v/@youzan/<%= name %>.svg?style=flat-square -[download-image]: http://npm.qima-inc.com/badge/d/@youzan/<%= name %>.svg?style=flat-square -[download-url]: http://npm.qima-inc.com/package/@youzan/<%= name %> - -## Demo - -## Usage - -## API - -| 参数 | 说明 | 类型 | 默认值 | 可选值 | -|-----------|-----------|-----------|-------------|-------------| -| className | 自定义额外类名 | string | '' | '' | - - - - -## License -[MIT](https://opensource.org/licenses/MIT) diff --git a/packages/checkbox/README.md b/packages/checkbox/README.md index 4c6172563..e69de29bb 100644 --- a/packages/checkbox/README.md +++ b/packages/checkbox/README.md @@ -1,26 +0,0 @@ -# @youzan/<%= name %> - -!!! 请在此处填写你的文档最简单描述 !!! - -[![version][version-image]][download-url] -[![download][download-image]][download-url] - -[version-image]: http://npm.qima-inc.com/badge/v/@youzan/<%= name %>.svg?style=flat-square -[download-image]: http://npm.qima-inc.com/badge/d/@youzan/<%= name %>.svg?style=flat-square -[download-url]: http://npm.qima-inc.com/package/@youzan/<%= name %> - -## Demo - -## Usage - -## API - -| 参数 | 说明 | 类型 | 默认值 | 可选值 | -|-----------|-----------|-----------|-------------|-------------| -| className | 自定义额外类名 | string | '' | '' | - - - - -## License -[MIT](https://opensource.org/licenses/MIT) diff --git a/packages/col/README.md b/packages/col/README.md index 4c6172563..e69de29bb 100644 --- a/packages/col/README.md +++ b/packages/col/README.md @@ -1,26 +0,0 @@ -# @youzan/<%= name %> - -!!! 请在此处填写你的文档最简单描述 !!! - -[![version][version-image]][download-url] -[![download][download-image]][download-url] - -[version-image]: http://npm.qima-inc.com/badge/v/@youzan/<%= name %>.svg?style=flat-square -[download-image]: http://npm.qima-inc.com/badge/d/@youzan/<%= name %>.svg?style=flat-square -[download-url]: http://npm.qima-inc.com/package/@youzan/<%= name %> - -## Demo - -## Usage - -## API - -| 参数 | 说明 | 类型 | 默认值 | 可选值 | -|-----------|-----------|-----------|-------------|-------------| -| className | 自定义额外类名 | string | '' | '' | - - - - -## License -[MIT](https://opensource.org/licenses/MIT) diff --git a/packages/datetime-picker/README.md b/packages/datetime-picker/README.md index 4c6172563..e69de29bb 100644 --- a/packages/datetime-picker/README.md +++ b/packages/datetime-picker/README.md @@ -1,26 +0,0 @@ -# @youzan/<%= name %> - -!!! 请在此处填写你的文档最简单描述 !!! - -[![version][version-image]][download-url] -[![download][download-image]][download-url] - -[version-image]: http://npm.qima-inc.com/badge/v/@youzan/<%= name %>.svg?style=flat-square -[download-image]: http://npm.qima-inc.com/badge/d/@youzan/<%= name %>.svg?style=flat-square -[download-url]: http://npm.qima-inc.com/package/@youzan/<%= name %> - -## Demo - -## Usage - -## API - -| 参数 | 说明 | 类型 | 默认值 | 可选值 | -|-----------|-----------|-----------|-------------|-------------| -| className | 自定义额外类名 | string | '' | '' | - - - - -## License -[MIT](https://opensource.org/licenses/MIT) diff --git a/packages/datetime-picker/src/datetime-picker.vue b/packages/datetime-picker/src/datetime-picker.vue index 35153a3b1..5569efd63 100644 --- a/packages/datetime-picker/src/datetime-picker.vue +++ b/packages/datetime-picker/src/datetime-picker.vue @@ -5,6 +5,7 @@ :visible-item-count="visibleItemCount" @change="handlePickerChange" @confirm="handlePickerConfirm" + @cancel="$emit('cancel')" showToolbar> @@ -85,7 +86,6 @@ export default { if (!isEqual) this.innerValue = val; }, innerValue(val) { - console.log(val + '!!!'); this.updateColumnValue(val); this.$emit('input', val); } @@ -217,12 +217,11 @@ export default { isShortMonth(month) { return [4, 6, 9, 11].indexOf(month) > -1; }, - handlePickerConfirm(values) { + handlePickerConfirm() { this.$emit('confirm', this.innerValue); }, handlePickerChange(picker) { const values = picker.$children.filter(child => child.currentValue !== undefined).map(child => child.currentValue); - console.log(values); let value; if (this.type === 'time') { @@ -243,7 +242,7 @@ export default { } value = this.correctValue(value); this.innerValue = value; - console.log(value, this.innerValue); + this.$emit('change', picker); }, updateColumnValue(value) { let values = []; diff --git a/packages/dialog/README.md b/packages/dialog/README.md index 4c6172563..e69de29bb 100644 --- a/packages/dialog/README.md +++ b/packages/dialog/README.md @@ -1,26 +0,0 @@ -# @youzan/<%= name %> - -!!! 请在此处填写你的文档最简单描述 !!! - -[![version][version-image]][download-url] -[![download][download-image]][download-url] - -[version-image]: http://npm.qima-inc.com/badge/v/@youzan/<%= name %>.svg?style=flat-square -[download-image]: http://npm.qima-inc.com/badge/d/@youzan/<%= name %>.svg?style=flat-square -[download-url]: http://npm.qima-inc.com/package/@youzan/<%= name %> - -## Demo - -## Usage - -## API - -| 参数 | 说明 | 类型 | 默认值 | 可选值 | -|-----------|-----------|-----------|-------------|-------------| -| className | 自定义额外类名 | string | '' | '' | - - - - -## License -[MIT](https://opensource.org/licenses/MIT) diff --git a/packages/field/README.md b/packages/field/README.md index 4c6172563..e69de29bb 100644 --- a/packages/field/README.md +++ b/packages/field/README.md @@ -1,26 +0,0 @@ -# @youzan/<%= name %> - -!!! 请在此处填写你的文档最简单描述 !!! - -[![version][version-image]][download-url] -[![download][download-image]][download-url] - -[version-image]: http://npm.qima-inc.com/badge/v/@youzan/<%= name %>.svg?style=flat-square -[download-image]: http://npm.qima-inc.com/badge/d/@youzan/<%= name %>.svg?style=flat-square -[download-url]: http://npm.qima-inc.com/package/@youzan/<%= name %> - -## Demo - -## Usage - -## API - -| 参数 | 说明 | 类型 | 默认值 | 可选值 | -|-----------|-----------|-----------|-------------|-------------| -| className | 自定义额外类名 | string | '' | '' | - - - - -## License -[MIT](https://opensource.org/licenses/MIT) diff --git a/packages/icon/README.md b/packages/icon/README.md index 4c6172563..e69de29bb 100644 --- a/packages/icon/README.md +++ b/packages/icon/README.md @@ -1,26 +0,0 @@ -# @youzan/<%= name %> - -!!! 请在此处填写你的文档最简单描述 !!! - -[![version][version-image]][download-url] -[![download][download-image]][download-url] - -[version-image]: http://npm.qima-inc.com/badge/v/@youzan/<%= name %>.svg?style=flat-square -[download-image]: http://npm.qima-inc.com/badge/d/@youzan/<%= name %>.svg?style=flat-square -[download-url]: http://npm.qima-inc.com/package/@youzan/<%= name %> - -## Demo - -## Usage - -## API - -| 参数 | 说明 | 类型 | 默认值 | 可选值 | -|-----------|-----------|-----------|-------------|-------------| -| className | 自定义额外类名 | string | '' | '' | - - - - -## License -[MIT](https://opensource.org/licenses/MIT) diff --git a/packages/image-preview/README.md b/packages/image-preview/README.md index 4c6172563..e69de29bb 100644 --- a/packages/image-preview/README.md +++ b/packages/image-preview/README.md @@ -1,26 +0,0 @@ -# @youzan/<%= name %> - -!!! 请在此处填写你的文档最简单描述 !!! - -[![version][version-image]][download-url] -[![download][download-image]][download-url] - -[version-image]: http://npm.qima-inc.com/badge/v/@youzan/<%= name %>.svg?style=flat-square -[download-image]: http://npm.qima-inc.com/badge/d/@youzan/<%= name %>.svg?style=flat-square -[download-url]: http://npm.qima-inc.com/package/@youzan/<%= name %> - -## Demo - -## Usage - -## API - -| 参数 | 说明 | 类型 | 默认值 | 可选值 | -|-----------|-----------|-----------|-------------|-------------| -| className | 自定义额外类名 | string | '' | '' | - - - - -## License -[MIT](https://opensource.org/licenses/MIT) diff --git a/packages/lazyload/README.md b/packages/lazyload/README.md index 4c6172563..e69de29bb 100644 --- a/packages/lazyload/README.md +++ b/packages/lazyload/README.md @@ -1,26 +0,0 @@ -# @youzan/<%= name %> - -!!! 请在此处填写你的文档最简单描述 !!! - -[![version][version-image]][download-url] -[![download][download-image]][download-url] - -[version-image]: http://npm.qima-inc.com/badge/v/@youzan/<%= name %>.svg?style=flat-square -[download-image]: http://npm.qima-inc.com/badge/d/@youzan/<%= name %>.svg?style=flat-square -[download-url]: http://npm.qima-inc.com/package/@youzan/<%= name %> - -## Demo - -## Usage - -## API - -| 参数 | 说明 | 类型 | 默认值 | 可选值 | -|-----------|-----------|-----------|-------------|-------------| -| className | 自定义额外类名 | string | '' | '' | - - - - -## License -[MIT](https://opensource.org/licenses/MIT) diff --git a/packages/loading/README.md b/packages/loading/README.md index 4c6172563..e69de29bb 100644 --- a/packages/loading/README.md +++ b/packages/loading/README.md @@ -1,26 +0,0 @@ -# @youzan/<%= name %> - -!!! 请在此处填写你的文档最简单描述 !!! - -[![version][version-image]][download-url] -[![download][download-image]][download-url] - -[version-image]: http://npm.qima-inc.com/badge/v/@youzan/<%= name %>.svg?style=flat-square -[download-image]: http://npm.qima-inc.com/badge/d/@youzan/<%= name %>.svg?style=flat-square -[download-url]: http://npm.qima-inc.com/package/@youzan/<%= name %> - -## Demo - -## Usage - -## API - -| 参数 | 说明 | 类型 | 默认值 | 可选值 | -|-----------|-----------|-----------|-------------|-------------| -| className | 自定义额外类名 | string | '' | '' | - - - - -## License -[MIT](https://opensource.org/licenses/MIT) diff --git a/packages/panel/README.md b/packages/panel/README.md index 4c6172563..e69de29bb 100644 --- a/packages/panel/README.md +++ b/packages/panel/README.md @@ -1,26 +0,0 @@ -# @youzan/<%= name %> - -!!! 请在此处填写你的文档最简单描述 !!! - -[![version][version-image]][download-url] -[![download][download-image]][download-url] - -[version-image]: http://npm.qima-inc.com/badge/v/@youzan/<%= name %>.svg?style=flat-square -[download-image]: http://npm.qima-inc.com/badge/d/@youzan/<%= name %>.svg?style=flat-square -[download-url]: http://npm.qima-inc.com/package/@youzan/<%= name %> - -## Demo - -## Usage - -## API - -| 参数 | 说明 | 类型 | 默认值 | 可选值 | -|-----------|-----------|-----------|-------------|-------------| -| className | 自定义额外类名 | string | '' | '' | - - - - -## License -[MIT](https://opensource.org/licenses/MIT) diff --git a/packages/picker/README.md b/packages/picker/README.md index 4c6172563..e69de29bb 100644 --- a/packages/picker/README.md +++ b/packages/picker/README.md @@ -1,26 +0,0 @@ -# @youzan/<%= name %> - -!!! 请在此处填写你的文档最简单描述 !!! - -[![version][version-image]][download-url] -[![download][download-image]][download-url] - -[version-image]: http://npm.qima-inc.com/badge/v/@youzan/<%= name %>.svg?style=flat-square -[download-image]: http://npm.qima-inc.com/badge/d/@youzan/<%= name %>.svg?style=flat-square -[download-url]: http://npm.qima-inc.com/package/@youzan/<%= name %> - -## Demo - -## Usage - -## API - -| 参数 | 说明 | 类型 | 默认值 | 可选值 | -|-----------|-----------|-----------|-------------|-------------| -| className | 自定义额外类名 | string | '' | '' | - - - - -## License -[MIT](https://opensource.org/licenses/MIT) diff --git a/packages/popup/README.md b/packages/popup/README.md index 4c6172563..e69de29bb 100644 --- a/packages/popup/README.md +++ b/packages/popup/README.md @@ -1,26 +0,0 @@ -# @youzan/<%= name %> - -!!! 请在此处填写你的文档最简单描述 !!! - -[![version][version-image]][download-url] -[![download][download-image]][download-url] - -[version-image]: http://npm.qima-inc.com/badge/v/@youzan/<%= name %>.svg?style=flat-square -[download-image]: http://npm.qima-inc.com/badge/d/@youzan/<%= name %>.svg?style=flat-square -[download-url]: http://npm.qima-inc.com/package/@youzan/<%= name %> - -## Demo - -## Usage - -## API - -| 参数 | 说明 | 类型 | 默认值 | 可选值 | -|-----------|-----------|-----------|-------------|-------------| -| className | 自定义额外类名 | string | '' | '' | - - - - -## License -[MIT](https://opensource.org/licenses/MIT) diff --git a/packages/progress/README.md b/packages/progress/README.md index 4c6172563..e69de29bb 100644 --- a/packages/progress/README.md +++ b/packages/progress/README.md @@ -1,26 +0,0 @@ -# @youzan/<%= name %> - -!!! 请在此处填写你的文档最简单描述 !!! - -[![version][version-image]][download-url] -[![download][download-image]][download-url] - -[version-image]: http://npm.qima-inc.com/badge/v/@youzan/<%= name %>.svg?style=flat-square -[download-image]: http://npm.qima-inc.com/badge/d/@youzan/<%= name %>.svg?style=flat-square -[download-url]: http://npm.qima-inc.com/package/@youzan/<%= name %> - -## Demo - -## Usage - -## API - -| 参数 | 说明 | 类型 | 默认值 | 可选值 | -|-----------|-----------|-----------|-------------|-------------| -| className | 自定义额外类名 | string | '' | '' | - - - - -## License -[MIT](https://opensource.org/licenses/MIT) diff --git a/packages/quantity/README.md b/packages/quantity/README.md index 4c6172563..e69de29bb 100644 --- a/packages/quantity/README.md +++ b/packages/quantity/README.md @@ -1,26 +0,0 @@ -# @youzan/<%= name %> - -!!! 请在此处填写你的文档最简单描述 !!! - -[![version][version-image]][download-url] -[![download][download-image]][download-url] - -[version-image]: http://npm.qima-inc.com/badge/v/@youzan/<%= name %>.svg?style=flat-square -[download-image]: http://npm.qima-inc.com/badge/d/@youzan/<%= name %>.svg?style=flat-square -[download-url]: http://npm.qima-inc.com/package/@youzan/<%= name %> - -## Demo - -## Usage - -## API - -| 参数 | 说明 | 类型 | 默认值 | 可选值 | -|-----------|-----------|-----------|-------------|-------------| -| className | 自定义额外类名 | string | '' | '' | - - - - -## License -[MIT](https://opensource.org/licenses/MIT) diff --git a/packages/radio/README.md b/packages/radio/README.md index 4c6172563..e69de29bb 100644 --- a/packages/radio/README.md +++ b/packages/radio/README.md @@ -1,26 +0,0 @@ -# @youzan/<%= name %> - -!!! 请在此处填写你的文档最简单描述 !!! - -[![version][version-image]][download-url] -[![download][download-image]][download-url] - -[version-image]: http://npm.qima-inc.com/badge/v/@youzan/<%= name %>.svg?style=flat-square -[download-image]: http://npm.qima-inc.com/badge/d/@youzan/<%= name %>.svg?style=flat-square -[download-url]: http://npm.qima-inc.com/package/@youzan/<%= name %> - -## Demo - -## Usage - -## API - -| 参数 | 说明 | 类型 | 默认值 | 可选值 | -|-----------|-----------|-----------|-------------|-------------| -| className | 自定义额外类名 | string | '' | '' | - - - - -## License -[MIT](https://opensource.org/licenses/MIT) diff --git a/packages/row/README.md b/packages/row/README.md index 4c6172563..e69de29bb 100644 --- a/packages/row/README.md +++ b/packages/row/README.md @@ -1,26 +0,0 @@ -# @youzan/<%= name %> - -!!! 请在此处填写你的文档最简单描述 !!! - -[![version][version-image]][download-url] -[![download][download-image]][download-url] - -[version-image]: http://npm.qima-inc.com/badge/v/@youzan/<%= name %>.svg?style=flat-square -[download-image]: http://npm.qima-inc.com/badge/d/@youzan/<%= name %>.svg?style=flat-square -[download-url]: http://npm.qima-inc.com/package/@youzan/<%= name %> - -## Demo - -## Usage - -## API - -| 参数 | 说明 | 类型 | 默认值 | 可选值 | -|-----------|-----------|-----------|-------------|-------------| -| className | 自定义额外类名 | string | '' | '' | - - - - -## License -[MIT](https://opensource.org/licenses/MIT) diff --git a/packages/search/README.md b/packages/search/README.md index 4c6172563..e69de29bb 100644 --- a/packages/search/README.md +++ b/packages/search/README.md @@ -1,26 +0,0 @@ -# @youzan/<%= name %> - -!!! 请在此处填写你的文档最简单描述 !!! - -[![version][version-image]][download-url] -[![download][download-image]][download-url] - -[version-image]: http://npm.qima-inc.com/badge/v/@youzan/<%= name %>.svg?style=flat-square -[download-image]: http://npm.qima-inc.com/badge/d/@youzan/<%= name %>.svg?style=flat-square -[download-url]: http://npm.qima-inc.com/package/@youzan/<%= name %> - -## Demo - -## Usage - -## API - -| 参数 | 说明 | 类型 | 默认值 | 可选值 | -|-----------|-----------|-----------|-------------|-------------| -| className | 自定义额外类名 | string | '' | '' | - - - - -## License -[MIT](https://opensource.org/licenses/MIT) diff --git a/packages/steps/README.md b/packages/steps/README.md index 4c6172563..e69de29bb 100644 --- a/packages/steps/README.md +++ b/packages/steps/README.md @@ -1,26 +0,0 @@ -# @youzan/<%= name %> - -!!! 请在此处填写你的文档最简单描述 !!! - -[![version][version-image]][download-url] -[![download][download-image]][download-url] - -[version-image]: http://npm.qima-inc.com/badge/v/@youzan/<%= name %>.svg?style=flat-square -[download-image]: http://npm.qima-inc.com/badge/d/@youzan/<%= name %>.svg?style=flat-square -[download-url]: http://npm.qima-inc.com/package/@youzan/<%= name %> - -## Demo - -## Usage - -## API - -| 参数 | 说明 | 类型 | 默认值 | 可选值 | -|-----------|-----------|-----------|-------------|-------------| -| className | 自定义额外类名 | string | '' | '' | - - - - -## License -[MIT](https://opensource.org/licenses/MIT) diff --git a/packages/swipe/README.md b/packages/swipe/README.md index 4c6172563..e69de29bb 100644 --- a/packages/swipe/README.md +++ b/packages/swipe/README.md @@ -1,26 +0,0 @@ -# @youzan/<%= name %> - -!!! 请在此处填写你的文档最简单描述 !!! - -[![version][version-image]][download-url] -[![download][download-image]][download-url] - -[version-image]: http://npm.qima-inc.com/badge/v/@youzan/<%= name %>.svg?style=flat-square -[download-image]: http://npm.qima-inc.com/badge/d/@youzan/<%= name %>.svg?style=flat-square -[download-url]: http://npm.qima-inc.com/package/@youzan/<%= name %> - -## Demo - -## Usage - -## API - -| 参数 | 说明 | 类型 | 默认值 | 可选值 | -|-----------|-----------|-----------|-------------|-------------| -| className | 自定义额外类名 | string | '' | '' | - - - - -## License -[MIT](https://opensource.org/licenses/MIT) diff --git a/packages/swipe/src/scroll.js b/packages/swipe/src/scroll.js index d70b1aba1..988e74e49 100755 --- a/packages/swipe/src/scroll.js +++ b/packages/swipe/src/scroll.js @@ -69,12 +69,6 @@ extend(Scroll.prototype, { var leftOffset = offset - wrapWidth; var rightOffset = offset + wrapWidth; - page = this.getCurrentPage(); - if (page) { - page.style['-webkit-transform'] = 'translate3d(' + offset + 'px, 0, 0)'; - page.style['display'] = 'block'; - } - leftPage = this.pages[this.mapLoopPage(currentOffsetPage - 1)]; if (leftPage) { if (Math.abs(leftOffset) <= wrapWidth) { @@ -96,6 +90,12 @@ extend(Scroll.prototype, { } } } + + page = this.getCurrentPage(); + if (page) { + page.style['-webkit-transform'] = 'translate3d(' + offset + 'px, 0, 0)'; + page.style['display'] = 'block'; + } }, movePage: function(dist, isEnd) { diff --git a/packages/swipe/src/swipe-item.vue b/packages/swipe/src/swipe-item.vue index ba4489474..dafed2fd2 100644 --- a/packages/swipe/src/swipe-item.vue +++ b/packages/swipe/src/swipe-item.vue @@ -10,6 +10,13 @@ export default { beforeCreate() { this.$parent.swipes.push(this); + }, + + destroyed() { + const index = this.$parent.swipes.indexOf(this) + if (index > -1) { + this.$parent.swipes.splice(index, 1) + } } }; diff --git a/packages/swipe/src/swipe.vue b/packages/swipe/src/swipe.vue index f1b9862be..4b6d818b6 100644 --- a/packages/swipe/src/swipe.vue +++ b/packages/swipe/src/swipe.vue @@ -61,10 +61,28 @@ export default { }).on('autoPlay', function(dist, isEnd) { scroll.movePage(dist.x, isEnd); }); + this.dummy = dummy }, - updated() { - this.scroll.update(); + watch: { + swipes(value) { + if (this.autoPlay && value.length > 1) { + this.dummy.initMove() + } else { + this.dummy.clearMove() + } + this.scroll.update(); + return value + }, + + autoPlay(value) { + if (value && this.swipes.length > 1) { + this.dummy.initMove() + } else { + this.dummy.clearMove() + } + return value + } }, methods: { diff --git a/packages/switch/README.md b/packages/switch/README.md index 4c6172563..e69de29bb 100644 --- a/packages/switch/README.md +++ b/packages/switch/README.md @@ -1,26 +0,0 @@ -# @youzan/<%= name %> - -!!! 请在此处填写你的文档最简单描述 !!! - -[![version][version-image]][download-url] -[![download][download-image]][download-url] - -[version-image]: http://npm.qima-inc.com/badge/v/@youzan/<%= name %>.svg?style=flat-square -[download-image]: http://npm.qima-inc.com/badge/d/@youzan/<%= name %>.svg?style=flat-square -[download-url]: http://npm.qima-inc.com/package/@youzan/<%= name %> - -## Demo - -## Usage - -## API - -| 参数 | 说明 | 类型 | 默认值 | 可选值 | -|-----------|-----------|-----------|-------------|-------------| -| className | 自定义额外类名 | string | '' | '' | - - - - -## License -[MIT](https://opensource.org/licenses/MIT) diff --git a/packages/tab/README.md b/packages/tab/README.md index 4c6172563..e69de29bb 100644 --- a/packages/tab/README.md +++ b/packages/tab/README.md @@ -1,26 +0,0 @@ -# @youzan/<%= name %> - -!!! 请在此处填写你的文档最简单描述 !!! - -[![version][version-image]][download-url] -[![download][download-image]][download-url] - -[version-image]: http://npm.qima-inc.com/badge/v/@youzan/<%= name %>.svg?style=flat-square -[download-image]: http://npm.qima-inc.com/badge/d/@youzan/<%= name %>.svg?style=flat-square -[download-url]: http://npm.qima-inc.com/package/@youzan/<%= name %> - -## Demo - -## Usage - -## API - -| 参数 | 说明 | 类型 | 默认值 | 可选值 | -|-----------|-----------|-----------|-------------|-------------| -| className | 自定义额外类名 | string | '' | '' | - - - - -## License -[MIT](https://opensource.org/licenses/MIT) diff --git a/packages/tab/src/tabs.vue b/packages/tab/src/tabs.vue index 68c325819..3d88981ac 100644 --- a/packages/tab/src/tabs.vue +++ b/packages/tab/src/tabs.vue @@ -92,7 +92,7 @@ * `type`为`line`时,tab下方的横线的样式 */ navBarStyle() { - if (!this.isReady || this.type !== 'line') return; + if (!this.isReady || this.type !== 'line' || !this.$refs.tabkey) return; const tabKey = this.curActive; const elem = this.$refs.tabkey[tabKey]; diff --git a/packages/tag/README.md b/packages/tag/README.md index 4c6172563..e69de29bb 100644 --- a/packages/tag/README.md +++ b/packages/tag/README.md @@ -1,26 +0,0 @@ -# @youzan/<%= name %> - -!!! 请在此处填写你的文档最简单描述 !!! - -[![version][version-image]][download-url] -[![download][download-image]][download-url] - -[version-image]: http://npm.qima-inc.com/badge/v/@youzan/<%= name %>.svg?style=flat-square -[download-image]: http://npm.qima-inc.com/badge/d/@youzan/<%= name %>.svg?style=flat-square -[download-url]: http://npm.qima-inc.com/package/@youzan/<%= name %> - -## Demo - -## Usage - -## API - -| 参数 | 说明 | 类型 | 默认值 | 可选值 | -|-----------|-----------|-----------|-------------|-------------| -| className | 自定义额外类名 | string | '' | '' | - - - - -## License -[MIT](https://opensource.org/licenses/MIT) diff --git a/packages/toast/README.md b/packages/toast/README.md index 4c6172563..e69de29bb 100644 --- a/packages/toast/README.md +++ b/packages/toast/README.md @@ -1,26 +0,0 @@ -# @youzan/<%= name %> - -!!! 请在此处填写你的文档最简单描述 !!! - -[![version][version-image]][download-url] -[![download][download-image]][download-url] - -[version-image]: http://npm.qima-inc.com/badge/v/@youzan/<%= name %>.svg?style=flat-square -[download-image]: http://npm.qima-inc.com/badge/d/@youzan/<%= name %>.svg?style=flat-square -[download-url]: http://npm.qima-inc.com/package/@youzan/<%= name %> - -## Demo - -## Usage - -## API - -| 参数 | 说明 | 类型 | 默认值 | 可选值 | -|-----------|-----------|-----------|-------------|-------------| -| className | 自定义额外类名 | string | '' | '' | - - - - -## License -[MIT](https://opensource.org/licenses/MIT) diff --git a/packages/toast/src/toast.js b/packages/toast/src/toast.js index 3833f9894..727b6a315 100644 --- a/packages/toast/src/toast.js +++ b/packages/toast/src/toast.js @@ -1,7 +1,8 @@ import Vue from 'vue'; import merge from 'src/utils/merge'; +import ToastComponent from './toast.vue'; -const ToastConstructor = Vue.extend(require('./toast.vue')); +const ToastConstructor = Vue.extend(ToastComponent); let instance; const getInstance = () => { @@ -24,6 +25,7 @@ var Toast = (options = {}) => { const duration = options.duration || 3000; const instance = getInstance(); + instance.closed = false; clearTimeout(instance.timer); instance.type = options.type ? options.type : 'text'; diff --git a/packages/toast/src/toast.vue b/packages/toast/src/toast.vue index 3129dea0b..b288f510a 100644 --- a/packages/toast/src/toast.vue +++ b/packages/toast/src/toast.vue @@ -1,24 +1,18 @@