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
Hide whitespace changes
Inline
Side-by-side
litemall-wx/lib/vant-weapp/tabs/index.d.ts
0 → 100644
View file @
b1af78f9
export
{};
litemall-wx/lib/vant-weapp/tabs/index.js
0 → 100644
View file @
b1af78f9
import
{
VantComponent
}
from
'
../common/component
'
;
import
{
touch
}
from
'
../mixins/touch
'
;
import
{
isDef
,
addUnit
}
from
'
../common/utils
'
;
VantComponent
({
mixins
:
[
touch
],
classes
:
[
'
nav-class
'
,
'
tab-class
'
,
'
tab-active-class
'
,
'
line-class
'
],
relation
:
{
name
:
'
tab
'
,
type
:
'
descendant
'
,
linked
(
target
)
{
target
.
index
=
this
.
children
.
length
;
this
.
children
.
push
(
target
);
this
.
updateTabs
();
},
unlinked
(
target
)
{
this
.
children
=
this
.
children
.
filter
((
child
)
=>
child
!==
target
)
.
map
((
child
,
index
)
=>
{
child
.
index
=
index
;
return
child
;
});
this
.
updateTabs
();
}
},
props
:
{
color
:
{
type
:
String
,
observer
:
'
setLine
'
},
sticky
:
Boolean
,
animated
:
{
type
:
Boolean
,
observer
()
{
this
.
setTrack
();
this
.
children
.
forEach
((
child
)
=>
child
.
updateRender
());
}
},
swipeable
:
Boolean
,
lineWidth
:
{
type
:
[
String
,
Number
],
value
:
-
1
,
observer
:
'
setLine
'
},
lineHeight
:
{
type
:
[
String
,
Number
],
value
:
-
1
,
observer
:
'
setLine
'
},
titleActiveColor
:
String
,
titleInactiveColor
:
String
,
active
:
{
type
:
[
String
,
Number
],
value
:
0
,
observer
(
name
)
{
if
(
name
!==
this
.
getCurrentName
())
{
this
.
setCurrentIndexByName
(
name
);
}
}
},
type
:
{
type
:
String
,
value
:
'
line
'
},
border
:
{
type
:
Boolean
,
value
:
true
},
ellipsis
:
{
type
:
Boolean
,
value
:
true
},
duration
:
{
type
:
Number
,
value
:
0.3
},
zIndex
:
{
type
:
Number
,
value
:
1
},
swipeThreshold
:
{
type
:
Number
,
value
:
4
,
observer
(
value
)
{
this
.
setData
({
scrollable
:
this
.
children
.
length
>
value
||
!
this
.
data
.
ellipsis
});
}
},
offsetTop
:
{
type
:
Number
,
value
:
0
},
lazyRender
:
{
type
:
Boolean
,
value
:
true
},
},
data
:
{
tabs
:
[],
lineStyle
:
''
,
scrollLeft
:
0
,
scrollable
:
false
,
trackStyle
:
''
,
currentIndex
:
null
,
container
:
null
},
beforeCreate
()
{
this
.
children
=
[];
},
mounted
()
{
this
.
setData
({
container
:
()
=>
this
.
createSelectorQuery
().
select
(
'
.van-tabs
'
)
});
this
.
setLine
(
true
);
this
.
setTrack
();
this
.
scrollIntoView
();
},
methods
:
{
updateTabs
()
{
const
{
children
=
[],
data
}
=
this
;
this
.
setData
({
tabs
:
children
.
map
((
child
)
=>
child
.
data
),
scrollable
:
this
.
children
.
length
>
data
.
swipeThreshold
||
!
data
.
ellipsis
});
this
.
setCurrentIndexByName
(
this
.
getCurrentName
()
||
data
.
active
);
},
trigger
(
eventName
)
{
const
{
currentIndex
}
=
this
.
data
;
const
child
=
this
.
children
[
currentIndex
];
if
(
!
isDef
(
child
))
{
return
;
}
this
.
$emit
(
eventName
,
{
index
:
currentIndex
,
name
:
child
.
getComputedName
(),
title
:
child
.
data
.
title
});
},
onTap
(
event
)
{
const
{
index
}
=
event
.
currentTarget
.
dataset
;
const
child
=
this
.
children
[
index
];
if
(
child
.
data
.
disabled
)
{
this
.
trigger
(
'
disabled
'
);
}
else
{
this
.
setCurrentIndex
(
index
);
wx
.
nextTick
(()
=>
{
this
.
trigger
(
'
click
'
);
});
}
},
// correct the index of active tab
setCurrentIndexByName
(
name
)
{
const
{
children
=
[]
}
=
this
;
const
matched
=
children
.
filter
((
child
)
=>
child
.
getComputedName
()
===
name
);
if
(
matched
.
length
)
{
this
.
setCurrentIndex
(
matched
[
0
].
index
);
}
},
setCurrentIndex
(
currentIndex
)
{
const
{
data
,
children
=
[]
}
=
this
;
if
(
!
isDef
(
currentIndex
)
||
currentIndex
>=
children
.
length
||
currentIndex
<
0
)
{
return
;
}
children
.
forEach
((
item
,
index
)
=>
{
const
active
=
index
===
currentIndex
;
if
(
active
!==
item
.
data
.
active
||
!
item
.
inited
)
{
item
.
updateRender
(
active
,
this
);
}
});
if
(
currentIndex
===
data
.
currentIndex
)
{
return
;
}
const
shouldEmitChange
=
data
.
currentIndex
!==
null
;
this
.
setData
({
currentIndex
});
wx
.
nextTick
(()
=>
{
this
.
setLine
();
this
.
setTrack
();
this
.
scrollIntoView
();
this
.
trigger
(
'
input
'
);
if
(
shouldEmitChange
)
{
this
.
trigger
(
'
change
'
);
}
});
},
getCurrentName
()
{
const
activeTab
=
this
.
children
[
this
.
data
.
currentIndex
];
if
(
activeTab
)
{
return
activeTab
.
getComputedName
();
}
},
setLine
(
skipTransition
)
{
if
(
this
.
data
.
type
!==
'
line
'
)
{
return
;
}
const
{
color
,
duration
,
currentIndex
,
lineWidth
,
lineHeight
}
=
this
.
data
;
this
.
getRect
(
'
.van-tab
'
,
true
).
then
((
rects
=
[])
=>
{
const
rect
=
rects
[
currentIndex
];
if
(
rect
==
null
)
{
return
;
}
const
width
=
lineWidth
!==
-
1
?
lineWidth
:
rect
.
width
/
2
;
const
height
=
lineHeight
!==
-
1
?
`height:
${
addUnit
(
lineHeight
)}
; border-radius:
${
addUnit
(
lineHeight
)}
;`
:
''
;
let
left
=
rects
.
slice
(
0
,
currentIndex
)
.
reduce
((
prev
,
curr
)
=>
prev
+
curr
.
width
,
0
);
left
+=
(
rect
.
width
-
width
)
/
2
;
const
transition
=
skipTransition
?
''
:
`transition-duration:
${
duration
}
s; -webkit-transition-duration:
${
duration
}
s;`
;
this
.
setData
({
lineStyle
:
`
${
height
}
width:
${
addUnit
(
width
)}
;
background-color:
${
color
}
;
-webkit-transform: translateX(
${
left
}
px);
transform: translateX(
${
left
}
px);
${
transition
}
`
});
});
},
setTrack
()
{
const
{
animated
,
duration
,
currentIndex
}
=
this
.
data
;
if
(
!
animated
)
{
return
;
}
this
.
setData
({
trackStyle
:
`
transform: translate3d(
${
-
100
*
currentIndex
}
%, 0, 0);
-webkit-transition-duration:
${
duration
}
s;
transition-duration:
${
duration
}
s;
`
});
},
// scroll active tab into view
scrollIntoView
()
{
const
{
currentIndex
,
scrollable
}
=
this
.
data
;
if
(
!
scrollable
)
{
return
;
}
Promise
.
all
([
this
.
getRect
(
'
.van-tab
'
,
true
),
this
.
getRect
(
'
.van-tabs__nav
'
)
]).
then
(([
tabRects
,
navRect
])
=>
{
const
tabRect
=
tabRects
[
currentIndex
];
const
offsetLeft
=
tabRects
.
slice
(
0
,
currentIndex
)
.
reduce
((
prev
,
curr
)
=>
prev
+
curr
.
width
,
0
);
this
.
setData
({
scrollLeft
:
offsetLeft
-
(
navRect
.
width
-
tabRect
.
width
)
/
2
});
});
},
onTouchScroll
(
event
)
{
this
.
$emit
(
'
scroll
'
,
event
.
detail
);
},
onTouchStart
(
event
)
{
if
(
!
this
.
data
.
swipeable
)
return
;
this
.
touchStart
(
event
);
},
onTouchMove
(
event
)
{
if
(
!
this
.
data
.
swipeable
)
return
;
this
.
touchMove
(
event
);
},
// watch swipe touch end
onTouchEnd
()
{
if
(
!
this
.
data
.
swipeable
)
return
;
const
{
tabs
,
currentIndex
}
=
this
.
data
;
const
{
direction
,
deltaX
,
offsetX
}
=
this
;
const
minSwipeDistance
=
50
;
if
(
direction
===
'
horizontal
'
&&
offsetX
>=
minSwipeDistance
)
{
if
(
deltaX
>
0
&&
currentIndex
!==
0
)
{
this
.
setCurrentIndex
(
currentIndex
-
1
);
}
else
if
(
deltaX
<
0
&&
currentIndex
!==
tabs
.
length
-
1
)
{
this
.
setCurrentIndex
(
currentIndex
+
1
);
}
}
}
}
});
litemall-wx/lib/vant-weapp/tabs/index.json
0 → 100644
View file @
b1af78f9
{
"component"
:
true
,
"usingComponents"
:
{
"van-info"
:
"../info/index"
,
"van-sticky"
:
"../sticky/index"
}
}
litemall-wx/lib/vant-weapp/tabs/index.wxml
0 → 100644
View file @
b1af78f9
<wxs src="../wxs/utils.wxs" module="utils" />
<wxs src="./index.wxs" module="getters" />
<view class="custom-class {{ utils.bem('tabs', [type]) }}">
<van-sticky
disabled="{{ !sticky }}"
z-index="{{ zIndex }}"
offset-top="{{ offsetTop }}"
container="{{ container }}"
bind:scroll="onTouchScroll"
>
<view class="{{ utils.bem('tabs__wrap', { scrollable }) }} {{ type === 'line' && border ? 'van-hairline--top-bottom' : '' }}">
<slot name="nav-left" />
<scroll-view
scroll-x="{{ scrollable }}"
scroll-with-animation
scroll-left="{{ scrollLeft }}"
class="{{ utils.bem('tabs__scroll', [type]) }}"
style="{{ color ? 'border-color: ' + color : '' }}"
>
<view class="{{ utils.bem('tabs__nav', [type]) }} nav-class">
<view wx:if="{{ type === 'line' }}" class="van-tabs__line" style="{{ lineStyle }}" />
<view
wx:for="{{ tabs }}"
wx:key="index"
data-index="{{ index }}"
class="{{ getters.tabClass(index === currentIndex, ellipsis) }} {{ utils.bem('tab', { active: index === currentIndex, disabled: item.disabled, complete: !ellipsis }) }}"
style="{{ getters.tabStyle(index === currentIndex, ellipsis, color, type, item.disabled, titleActiveColor, titleInactiveColor, swipeThreshold, scrollable) }}"
bind:tap="onTap"
>
<view class="{{ ellipsis ? 'van-ellipsis' : '' }}" style="{{ item.titleStyle }}">
{{ item.title }}
<van-info
wx:if="{{ item.info !== null || item.dot }}"
info="{{ item.info }}"
dot="{{ item.dot }}"
custom-class="van-tab__title__info"
/>
</view>
</view>
</view>
</scroll-view>
<slot name="nav-right" />
</view>
</van-sticky>
<view
class="van-tabs__content"
bind:touchstart="onTouchStart"
bind:touchmove="onTouchMove"
bind:touchend="onTouchEnd"
bind:touchcancel="onTouchEnd"
>
<view class="{{ utils.bem('tabs__track', [{ animated }]) }} van-tabs__track" style="{{ trackStyle }}">
<slot />
</view>
</view>
</view>
litemall-wx/lib/vant-weapp/tabs/index.wxs
0 → 100644
View file @
b1af78f9
/* eslint-disable */
function tabClass(active, ellipsis) {
var classes = ['tab-class'];
if (active) {
classes.push('tab-active-class');
}
if (ellipsis) {
classes.push('van-ellipsis');
}
return classes.join(' ');
}
function tabStyle(
active,
ellipsis,
color,
type,
disabled,
activeColor,
inactiveColor,
swipeThreshold,
scrollable
) {
var styles = [];
var isCard = type === 'card';
// card theme color
if (color && isCard) {
styles.push('border-color:' + color);
if (!disabled) {
if (active) {
styles.push('background-color:' + color);
} else {
styles.push('color:' + color);
}
}
}
var titleColor = active ? activeColor : inactiveColor;
if (titleColor) {
styles.push('color:' + titleColor);
}
if (scrollable && ellipsis) {
styles.push('flex-basis:' + 88 / swipeThreshold + '%');
}
return styles.join(';');
}
module.exports.tabClass = tabClass;
module.exports.tabStyle = tabStyle;
litemall-wx/lib/vant-weapp/tabs/index.wxss
0 → 100644
View file @
b1af78f9
@import '../common/index.wxss';.van-tabs{position:relative;-webkit-tap-highlight-color:transparent}.van-tabs__wrap{display:-webkit-flex;display:flex;overflow:hidden}.van-tabs__wrap--scrollable .van-tab{-webkit-flex:0 0 22%;flex:0 0 22%}.van-tabs__scroll{background-color:#fff;background-color:var(--tabs-nav-background-color,#fff)}.van-tabs__scroll--line{box-sizing:initial;height:calc(100% + 15px)}.van-tabs__scroll--card{margin:0 16px;margin:0 var(--padding-md,16px)}.van-tabs__nav{position:relative;display:-webkit-flex;display:flex;-webkit-user-select:none;user-select:none}.van-tabs__nav--card{box-sizing:border-box;height:30px;height:var(--tabs-card-height,30px);border:1px solid #ee0a24;border:var(--border-width-base,1px) solid var(--tabs-default-color,#ee0a24);border-radius:2px;border-radius:var(--border-radius-sm,2px)}.van-tabs__nav--card .van-tab{color:#ee0a24;color:var(--tabs-default-color,#ee0a24);line-height:28px;line-height:calc(var(--tabs-card-height, 30px) - 2*var(--border-width-base, 1px));border-right:1px solid #ee0a24;border-right:var(--border-width-base,1px) solid var(--tabs-default-color,#ee0a24)}.van-tabs__nav--card .van-tab:last-child{border-right:none}.van-tabs__nav--card .van-tab.van-tab--active{color:#fff;color:var(--white,#fff);background-color:#ee0a24;background-color:var(--tabs-default-color,#ee0a24)}.van-tabs__nav--card .van-tab--disabled{color:#c8c9cc;color:var(--tab-disabled-text-color,#c8c9cc)}.van-tabs__line{position:absolute;bottom:0;left:0;z-index:1;height:3px;height:var(--tabs-bottom-bar-height,3px);border-radius:3px;border-radius:var(--tabs-bottom-bar-height,3px);background-color:#ee0a24;background-color:var(--tabs-bottom-bar-color,#ee0a24)}.van-tabs__track{position:relative;width:100%;height:100%}.van-tabs__track--animated{display:-webkit-flex;display:flex;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform}.van-tabs__content{overflow:hidden}.van-tabs--line .van-tabs__wrap{height:44px;height:var(--tabs-line-height,44px)}.van-tabs--card .van-tabs__wrap{height:30px;height:var(--tabs-card-height,30px)}.van-tab{position:relative;-webkit-flex:1;flex:1;box-sizing:border-box;min-width:0;padding:0 5px;text-align:center;cursor:pointer;color:#646566;color:var(--tab-text-color,#646566);font-size:14px;font-size:var(--tab-font-size,14px);line-height:44px;line-height:var(--tabs-line-height,44px)}.van-tab--active{font-weight:500;font-weight:var(--font-weight-bold,500);color:#323233;color:var(--tab-active-text-color,#323233)}.van-tab--disabled{color:#c8c9cc;color:var(--tab-disabled-text-color,#c8c9cc)}.van-tab--complete{-webkit-flex:1 0 auto!important;flex:1 0 auto!important}.van-tab__title__info{position:relative!important;top:-1px!important;display:inline-block;-webkit-transform:translateX(0)!important;transform:translateX(0)!important}
\ No newline at end of file
litemall-wx/lib/vant-weapp/toast/index.d.ts
0 → 100644
View file @
b1af78f9
export
{};
litemall-wx/lib/vant-weapp/toast/index.js
0 → 100644
View file @
b1af78f9
import
{
VantComponent
}
from
'
../common/component
'
;
VantComponent
({
props
:
{
show
:
Boolean
,
mask
:
Boolean
,
message
:
String
,
forbidClick
:
Boolean
,
zIndex
:
{
type
:
Number
,
value
:
1000
},
type
:
{
type
:
String
,
value
:
'
text
'
},
loadingType
:
{
type
:
String
,
value
:
'
circular
'
},
position
:
{
type
:
String
,
value
:
'
middle
'
}
},
methods
:
{
// for prevent touchmove
noop
()
{
}
}
});
litemall-wx/lib/vant-weapp/toast/index.json
0 → 100644
View file @
b1af78f9
{
"component"
:
true
,
"usingComponents"
:
{
"van-icon"
:
"../icon/index"
,
"van-loading"
:
"../loading/index"
,
"van-overlay"
:
"../overlay/index"
,
"van-transition"
:
"../transition/index"
}
}
litemall-wx/lib/vant-weapp/toast/index.wxml
0 → 100644
View file @
b1af78f9
<van-overlay
wx:if="{{ mask || forbidClick }}"
show="{{ show }}"
z-index="{{ zIndex }}"
custom-style="{{ mask ? '' : 'background-color: transparent;' }}"
/>
<van-transition
show="{{ show }}"
custom-style="z-index: {{ zIndex }}"
custom-class="van-toast__container"
>
<view
class="van-toast van-toast--{{ type === 'text' ? 'text' : 'icon' }} van-toast--{{ position }}"
catch:touchmove="noop"
>
<!-- text only -->
<text wx:if="{{ type === 'text' }}">{{ message }}</text>
<!-- with icon -->
<block wx:else>
<van-loading
wx:if="{{ type === 'loading' }}"
color="white"
type="{{ loadingType }}"
custom-class="van-toast__loading"
/>
<van-icon wx:else class="van-toast__icon" name="{{ type }}" />
<text wx:if="{{ message }}" class="van-toast__text">{{ message }}</text>
</block>
<slot />
</view>
</van-transition>
litemall-wx/lib/vant-weapp/toast/index.wxss
0 → 100644
View file @
b1af78f9
@import '../common/index.wxss';.van-toast{display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;box-sizing:initial;color:#fff;color:var(--toast-text-color,#fff);font-size:14px;font-size:var(--toast-font-size,14px);line-height:20px;line-height:var(--toast-line-height,20px);white-space:pre-wrap;word-wrap:break-word;background-color:rgba(50,50,51,.88);background-color:var(--toast-background-color,rgba(50,50,51,.88));border-radius:4px;border-radius:var(--toast-border-radius,4px)}.van-toast__container{position:fixed;top:50%;left:50%;width:-webkit-fit-content;width:fit-content;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);max-width:70%;max-width:var(--toast-max-width,70%)}.van-toast--text{min-width:96px;min-width:var(--toast-text-min-width,96px);padding:8px 12px;padding:var(--toast-text-padding,8px 12px)}.van-toast--icon{width:90px;width:var(--toast-default-width,90px);min-height:90px;min-height:var(--toast-default-min-height,90px);padding:16px;padding:var(--toast-default-padding,16px)}.van-toast--icon .van-toast__icon{font-size:48px;font-size:var(--toast-icon-size,48px)}.van-toast--icon .van-toast__text{padding-top:8px}.van-toast__loading{margin:10px 0}.van-toast--top{-webkit-transform:translateY(-30vh);transform:translateY(-30vh)}.van-toast--bottom{-webkit-transform:translateY(30vh);transform:translateY(30vh)}
\ No newline at end of file
litemall-wx/lib/vant-weapp/toast/toast.d.ts
0 → 100644
View file @
b1af78f9
/// <reference types="miniprogram-api-typings" />
declare
type
ToastMessage
=
string
|
number
;
interface
ToastOptions
{
show
?:
boolean
;
type
?:
string
;
mask
?:
boolean
;
zIndex
?:
number
;
context
?:
WechatMiniprogram
.
Component
.
TrivialInstance
|
WechatMiniprogram
.
Page
.
TrivialInstance
;
position
?:
string
;
duration
?:
number
;
selector
?:
string
;
forbidClick
?:
boolean
;
loadingType
?:
string
;
message
?:
ToastMessage
;
onClose
?:
()
=>
void
;
}
declare
function
Toast
(
toastOptions
:
ToastOptions
|
ToastMessage
):
WechatMiniprogram
.
Component
.
TrivialInstance
;
declare
namespace
Toast
{
var
loading
:
(
options
:
string
|
number
|
ToastOptions
)
=>
WechatMiniprogram
.
Component
.
Instance
<
Record
<
string
,
any
>
,
Record
<
string
,
any
>
,
Record
<
string
,
any
>>
;
var
success
:
(
options
:
string
|
number
|
ToastOptions
)
=>
WechatMiniprogram
.
Component
.
Instance
<
Record
<
string
,
any
>
,
Record
<
string
,
any
>
,
Record
<
string
,
any
>>
;
var
fail
:
(
options
:
string
|
number
|
ToastOptions
)
=>
WechatMiniprogram
.
Component
.
Instance
<
Record
<
string
,
any
>
,
Record
<
string
,
any
>
,
Record
<
string
,
any
>>
;
var
clear
:
()
=>
void
;
var
setDefaultOptions
:
(
options
:
ToastOptions
)
=>
void
;
var
resetDefaultOptions
:
()
=>
void
;
}
export
default
Toast
;
litemall-wx/lib/vant-weapp/toast/toast.js
0 → 100644
View file @
b1af78f9
import
{
isObj
}
from
'
../common/utils
'
;
const
defaultOptions
=
{
type
:
'
text
'
,
mask
:
false
,
message
:
''
,
show
:
true
,
zIndex
:
1000
,
duration
:
2000
,
position
:
'
middle
'
,
forbidClick
:
false
,
loadingType
:
'
circular
'
,
selector
:
'
#van-toast
'
};
let
queue
=
[];
let
currentOptions
=
Object
.
assign
({},
defaultOptions
);
function
parseOptions
(
message
)
{
return
isObj
(
message
)
?
message
:
{
message
};
}
function
getContext
()
{
const
pages
=
getCurrentPages
();
return
pages
[
pages
.
length
-
1
];
}
function
Toast
(
toastOptions
)
{
const
options
=
Object
.
assign
(
Object
.
assign
({},
currentOptions
),
parseOptions
(
toastOptions
));
const
context
=
options
.
context
||
getContext
();
const
toast
=
context
.
selectComponent
(
options
.
selector
);
if
(
!
toast
)
{
console
.
warn
(
'
未找到 van-toast 节点,请确认 selector 及 context 是否正确
'
);
return
;
}
delete
options
.
context
;
delete
options
.
selector
;
toast
.
clear
=
()
=>
{
toast
.
setData
({
show
:
false
});
if
(
options
.
onClose
)
{
options
.
onClose
();
}
};
queue
.
push
(
toast
);
toast
.
setData
(
options
);
clearTimeout
(
toast
.
timer
);
if
(
options
.
duration
>
0
)
{
toast
.
timer
=
setTimeout
(()
=>
{
toast
.
clear
();
queue
=
queue
.
filter
(
item
=>
item
!==
toast
);
},
options
.
duration
);
}
return
toast
;
}
const
createMethod
=
(
type
)
=>
(
options
)
=>
Toast
(
Object
.
assign
({
type
},
parseOptions
(
options
)));
Toast
.
loading
=
createMethod
(
'
loading
'
);
Toast
.
success
=
createMethod
(
'
success
'
);
Toast
.
fail
=
createMethod
(
'
fail
'
);
Toast
.
clear
=
()
=>
{
queue
.
forEach
(
toast
=>
{
toast
.
clear
();
});
queue
=
[];
};
Toast
.
setDefaultOptions
=
(
options
)
=>
{
Object
.
assign
(
currentOptions
,
options
);
};
Toast
.
resetDefaultOptions
=
()
=>
{
currentOptions
=
Object
.
assign
({},
defaultOptions
);
};
export
default
Toast
;
litemall-wx/lib/vant-weapp/transition/index.d.ts
0 → 100644
View file @
b1af78f9
export
{};
litemall-wx/lib/vant-weapp/transition/index.js
0 → 100644
View file @
b1af78f9
import
{
VantComponent
}
from
'
../common/component
'
;
import
{
transition
}
from
'
../mixins/transition
'
;
VantComponent
({
classes
:
[
'
enter-class
'
,
'
enter-active-class
'
,
'
enter-to-class
'
,
'
leave-class
'
,
'
leave-active-class
'
,
'
leave-to-class
'
],
mixins
:
[
transition
(
true
)]
});
litemall-wx/lib/vant-weapp/transition/index.json
0 → 100644
View file @
b1af78f9
{
"component"
:
true
}
\ No newline at end of file
litemall-wx/lib/vant-weapp/transition/index.wxml
0 → 100644
View file @
b1af78f9
<view
wx:if="{{ inited }}"
class="van-transition custom-class {{ classes }}"
style="-webkit-transition-duration:{{ currentDuration }}ms; transition-duration:{{ currentDuration }}ms; {{ display ? '' : 'display: none;' }} {{ customStyle }}"
bind:transitionend="onTransitionEnd"
>
<slot />
</view>
litemall-wx/lib/vant-weapp/transition/index.wxss
0 → 100644
View file @
b1af78f9
@import '../common/index.wxss';.van-transition{transition-timing-function:ease}.van-fade-enter-active,.van-fade-leave-active{transition-property:opacity}.van-fade-enter,.van-fade-leave-to{opacity:0}.van-fade-down-enter-active,.van-fade-down-leave-active,.van-fade-left-enter-active,.van-fade-left-leave-active,.van-fade-right-enter-active,.van-fade-right-leave-active,.van-fade-up-enter-active,.van-fade-up-leave-active{transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform}.van-fade-up-enter,.van-fade-up-leave-to{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);opacity:0}.van-fade-down-enter,.van-fade-down-leave-to{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);opacity:0}.van-fade-left-enter,.van-fade-left-leave-to{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);opacity:0}.van-fade-right-enter,.van-fade-right-leave-to{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);opacity:0}.van-slide-down-enter-active,.van-slide-down-leave-active,.van-slide-left-enter-active,.van-slide-left-leave-active,.van-slide-right-enter-active,.van-slide-right-leave-active,.van-slide-up-enter-active,.van-slide-up-leave-active{transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform}.van-slide-up-enter,.van-slide-up-leave-to{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.van-slide-down-enter,.van-slide-down-leave-to{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}.van-slide-left-enter,.van-slide-left-leave-to{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.van-slide-right-enter,.van-slide-right-leave-to{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}
\ No newline at end of file
litemall-wx/lib/vant-weapp/tree-select/index.d.ts
0 → 100644
View file @
b1af78f9
export
{};
litemall-wx/lib/vant-weapp/tree-select/index.js
0 → 100644
View file @
b1af78f9
import
{
VantComponent
}
from
'
../common/component
'
;
import
{
addUnit
}
from
'
../common/utils
'
;
VantComponent
({
classes
:
[
'
main-item-class
'
,
'
content-item-class
'
,
'
main-active-class
'
,
'
content-active-class
'
,
'
main-disabled-class
'
,
'
content-disabled-class
'
],
props
:
{
items
:
{
type
:
Array
,
observer
:
'
updateSubItems
'
},
activeId
:
null
,
mainActiveIndex
:
{
type
:
Number
,
value
:
0
,
observer
:
'
updateSubItems
'
},
height
:
{
type
:
[
Number
,
String
],
value
:
300
,
observer
:
'
updateHeight
'
},
max
:
{
type
:
Number
,
value
:
Infinity
}
},
data
:
{
subItems
:
[]
},
created
()
{
this
.
updateHeight
();
},
methods
:
{
// 当一个子项被选择时
onSelectItem
(
event
)
{
const
{
item
}
=
event
.
currentTarget
.
dataset
;
const
isArray
=
Array
.
isArray
(
this
.
data
.
activeId
);
// 判断有没有超出右侧选择的最大数
const
isOverMax
=
isArray
&&
this
.
data
.
activeId
.
length
>=
this
.
data
.
max
;
// 判断该项有没有被选中, 如果有被选中,则忽视是否超出的条件
const
isSelected
=
isArray
?
this
.
data
.
activeId
.
indexOf
(
item
.
id
)
>
-
1
:
this
.
data
.
activeId
===
item
.
id
;
if
(
!
item
.
disabled
&&
(
!
isOverMax
||
isSelected
))
{
this
.
$emit
(
'
click-item
'
,
item
);
}
},
// 当一个导航被点击时
onClickNav
(
event
)
{
const
index
=
event
.
detail
;
const
item
=
this
.
data
.
items
[
index
];
if
(
!
item
.
disabled
)
{
this
.
$emit
(
'
click-nav
'
,
{
index
});
}
},
// 更新子项列表
updateSubItems
()
{
const
{
items
,
mainActiveIndex
}
=
this
.
data
;
const
{
children
=
[]
}
=
items
[
mainActiveIndex
]
||
{};
return
this
.
set
({
subItems
:
children
});
},
updateHeight
()
{
this
.
setData
({
innerHeight
:
addUnit
(
this
.
data
.
height
)
});
}
}
});
Prev
1
…
11
12
13
14
15
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