Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
Litemall
Commits
b1af78f9
Commit
b1af78f9
authored
Dec 14, 2019
by
Junling Bu
Browse files
chore[litemall-wx]: 使用vant-weapp 1.0
parent
07351378
Changes
311
Show whitespace changes
Inline
Side-by-side
litemall-wx/lib/vant-weapp/notify/notify.js
0 → 100644
View file @
b1af78f9
import
{
WHITE
}
from
'
../common/color
'
;
const
defaultOptions
=
{
selector
:
'
#van-notify
'
,
type
:
'
danger
'
,
message
:
''
,
background
:
''
,
duration
:
3000
,
zIndex
:
110
,
color
:
WHITE
,
onClick
:
()
=>
{
},
onOpened
:
()
=>
{
},
onClose
:
()
=>
{
}
};
function
parseOptions
(
message
)
{
return
typeof
message
===
'
string
'
?
{
message
}
:
message
;
}
function
getContext
()
{
const
pages
=
getCurrentPages
();
return
pages
[
pages
.
length
-
1
];
}
export
default
function
Notify
(
options
)
{
options
=
Object
.
assign
({},
defaultOptions
,
parseOptions
(
options
));
const
context
=
options
.
context
||
getContext
();
const
notify
=
context
.
selectComponent
(
options
.
selector
);
delete
options
.
context
;
delete
options
.
selector
;
if
(
notify
)
{
notify
.
set
(
options
);
notify
.
show
();
return
notify
;
}
console
.
warn
(
'
未找到 van-notify 节点,请确认 selector 及 context 是否正确
'
);
}
Notify
.
clear
=
function
(
options
)
{
options
=
Object
.
assign
({},
defaultOptions
,
parseOptions
(
options
));
const
context
=
options
.
context
||
getContext
();
const
notify
=
context
.
selectComponent
(
options
.
selector
);
if
(
notify
)
{
notify
.
hide
();
}
};
litemall-wx/lib/vant-weapp/overlay/index.d.ts
0 → 100644
View file @
b1af78f9
export
{};
litemall-wx/lib/vant-weapp/overlay/index.js
0 → 100644
View file @
b1af78f9
import
{
VantComponent
}
from
'
../common/component
'
;
VantComponent
({
props
:
{
show
:
Boolean
,
customStyle
:
String
,
duration
:
{
type
:
null
,
value
:
300
},
zIndex
:
{
type
:
Number
,
value
:
1
}
},
methods
:
{
onClick
()
{
this
.
$emit
(
'
click
'
);
},
// for prevent touchmove
noop
()
{
}
}
});
litemall-wx/lib/vant-weapp/overlay/index.json
0 → 100644
View file @
b1af78f9
{
"component"
:
true
,
"usingComponents"
:
{
"van-transition"
:
"../transition/index"
}
}
litemall-wx/lib/vant-weapp/overlay/index.wxml
0 → 100644
View file @
b1af78f9
<van-transition
show="{{ show }}"
custom-class="van-overlay"
custom-style="z-index: {{ zIndex }}; {{ customStyle }}"
duration="{{ duration }}"
bind:tap="onClick"
catch:touchmove="noop"
>
<slot></slot>
</van-transition>
litemall-wx/lib/vant-weapp/overlay/index.wxss
0 → 100644
View file @
b1af78f9
@import '../common/index.wxss';.van-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.7);background-color:var(--overlay-background-color,rgba(0,0,0,.7))}
\ No newline at end of file
litemall-wx/lib/vant-weapp/panel/index.d.ts
0 → 100644
View file @
b1af78f9
export
{};
litemall-wx/lib/vant-weapp/panel/index.js
0 → 100644
View file @
b1af78f9
import
{
VantComponent
}
from
'
../common/component
'
;
VantComponent
({
classes
:
[
'
header-class
'
,
'
footer-class
'
],
props
:
{
desc
:
String
,
title
:
String
,
status
:
String
,
useFooterSlot
:
Boolean
}
});
litemall-wx/lib/vant-weapp/panel/index.json
0 → 100644
View file @
b1af78f9
{
"component"
:
true
,
"usingComponents"
:
{
"van-cell"
:
"../cell/index"
}
}
litemall-wx/lib/vant-weapp/panel/index.wxml
0 → 100644
View file @
b1af78f9
<view class="van-panel van-hairline--top-bottom custom-class">
<van-cell
wx:if="{{ title || desc || status }}"
title="{{ title }}"
label="{{ desc }}"
value="{{ status }}"
custom-class="header-class"
value-class="van-panel__header-value"
/>
<slot wx:else name="header" />
<view class="van-panel__content">
<slot />
</view>
<view wx:if="{{ useFooterSlot }}" class="van-panel__footer van-hairline--top footer-class">
<slot name="footer" />
</view>
</view>
litemall-wx/lib/vant-weapp/panel/index.wxss
0 → 100644
View file @
b1af78f9
@import '../common/index.wxss';.van-panel{background:#fff;background:var(--panel-background-color,#fff)}.van-panel__header-value{color:#ee0a24;color:var(--panel-header-value-color,#ee0a24)}.van-panel__footer{padding:8px 16px;padding:var(--panel-footer-padding,8px 16px)}
\ No newline at end of file
litemall-wx/lib/vant-weapp/picker-column/index.d.ts
0 → 100644
View file @
b1af78f9
export
{};
litemall-wx/lib/vant-weapp/picker-column/index.js
0 → 100644
View file @
b1af78f9
import
{
VantComponent
}
from
'
../common/component
'
;
import
{
isObj
,
range
}
from
'
../common/utils
'
;
const
DEFAULT_DURATION
=
200
;
VantComponent
({
classes
:
[
'
active-class
'
],
props
:
{
valueKey
:
String
,
className
:
String
,
itemHeight
:
Number
,
visibleItemCount
:
Number
,
initialOptions
:
{
type
:
Array
,
value
:
[]
},
defaultIndex
:
{
type
:
Number
,
value
:
0
}
},
data
:
{
startY
:
0
,
offset
:
0
,
duration
:
0
,
startOffset
:
0
,
options
:
[],
currentIndex
:
0
},
created
()
{
const
{
defaultIndex
,
initialOptions
}
=
this
.
data
;
this
.
set
({
currentIndex
:
defaultIndex
,
options
:
initialOptions
}).
then
(()
=>
{
this
.
setIndex
(
defaultIndex
);
});
},
watch
:
{
defaultIndex
(
value
)
{
this
.
setIndex
(
value
);
}
},
methods
:
{
getCount
()
{
return
this
.
data
.
options
.
length
;
},
onTouchStart
(
event
)
{
this
.
setData
({
startY
:
event
.
touches
[
0
].
clientY
,
startOffset
:
this
.
data
.
offset
,
duration
:
0
});
},
onTouchMove
(
event
)
{
const
{
data
}
=
this
;
const
deltaY
=
event
.
touches
[
0
].
clientY
-
data
.
startY
;
this
.
setData
({
offset
:
range
(
data
.
startOffset
+
deltaY
,
-
(
this
.
getCount
()
*
data
.
itemHeight
),
data
.
itemHeight
)
});
},
onTouchEnd
()
{
const
{
data
}
=
this
;
if
(
data
.
offset
!==
data
.
startOffset
)
{
this
.
setData
({
duration
:
DEFAULT_DURATION
});
const
index
=
range
(
Math
.
round
(
-
data
.
offset
/
data
.
itemHeight
),
0
,
this
.
getCount
()
-
1
);
this
.
setIndex
(
index
,
true
);
}
},
onClickItem
(
event
)
{
const
{
index
}
=
event
.
currentTarget
.
dataset
;
this
.
setIndex
(
index
,
true
);
},
adjustIndex
(
index
)
{
const
{
data
}
=
this
;
const
count
=
this
.
getCount
();
index
=
range
(
index
,
0
,
count
);
for
(
let
i
=
index
;
i
<
count
;
i
++
)
{
if
(
!
this
.
isDisabled
(
data
.
options
[
i
]))
return
i
;
}
for
(
let
i
=
index
-
1
;
i
>=
0
;
i
--
)
{
if
(
!
this
.
isDisabled
(
data
.
options
[
i
]))
return
i
;
}
},
isDisabled
(
option
)
{
return
isObj
(
option
)
&&
option
.
disabled
;
},
getOptionText
(
option
)
{
const
{
data
}
=
this
;
return
isObj
(
option
)
&&
data
.
valueKey
in
option
?
option
[
data
.
valueKey
]
:
option
;
},
setIndex
(
index
,
userAction
)
{
const
{
data
}
=
this
;
index
=
this
.
adjustIndex
(
index
)
||
0
;
const
offset
=
-
index
*
data
.
itemHeight
;
if
(
index
!==
data
.
currentIndex
)
{
return
this
.
set
({
offset
,
currentIndex
:
index
}).
then
(()
=>
{
userAction
&&
this
.
$emit
(
'
change
'
,
index
);
});
}
return
this
.
set
({
offset
});
},
setValue
(
value
)
{
const
{
options
}
=
this
.
data
;
for
(
let
i
=
0
;
i
<
options
.
length
;
i
++
)
{
if
(
this
.
getOptionText
(
options
[
i
])
===
value
)
{
return
this
.
setIndex
(
i
);
}
}
return
Promise
.
resolve
();
},
getValue
()
{
const
{
data
}
=
this
;
return
data
.
options
[
data
.
currentIndex
];
}
}
});
litemall-wx/lib/vant-weapp/picker-column/index.json
0 → 100644
View file @
b1af78f9
{
"component"
:
true
}
\ No newline at end of file
litemall-wx/lib/vant-weapp/picker-column/index.wxml
0 → 100644
View file @
b1af78f9
<wxs src="./index.wxs" module="getOptionText" />
<view
class="van-picker-column custom-class"
style="height: {{ itemHeight * visibleItemCount }}px"
bind:touchstart="onTouchStart"
catch:touchmove="onTouchMove"
bind:touchend="onTouchEnd"
bind:touchcancel="onTouchEnd"
>
<view style="transition: transform {{ duration }}ms; line-height: {{ itemHeight }}px; transform: translate3d(0, {{ offset + (itemHeight * (visibleItemCount - 1)) / 2 }}px, 0)">
<view
wx:for="{{ options }}"
wx:for-item="option"
wx:key="index"
data-index="{{ index }}"
style="height: {{ itemHeight }}px"
class="van-ellipsis van-picker-column__item {{ option && option.disabled ? 'van-picker-column__item--disabled' : '' }} {{ index === currentIndex ? 'van-picker-column__item--selected active-class' : '' }}"
bindtap="onClickItem"
>{{ getOptionText(option, valueKey) }}</view>
</view>
</view>
litemall-wx/lib/vant-weapp/picker-column/index.wxs
0 → 100644
View file @
b1af78f9
function isObj(x) {
var type = typeof x;
return x !== null && (type === 'object' || type === 'function');
}
module.exports = function (option, valueKey) {
return isObj(option) && option[valueKey] != null ? option[valueKey] : option;
}
litemall-wx/lib/vant-weapp/picker-column/index.wxss
0 → 100644
View file @
b1af78f9
@import '../common/index.wxss';.van-picker-column{overflow:hidden;text-align:center;color:#000;color:var(--picker-option-text-color,#000);font-size:16px;font-size:var(--picker-option-font-size,16px)}.van-picker-column__item{padding:0 5px}.van-picker-column__item--selected{font-weight:500;font-weight:var(--font-weight-bold,500);color:#323233;color:var(--picker-option-selected-text-color,#323233)}.van-picker-column__item--disabled{opacity:.3;opacity:var(--picker-option-disabled-opacity,.3)}
\ No newline at end of file
litemall-wx/lib/vant-weapp/picker/index.d.ts
0 → 100644
View file @
b1af78f9
export
{};
litemall-wx/lib/vant-weapp/picker/index.js
0 → 100644
View file @
b1af78f9
import
{
VantComponent
}
from
'
../common/component
'
;
import
{
pickerProps
}
from
'
./shared
'
;
VantComponent
({
classes
:
[
'
active-class
'
,
'
toolbar-class
'
,
'
column-class
'
],
props
:
Object
.
assign
(
Object
.
assign
({},
pickerProps
),
{
valueKey
:
{
type
:
String
,
value
:
'
text
'
},
toolbarPosition
:
{
type
:
String
,
value
:
'
top
'
},
defaultIndex
:
{
type
:
Number
,
value
:
0
},
columns
:
{
type
:
Array
,
value
:
[],
observer
(
columns
=
[])
{
this
.
simple
=
columns
.
length
&&
!
columns
[
0
].
values
;
this
.
children
=
this
.
selectAllComponents
(
'
.van-picker__column
'
);
if
(
Array
.
isArray
(
this
.
children
)
&&
this
.
children
.
length
)
{
this
.
setColumns
().
catch
(()
=>
{
});
}
}
}
}),
beforeCreate
()
{
this
.
children
=
[];
},
methods
:
{
noop
()
{
},
setColumns
()
{
const
{
data
}
=
this
;
const
columns
=
this
.
simple
?
[{
values
:
data
.
columns
}]
:
data
.
columns
;
const
stack
=
columns
.
map
((
column
,
index
)
=>
this
.
setColumnValues
(
index
,
column
.
values
));
return
Promise
.
all
(
stack
);
},
emit
(
event
)
{
const
{
type
}
=
event
.
currentTarget
.
dataset
;
if
(
this
.
simple
)
{
this
.
$emit
(
type
,
{
value
:
this
.
getColumnValue
(
0
),
index
:
this
.
getColumnIndex
(
0
)
});
}
else
{
this
.
$emit
(
type
,
{
value
:
this
.
getValues
(),
index
:
this
.
getIndexes
()
});
}
},
onChange
(
event
)
{
if
(
this
.
simple
)
{
this
.
$emit
(
'
change
'
,
{
picker
:
this
,
value
:
this
.
getColumnValue
(
0
),
index
:
this
.
getColumnIndex
(
0
)
});
}
else
{
this
.
$emit
(
'
change
'
,
{
picker
:
this
,
value
:
this
.
getValues
(),
index
:
event
.
currentTarget
.
dataset
.
index
});
}
},
// get column instance by index
getColumn
(
index
)
{
return
this
.
children
[
index
];
},
// get column value by index
getColumnValue
(
index
)
{
const
column
=
this
.
getColumn
(
index
);
return
column
&&
column
.
getValue
();
},
// set column value by index
setColumnValue
(
index
,
value
)
{
const
column
=
this
.
getColumn
(
index
);
if
(
column
==
null
)
{
return
Promise
.
reject
(
new
Error
(
'
setColumnValue: 对应列不存在
'
));
}
return
column
.
setValue
(
value
);
},
// get column option index by column index
getColumnIndex
(
columnIndex
)
{
return
(
this
.
getColumn
(
columnIndex
)
||
{}).
data
.
currentIndex
;
},
// set column option index by column index
setColumnIndex
(
columnIndex
,
optionIndex
)
{
const
column
=
this
.
getColumn
(
columnIndex
);
if
(
column
==
null
)
{
return
Promise
.
reject
(
new
Error
(
'
setColumnIndex: 对应列不存在
'
));
}
return
column
.
setIndex
(
optionIndex
);
},
// get options of column by index
getColumnValues
(
index
)
{
return
(
this
.
children
[
index
]
||
{}).
data
.
options
;
},
// set options of column by index
setColumnValues
(
index
,
options
,
needReset
=
true
)
{
const
column
=
this
.
children
[
index
];
if
(
column
==
null
)
{
return
Promise
.
reject
(
new
Error
(
'
setColumnValues: 对应列不存在
'
));
}
const
isSame
=
JSON
.
stringify
(
column
.
data
.
options
)
===
JSON
.
stringify
(
options
);
if
(
isSame
)
{
return
Promise
.
resolve
();
}
return
column
.
set
({
options
}).
then
(()
=>
{
if
(
needReset
)
{
column
.
setIndex
(
0
);
}
});
},
// get values of all columns
getValues
()
{
return
this
.
children
.
map
((
child
)
=>
child
.
getValue
());
},
// set values of all columns
setValues
(
values
)
{
const
stack
=
values
.
map
((
value
,
index
)
=>
this
.
setColumnValue
(
index
,
value
));
return
Promise
.
all
(
stack
);
},
// get indexes of all columns
getIndexes
()
{
return
this
.
children
.
map
((
child
)
=>
child
.
data
.
currentIndex
);
},
// set indexes of all columns
setIndexes
(
indexes
)
{
const
stack
=
indexes
.
map
((
optionIndex
,
columnIndex
)
=>
this
.
setColumnIndex
(
columnIndex
,
optionIndex
));
return
Promise
.
all
(
stack
);
}
}
});
litemall-wx/lib/vant-weapp/picker/index.json
0 → 100644
View file @
b1af78f9
{
"component"
:
true
,
"usingComponents"
:
{
"picker-column"
:
"../picker-column/index"
,
"loading"
:
"../loading/index"
}
}
Prev
1
…
5
6
7
8
9
10
11
12
13
…
16
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment