小程序npm和node模块
This commit is contained in:
1 parent
a07c8f7ef9
commit
66b2e3ddac
1402 files changed
+35461
No files matched your search
+130
@@ -0,0 +1,130 @@
|
||||
import { VantComponent } from '../common/component';
|
||||
import { button } from '../mixins/button';
|
||||
import { GRAY, RED } from '../common/color';
|
||||
import { toPromise } from '../common/utils';
|
||||
VantComponent({
|
||||
mixins: [button],
|
||||
classes: ['cancle-button-class', 'confirm-button-class'],
|
||||
props: {
|
||||
show: {
|
||||
type: Boolean,
|
||||
observer(show) {
|
||||
!show && this.stopLoading();
|
||||
},
|
||||
},
|
||||
title: String,
|
||||
message: String,
|
||||
theme: {
|
||||
type: String,
|
||||
value: 'default',
|
||||
},
|
||||
confirmButtonId: String,
|
||||
className: String,
|
||||
customStyle: String,
|
||||
asyncClose: Boolean,
|
||||
messageAlign: String,
|
||||
beforeClose: null,
|
||||
overlayStyle: String,
|
||||
useSlot: Boolean,
|
||||
useTitleSlot: Boolean,
|
||||
useConfirmButtonSlot: Boolean,
|
||||
useCancelButtonSlot: Boolean,
|
||||
showCancelButton: Boolean,
|
||||
closeOnClickOverlay: Boolean,
|
||||
confirmButtonOpenType: String,
|
||||
width: null,
|
||||
zIndex: {
|
||||
type: Number,
|
||||
value: 2000,
|
||||
},
|
||||
confirmButtonText: {
|
||||
type: String,
|
||||
value: '确认',
|
||||
},
|
||||
cancelButtonText: {
|
||||
type: String,
|
||||
value: '取消',
|
||||
},
|
||||
confirmButtonColor: {
|
||||
type: String,
|
||||
value: RED,
|
||||
},
|
||||
cancelButtonColor: {
|
||||
type: String,
|
||||
value: GRAY,
|
||||
},
|
||||
showConfirmButton: {
|
||||
type: Boolean,
|
||||
value: true,
|
||||
},
|
||||
overlay: {
|
||||
type: Boolean,
|
||||
value: true,
|
||||
},
|
||||
transition: {
|
||||
type: String,
|
||||
value: 'scale',
|
||||
},
|
||||
rootPortal: {
|
||||
type: Boolean,
|
||||
value: false,
|
||||
},
|
||||
},
|
||||
data: {
|
||||
loading: {
|
||||
confirm: false,
|
||||
cancel: false,
|
||||
},
|
||||
callback: (() => { }),
|
||||
},
|
||||
methods: {
|
||||
onConfirm() {
|
||||
this.handleAction('confirm');
|
||||
},
|
||||
onCancel() {
|
||||
this.handleAction('cancel');
|
||||
},
|
||||
onClickOverlay() {
|
||||
this.close('overlay');
|
||||
},
|
||||
close(action) {
|
||||
this.setData({ show: false });
|
||||
wx.nextTick(() => {
|
||||
this.$emit('close', action);
|
||||
const { callback } = this.data;
|
||||
if (callback) {
|
||||
callback(action, this);
|
||||
}
|
||||
});
|
||||
},
|
||||
stopLoading() {
|
||||
this.setData({
|
||||
loading: {
|
||||
confirm: false,
|
||||
cancel: false,
|
||||
},
|
||||
});
|
||||
},
|
||||
handleAction(action) {
|
||||
this.$emit(action, { dialog: this });
|
||||
const { asyncClose, beforeClose } = this.data;
|
||||
if (!asyncClose && !beforeClose) {
|
||||
this.close(action);
|
||||
return;
|
||||
}
|
||||
this.setData({
|
||||
[`loading.${action}`]: true,
|
||||
});
|
||||
if (beforeClose) {
|
||||
toPromise(beforeClose(action)).then((value) => {
|
||||
if (value) {
|
||||
this.close(action);
|
||||
}
|
||||
else {
|
||||
this.stopLoading();
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
},
|
||||
});
|
||||
Reference in new issue
Block a user