/*******************************************************************************
 * Copyright(c) 2022 dongke All rights reserved. / Confidential
 * 类的信息：
 *		1.程序名称：
 *		2.功能描述：dkField组件
 * 编辑履历：
 *		作者				日期					版本				修改内容
 *		admin		  	2022-11-22  			1.00		   	  新建
 *******************************************************************************/
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    name: String, //在表单内提交时的标识符
    label: String,//输入框左侧文本
    size: String,//单元格大小，可选值为 large
    value: [String, Number],//当前输入的值
    icon: String,
    type: String,//可设置为任意原生类型, 如 number idcard textarea digit
    fixed: Boolean,//如果 type 为 textarea 且在一个 position:fixed 的区域，需要显示指定属性 fixed 为 true
    focus: Boolean,//获取焦点   
    disabled: Boolean,//是否禁用输入框
    error: Boolean,//是否将输入内容标红
    center: Boolean,//是否使内容垂直居中
    password: Boolean,//是否是密码类型
    isLink: Boolean,//是否展示右侧箭头并开启点击反馈
    leftIcon: String,//左侧图标名称或图片链接，可选值见 Icon 组件
    rightIcon: String,//右侧图标名称或图片链接，可选值见 Icon 组件
    autosize: Boolean,//是否自适应内容高度，只对 textarea 有效， 可传入对象,如 { maxHeight: 100, minHeight: 50 }， 单位为px
    autoFocus: Boolean,//自动聚焦，拉起键盘
    required: Boolean,//是否显示表单必填星号    
    clickable: Boolean,//是否开启点击反馈 
    errorMessage: String,//	底部错误提示文案，为空时不展示
    arrowDirection: String,//箭头方向，可选值为 left up down
    showWordLimit: Boolean,//是否显示字数统计，需要设置maxlength属性
    errorMessageAlign: String,//底部错误提示文案对齐方式，可选值为 center right
    placeholder: String,//输入框为空时占位符
    placeholderStyle: String,//指定 placeholder 的样式
    customStyle: String,//自定义样式
    readonly: Boolean,//是否只读
    clearable: Boolean, //是否启用清除控件 
    inputAlign: {
      type: String,
      value: 'left'
    },//输入框内容对齐方式，可选值为 center right 
    border: {
      type: Boolean,
      value: true
    },//是否显示内边框
    //标题宽度
    titleWidth: {
      type: String,
      value: '6.2em',
    },
    // 最大输入长度，设置为 -1 的时候不限制最大长度
    maxlength: {
      type: Number,
      value: -1,
    },
    //设置键盘右下角按钮的文字，仅在 type='text' 时生效
    confirmType: {
      type: String,
      value: 'done',
    },
    confirmHold: Boolean, //点击键盘右下角按钮时是否保持键盘不收起，在 type='textarea' 时无效
    holdKeyboard: Boolean, //focus 时，点击页面的时候不收起键盘
    // 输入框聚焦时底部与键盘的距离
    cursorSpacing: {
      type: Number,
      value: 50,
    },
    //键盘弹起时，是否自动上推页面
    adjustPosition: {
      type: Boolean,
      value: true
    },
    //是否显示键盘上方带有”完成“按钮那一栏，只对 textarea 有效
    showConfirmBar: {
      type: Boolean,
      value: true
    },
    // 光标起始位置，自动聚集时有效，需与 selection-end 搭配使用
    selectionStart: {
      type: Number,
      value: -1,
    },
    // 光标结束位置，自动聚集时有效，需与 selection-start 搭配使用
    selectionEnd: {
      type: Number,
      value: -1,
    },

    rightIconClass: String,//右侧图标样式类
    labelClass: String,//左侧文本样式类
    inputClass: String,//输入框样式类
  },

  /**
   * 组件的初始数据
   */
  data: {

  },

  /**
   * 组件的方法列表
   */
  methods: {
    /**
     * 输入内容时触发
     * @param {*} event 
     */
    onInput(event) {
      this.triggerEvent("input", event)
    },
    /**
         * 输入内容时触发
         * @param {*} event 
         */
    onChange(event) {
      this.triggerEvent("change", event)
    },
    /**
         * 点击完成按钮时触发
         * @param {*} event 
         */
    onConfirm(event) {
      this.triggerEvent("confirm", event)
    },
    /**
     * 输入框聚焦时触发
     * @param {*} event 
     */
    onFocus(event) {
      this.triggerEvent("focus", event)
    },
    /**
     * 点输入框失焦时触发
     * @param {*} event 
     */
    onBlur(event) {
      this.triggerEvent("blur", event)
    },
  }
})
