| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 | // components/password/index.jsComponent({  /**   * 组件的属性列表   */  properties: {    show: {      type: Boolean,      value: false,    },    length: {      type: Number,      value: 6,    },    title: {      type: String,      value: '请输入密码',    },    showBtn: {      type: Boolean,      value: false    },    btnTitle: {      type: String,      value: '确 认',    },  },  /**   * 组件的初始数据   */  data: {    password: '',    showKeyFocus:true  },  /**   * 组件的方法列表   */  methods: {    onClose() {      this.setData({        show: false,        password: ''      })    },    //失去输入密码焦点    onblur() {      console.log('失去焦点');      this.setData({        showKeyFocus: false      })    },    //模拟点击唤起键盘    onShowBlur() {      console.log('唤起键盘焦点');      this.setData({        showKeyFocus: true      })    },    //输入完成自动失去焦点    onInput(e) {      let {        length      } = this.data      let {        cursor      } = e.detail      if (cursor == length) {        console.log('输入完成');        wx.hideKeyboard()        this.okResult()      }    },    /* 确认密码返回事件给父组件 */    okResult() {      let {        password      } = this.data      this.triggerEvent("onResult", {        password: password      });    },    onClickOk(){      let {        password,        length      } = this.data      if(password && String(password).length == length){        this.triggerEvent("onClickBack", {          password: password        });        return      }    }  },  lifetimes:{    detached: function() {      // 在组件实例被从页面节点树移除时执行      console.log('子组件————————detached')      this.setData({        password:''      })    },  },})
 |