12 changed files with 18 additions and 194 deletions
Unified View
Diff Options
-
6components/calendar/index.js
-
3components/calendar/index.json
-
22components/calendar/index.wxml
-
20components/index-bar/index.wxml
-
26components/submit-bar/index.wxml
-
29components/toast/index.js
-
9components/toast/index.json
-
19components/toast/index.wxml
-
1components/toast/index.wxss
-
70components/toast/toast.js
-
2pages/home/user-info/index.js
-
5utils/util.js
@ -1,22 +1,12 @@ |
|||||
<view class="van-index-bar"> |
<view class="van-index-bar"> |
||||
<slot /> |
<slot /> |
||||
|
|
||||
<view |
|
||||
wx:if="{{ showSidebar }}" |
|
||||
class="van-index-bar__sidebar" |
|
||||
catch:tap="onClick" |
|
||||
catch:touchmove="onTouchMove" |
|
||||
catch:touchend="onTouchStop" |
|
||||
catch:touchcancel="onTouchStop" |
|
||||
> |
|
||||
<view |
|
||||
wx:for="{{ indexList }}" |
|
||||
wx:key="index" |
|
||||
class="van-index-bar__index" |
|
||||
|
<view wx:if="{{ showSidebar }}" class="van-index-bar__sidebar" catch:tap="onClick" catch:touchmove="onTouchMove" |
||||
|
catch:touchend="onTouchStop" catch:touchcancel="onTouchStop"> |
||||
|
<view wx:for="{{ indexList }}" wx:key="index" class="van-index-bar__index" |
||||
style="z-index: {{ zIndex + 1 }}; color: {{ activeAnchorIndex === index ? highlightColor : '' }}" |
style="z-index: {{ zIndex + 1 }}; color: {{ activeAnchorIndex === index ? highlightColor : '' }}" |
||||
data-index="{{ index }}" |
|
||||
> |
|
||||
|
data-index="{{ index }}"> |
||||
{{ item }} |
{{ item }} |
||||
</view> |
</view> |
||||
</view> |
</view> |
||||
</view> |
|
||||
|
</view> |
||||
@ -1,29 +0,0 @@ |
|||||
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() {}, |
|
||||
}, |
|
||||
}); |
|
||||
@ -1,9 +0,0 @@ |
|||||
{ |
|
||||
"component": true, |
|
||||
"usingComponents": { |
|
||||
"van-icon": "../icon/index", |
|
||||
"van-loading": "../loading/index", |
|
||||
"van-overlay": "../overlay/index", |
|
||||
"van-transition": "../transition/index" |
|
||||
} |
|
||||
} |
|
||||
@ -1,19 +0,0 @@ |
|||||
<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> |
|
||||
@ -1 +0,0 @@ |
|||||
@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(0,0,0,.7);background-color:var(--toast-background-color,rgba(0,0,0,.7));border-radius:8px;border-radius:var(--toast-border-radius,8px)}.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:88px;width:var(--toast-default-width,88px);min-height:88px;min-height:var(--toast-default-min-height,88px);padding:16px;padding:var(--toast-default-padding,16px)}.van-toast--icon .van-toast__icon{font-size:36px;font-size:var(--toast-icon-size,36px)}.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)} |
|
||||
@ -1,70 +0,0 @@ |
|||||
import { isObj } from '../common/validator'; |
|
||||
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 != null && 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; |
|
||||
Write
Preview
Loading…
Cancel
Save