vant
This commit is contained in:
1
utils/dist/notify/index.d.ts
vendored
Normal file
1
utils/dist/notify/index.d.ts
vendored
Normal file
@@ -0,0 +1 @@
|
||||
export {};
|
||||
59
utils/dist/notify/index.js
vendored
Normal file
59
utils/dist/notify/index.js
vendored
Normal file
@@ -0,0 +1,59 @@
|
||||
import { VantComponent } from '../common/component';
|
||||
import { WHITE } from '../common/color';
|
||||
VantComponent({
|
||||
props: {
|
||||
message: String,
|
||||
background: String,
|
||||
type: {
|
||||
type: String,
|
||||
value: 'danger'
|
||||
},
|
||||
color: {
|
||||
type: String,
|
||||
value: WHITE
|
||||
},
|
||||
duration: {
|
||||
type: Number,
|
||||
value: 3000
|
||||
},
|
||||
zIndex: {
|
||||
type: Number,
|
||||
value: 110
|
||||
},
|
||||
safeAreaInsetTop: {
|
||||
type: Boolean,
|
||||
value: false
|
||||
}
|
||||
},
|
||||
created() {
|
||||
const { statusBarHeight } = wx.getSystemInfoSync();
|
||||
this.setData({ statusBarHeight });
|
||||
},
|
||||
methods: {
|
||||
show() {
|
||||
const { duration, onOpened } = this.data;
|
||||
clearTimeout(this.timer);
|
||||
this.setData({
|
||||
show: true
|
||||
}, onOpened);
|
||||
if (duration > 0 && duration !== Infinity) {
|
||||
this.timer = setTimeout(() => {
|
||||
this.hide();
|
||||
}, duration);
|
||||
}
|
||||
},
|
||||
hide() {
|
||||
const { onClose } = this.data;
|
||||
clearTimeout(this.timer);
|
||||
this.setData({
|
||||
show: false
|
||||
}, onClose);
|
||||
},
|
||||
onTap(event) {
|
||||
const { onClick } = this.data;
|
||||
if (onClick) {
|
||||
onClick(event.detail);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
6
utils/dist/notify/index.json
vendored
Normal file
6
utils/dist/notify/index.json
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"component": true,
|
||||
"usingComponents": {
|
||||
"van-transition": "../transition/index"
|
||||
}
|
||||
}
|
||||
15
utils/dist/notify/index.wxml
vendored
Normal file
15
utils/dist/notify/index.wxml
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
<van-transition
|
||||
name="slide-down"
|
||||
show="{{ show }}"
|
||||
custom-class="van-notify__container"
|
||||
custom-style="z-index: {{ zIndex }};"
|
||||
bind:tap="onTap"
|
||||
>
|
||||
<view
|
||||
class="van-notify van-notify--{{ type }}"
|
||||
style="background:{{ background }};color:{{ color }};"
|
||||
>
|
||||
<view wx:if="{{ safeAreaInsetTop }}" class="van-notify__safe-area"></view>
|
||||
<text>{{ message }}</text>
|
||||
</view>
|
||||
</van-transition>
|
||||
1
utils/dist/notify/index.wxss
vendored
Normal file
1
utils/dist/notify/index.wxss
vendored
Normal file
@@ -0,0 +1 @@
|
||||
@import '../common/index.wxss';.van-notify{text-align:center;word-wrap:break-word;padding:6px 15px;padding:var(--notify-padding,6px 15px);font-size:14px;font-size:var(--notify-font-size,14px);line-height:20px;line-height:var(--notify-line-height,20px)}.van-notify__container{position:fixed;top:0;box-sizing:border-box;width:100%}.van-notify--primary{background-color:#1989fa;background-color:var(--notify-primary-background-color,#1989fa)}.van-notify--success{background-color:#07c160;background-color:var(--notify-success-background-color,#07c160)}.van-notify--danger{background-color:#ee0a24;background-color:var(--notify-danger-background-color,#ee0a24)}.van-notify--warning{background-color:#ff976a;background-color:var(--notify-warning-background-color,#ff976a)}
|
||||
19
utils/dist/notify/notify.d.ts
vendored
Normal file
19
utils/dist/notify/notify.d.ts
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
interface NotifyOptions {
|
||||
type?: 'primary' | 'success' | 'danger' | 'warning';
|
||||
color?: string;
|
||||
zIndex?: number;
|
||||
message: string;
|
||||
context?: any;
|
||||
duration?: number;
|
||||
selector?: string;
|
||||
background?: string;
|
||||
safeAreaInsetTop?: boolean;
|
||||
onClick?: () => void;
|
||||
onOpened?: () => void;
|
||||
onClose?: () => void;
|
||||
}
|
||||
declare function Notify(options: NotifyOptions | string): any;
|
||||
declare namespace Notify {
|
||||
var clear: (options?: NotifyOptions) => void;
|
||||
}
|
||||
export default Notify;
|
||||
41
utils/dist/notify/notify.js
vendored
Normal file
41
utils/dist/notify/notify.js
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
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();
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user