You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
import computeOffset from '../behaviors/computeOffset' ;
import zIndex from '../behaviors/zIndex' ;
import watchShow from '../behaviors/watchShow' ;
Component ( {
/**
* 组件的属性列表
*/
behaviors : [ computeOffset , zIndex , watchShow ] ,
externalClasses : [ 'l-bg-class' , 'l-icon-class' , 'l-class' , 'l-image-class' , 'l-title-class ' ] ,
properties : {
// 显示与隐藏
show : {
type : Boolean ,
value : false
} ,
// 提示框的文本内容
title : String ,
// icon
icon : String ,
iconSize : String ,
iconColor : String ,
// image
image : String ,
// 文字的显示方位
placement : {
type : String ,
value : 'bottom'
} ,
// 提示框显示的时长
duration : {
type : Number ,
value : 1500
} ,
// 提示框的层级
zIndex : {
type : Number ,
value : 777
} ,
// 设置提示框是否为垂直居中
center : {
type : Boolean ,
value : true
} ,
// 是否显示透明蒙层,防止触摸穿透
mask : {
type : Boolean ,
value : false
} ,
openApi : {
type : Boolean ,
value : true ,
} ,
offsetX : Number ,
offsetY : Number
} ,
/**
* 组件的初始数据
*/
data : {
status : false ,
success : '' ,
fail : '' ,
complete : ''
} ,
// 解决 addListener undefined 的错误
observers : {
'icon' : function ( ) { }
} ,
attached ( ) {
if ( this . data . openApi ) {
this . initToast ( ) ;
}
} ,
pageLifetimes : {
show ( ) {
if ( this . data . openApi ) {
this . initToast ( ) ;
}
this . offsetMargin ( ) ;
} ,
} ,
/**
* 组件的方法列表
*/
methods : {
initToast ( ) {
wx . lin = wx . lin || { } ;
wx . lin . showToast = ( options = { } ) => {
console . warn ( 'wx.lin 已废弃, 请使用开放函数代替: https://doc.mini.talelin.com//start/open-function.html' ) ;
this . linShow ( options ) ;
return this ;
} ;
wx . lin . hideToast = ( ) => {
console . warn ( 'wx.lin 已废弃, 请使用开放函数代替: https://doc.mini.talelin.com//start/open-function.html' ) ;
this . linHide ( ) ;
} ;
} ,
strlen ( str ) {
var len = 0 ;
for ( var i = 0 ; i < str . length ; i ++ ) {
var c = str . charCodeAt ( i ) ;
if ( ( c >= '0x0001' && c <= '0x007e' ) || ( '0xff60' <= c && c <= '0xff9f' ) ) {
len ++ ;
} else {
len += 2 ;
}
}
return len ;
} ,
// 阻止滑动
doNothingMove ( ) {
// do nothing……
} ,
// 点击事件
onMaskTap ( ) {
let detail = true ;
let option = {
bubbles : true ,
composed : true
} ;
if ( this . data . locked !== true ) {
this . setData ( {
fullScreen : 'hide' ,
status : 'hide' ,
} ) ;
}
this . triggerEvent ( 'lintap' , detail , option ) ;
} ,
// ========== 开放函数 =============
/**
* 显示 toast
* @param options toast 参数
*/
linShow ( options ) {
if ( ! options ) {
options = { } ;
}
const {
title = '' ,
icon = '' ,
image = '' ,
placement = 'bottom' ,
duration = 1500 ,
center = true ,
mask = false ,
success = null ,
complete = null ,
offsetX = 0 ,
offsetY = 0 ,
iconSize = '60' ,
iconColor = ''
} = options ;
this . setData ( {
title ,
icon ,
image ,
placement ,
duration ,
center ,
mask ,
success ,
complete ,
offsetY ,
offsetX ,
iconSize ,
iconColor
} ) ;
this . changeStatus ( ) ;
} ,
/**
* 隐藏 toast
*/
linHide ( ) {
this . setData ( {
status : false
} ) ;
}
}
} ) ;