Skip to content

Commit 71cb00f

Browse files
author
lilinsen
committed
upd:更新dialog、picker和scroller功能
2 parents 1035974 + 19b195f commit 71cb00f

File tree

9 files changed

+86
-18
lines changed

9 files changed

+86
-18
lines changed

build/webpack.base.conf.js

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,21 @@ const config = require('../package.json');
33
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
44
const VueLoaderPlugin = require('vue-loader/lib/plugin');
55
const moment = require('moment');
6+
const ProgressBarPlugin = require('progress-bar-webpack-plugin');
7+
var WebpackBuildNotifierPlugin = require('webpack-build-notifier');
68
const isDev = process.env.NODE_ENV === 'development';
79
var test = process.env.NODE_ENV === 'test';
810
const path = require('path');
11+
const HappyPack = require('happypack');
12+
const os = require('os');
13+
const chalk= require('chalk');
14+
const happyThreadPool = HappyPack.ThreadPool({ size: os.cpus().length });
915
module.exports = {
1016
stats: {
1117
entrypoints: false,
1218
children: false
1319
},
20+
stats: 'errors-only',
1421
resolve: {
1522
extensions: ['.js', '.vue', '.json'],
1623
alias: {
@@ -21,7 +28,7 @@ module.exports = {
2128
rules: [
2229
!test ? {
2330
test: /\.(sa|sc|c)ss$/,
24-
use: [
31+
use: [
2532
isDev ? 'style-loader' : MiniCssExtractPlugin.loader,
2633
'css-loader',
2734
'postcss-loader',
@@ -40,6 +47,7 @@ module.exports = {
4047
{
4148
test: /\.vue$/,
4249
use: [
50+
'cache-loader',
4351
{
4452
loader: 'vue-loader',
4553
options: {
@@ -63,9 +71,7 @@ module.exports = {
6371
{
6472
test: /\.js$/,
6573
exclude: /node_modules/,
66-
use: {
67-
loader: 'babel-loader'
68-
}
74+
use: ['happypack/loader?id=Babel']
6975
},
7076
{
7177
test: /\.(png|jpg|gif|webp)$/,
@@ -82,6 +88,27 @@ module.exports = {
8288
(c) 2017-2018 JDC
8389
Released under the MIT License.`
8490
}),
85-
new VueLoaderPlugin()
91+
new HappyPack({
92+
//用id来标识 happypack处理那里类文件
93+
id: 'Babel',
94+
//如何处理 用法和loader 的配置一样
95+
loaders: [{
96+
loader: 'babel-loader?cacheDirectory=true',
97+
}],
98+
//共享进程池
99+
threadPool: happyThreadPool,
100+
//允许 HappyPack 输出日志
101+
verbose: false,
102+
}),
103+
new VueLoaderPlugin(),
104+
new ProgressBarPlugin({
105+
format: ' build [:bar] ' + chalk.green.bold(':percent') + ' (:elapsed seconds)',
106+
clear: false,
107+
width: 100
108+
}),
109+
new WebpackBuildNotifierPlugin({
110+
title: "My Project Webpack Build",
111+
suppressSuccess: true
112+
})
86113
],
87114
}

build/webpack.demo.base.conf.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ module.exports = merge(webpackBaseConf, {
1818
path: path.resolve(__dirname, '../dist/sites/'),
1919
chunkFilename: 'demo/js/[name].[hash:5].js',
2020
filename: isDev ? 'demo/js/[name].js' : 'demo/js/[name].[hash].js'
21-
},
21+
},
2222
module: {
2323
rules: [
2424
//自定义主题

build/webpack.demo.dev.conf.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ module.exports = merge(baseConf, {
2727
contentBase: path.resolve(__dirname, 'dist/sites/'),
2828
index: 'demo.html',
2929
compress: true,
30+
noInfo: true,
3031
historyApiFallback: true,
3132
disableHostCheck: true
3233
}

docs/joinus.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,4 @@
2626

2727
### 简历投递:
2828

29-
nutui@jd.com
29+
yfzhoutao@jd.com

package.json

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"scripts": {
1515
"dev": "npm run dev:demo",
1616
"dev:carefree": "cross-env NODE_ENV=carefree carefree_env=dev webpack -w --colors --progress --config build/webpack.demo.dev.conf.js",
17-
"dev:demo": "cross-env NODE_ENV=development webpack-dev-server -d --open --progress --config build/webpack.demo.dev.conf.js",
17+
"dev:demo": "cross-env NODE_ENV=development webpack-dev-server -d --open --config build/webpack.demo.dev.conf.js",
1818
"dev:doc": "cross-env NODE_ENV=development DOC_TYPE=true webpack-dev-server -d --open -w --progress --config build/webpack.doc.dev.conf.js",
1919
"build:demo": "cross-env NODE_ENV=production webpack --hide-modules --progress --config build/webpack.demo.build.conf.js",
2020
"build:doc": "cross-env NODE_ENV=production DOC_TYPE=true webpack --hide-modules --progress --config build/webpack.doc.build.conf.js",
@@ -48,7 +48,12 @@
4848
"dependencies": {
4949
"@babel/polyfill": "7.0.0",
5050
"@babel/runtime": "7.1.2",
51-
"intersection-observer": "^0.5.1"
51+
"cache-loader": "^4.1.0",
52+
"happypack": "^5.0.1",
53+
"intersection-observer": "^0.5.1",
54+
"os": "^0.1.1",
55+
"progress-bar-webpack-plugin": "^1.12.1",
56+
"webpack-build-notifier": "^1.1.1"
5257
},
5358
"peerDependencies": {
5459
"vue": "^2.6.10"
@@ -73,7 +78,7 @@
7378
"babel-plugin-transform-es2015-modules-commonjs": "6.26.2",
7479
"babel-preset-env": "1.7.0",
7580
"babel-preset-stage-2": "6.24.1",
76-
"chalk": "2.4.1",
81+
"chalk": "^2.4.2",
7782
"chokidar": "^2.0.4",
7883
"clipboard": "2.0.1",
7984
"copy": "0.3.2",

src/packages/dialog/demo.vue

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,30 @@
7171
</nut-cell>
7272
</div>
7373
<!-- 以标签形式调用Dialog -->
74-
<nut-dialog title="标签形式调用" :visible="dialogShow" @ok-btn-click="dialogShow=false" @cancel-btn-click="dialogShow=false" @close="dialogShow=false">
74+
<nut-dialog title="标签形式调用" :visible="dialogShow" :cancelAutoClose="false" @ok-btn-click="dialogShow=false" @cancel-btn-click="dialogShow=false" @close="dialogShow=false">
75+
7576
<a href="javascript:;" @click="dialogShow=false" :noCancelBtn="true">点我可以直接关闭对话框</a>
7677
</nut-dialog>
78+
<nut-actionsheet :is-visible="isEditor" >
79+
<div slot="custom">
80+
<nut-cell title="选择货品" :showIcon="true" :isLink="true" @click.native="isItem=true">
81+
<div slot="desc" class="selected-option">{{item.name!='' ? item.name : '请选择'}}</div>
82+
</nut-cell>
83+
<nut-cell :isLink="true" >
84+
<div slot="title" class="selected-option">
85+
<nut-textinput v-model="item.num" :hasBorder="false" placeholder="请输入数量" :clearBtn="true" :disabled="false"/> </div>
86+
</nut-cell>
87+
<nut-cell :isLink="true" >
88+
<div slot="title" class="selected-option">
89+
<nut-textinput v-model="item.price" :hasBorder="false" placeholder="请输入价格" :clearBtn="true" :disabled="false"/>
90+
</div>
91+
</nut-cell>
92+
<nut-buttongroup shape="circle" style="margin-top:10px;padding:10px;">
93+
<nut-button color="#333" style="background:#eee" @click.native="isEditor=false"> 取消 </nut-button>
94+
<nut-button style="background:#42b983" @click.native="addItem"> 确定 </nut-button>
95+
</nut-buttongroup>
96+
</div>
97+
</nut-actionsheet>
7798
</div>
7899
</template>
79100

@@ -85,7 +106,11 @@ export default {
85106
mixins: [locale],
86107
data() {
87108
return {
88-
dialogShow: false
109+
dialogShow: false,
110+
isEditor:true,
111+
item:{
112+
113+
}
89114
};
90115
},
91116
methods: {

src/packages/dialog/dialog.vue

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,12 +194,16 @@ export default {
194194
this.onOkBtn.call(this);
195195
}
196196
},
197-
cancelBtnClick(autoClose) {
197+
cancelBtnClick(autoClose) {
198+
if(!autoClose){
199+
return
200+
}
198201
this.$emit("cancel-btn-click");
199202
if (typeof this.onCancelBtn === "function") {
200203
if (this.onCancelBtn.call(this) === false) return;
201204
}
202-
autoClose && this.close("cancelBtn");
205+
this.close("cancelBtn");
206+
203207
},
204208
closeBtnClick() {
205209
if (typeof this.onCloseBtn === "function") {

src/packages/picker/picker-slot.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55
:class="{'nut-picker-roller-item-hidden': isHidden(index + 1)}"
66
v-for="(item,index) in listData"
77
:style="setRollerStyle(index + 1)"
8-
:key="index">
9-
{{item}}
8+
:key="item.label ? item.label : index">
9+
{{item.value ? item.value : item}}
1010
</div>
1111
</div>
1212
<div class="nut-picker-content">
1313
<div class="nut-picker-list-panel" ref="list">
1414
<div class="nut-picker-item" v-for="(item,index) in listData"
15-
:key="index">{{item}}
15+
:key="item.label ? item.label : index">{{item.value ? item.value : item}}
1616
</div>
1717
</div>
1818
</div>

src/packages/scroller/vertical-scroll.vue

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,18 @@ export default {
5656
type: Number,
5757
default: 100
5858
},
59+
propsTime: {
60+
type:Number,
61+
default: 3000
62+
}
5963
},
6064
watch: {
6165
'isLoading': function(status) {
6266
if (!status && this.realMove === 0) {
6367
clearTimeout(this.timer);
64-
this.setTransform(this.realMove, 'end', 0);
68+
this.timer = setTimeout(() => {
69+
this.setTransform(this.realMove, 'end', 0);
70+
}, this.propsTime);
6571
}
6672
},
6773
'isUnMore': function() {

0 commit comments

Comments
 (0)