Component({
  options: { multipleSlots: true, addGlobalClass: true },
  /**
   * 组件的属性列表
   */
  properties: {
    useFooterSlot: {
      type: Boolean,
    },
    dataKey: {
      type: String,
    },
    placeholder: {
      type: String,
    },
    value: null,
    hideMore: {
      type: Boolean,
    },
    hideInput: {
      type: Boolean,
    },
    customStyle: {
      type: String,
      value: '',
    },
    useInputSlot: {
      type: Boolean,
    },
  },

  /**
   * 组件的初始数据
   */
  data: {
    show: false,
  },

  /**
   * 组件的方法列表
   */
  methods: {
    showSearch() {
      this.setData({ show: true });
      this.triggerEvent('showChange', true);
    },
    close() {
      this.setData({ show: false });
      this.triggerEvent('showChange', false);
    },
    ok() {
      this.setData({ show: false });
      this.triggerEvent('showChange', false);
      this.triggerEvent('ok');
    },
    reset() {
      this.setData({ show: false });
      this.triggerEvent('showChange', false);
      this.triggerEvent('reset');
    },
    change(e: any) {
      this.triggerEvent('change', e.detail);
    },
    scanCode() {
      const _this = this;
      wx.scanCode({
        onlyFromCamera: true,
        scanType: ['qrCode'],
        success: (res) => {
          const qrcode = res.result || '';
          _this.triggerEvent('change', { value: qrcode });
          _this.triggerEvent('ok');
        },
      });
    },
    search() {
      this.triggerEvent('ok');
    },
    clear() {
      this.triggerEvent('change', { value: '' });
      this.triggerEvent('ok');
    },
  },
});
