康巴易测肤/伤疤uniapp小程序类
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.

86 lines
4.8KB

  1. <template>
  2. <uvTextarea
  3. :value="value"
  4. :placeholder="placeholder"
  5. :height="height"
  6. :confirmType="confirmType"
  7. :disabled="disabled"
  8. :count="count"
  9. :focus="focus"
  10. :autoHeight="autoHeight"
  11. :fixed="fixed"
  12. :cursorSpacing="cursorSpacing"
  13. :cursor="cursor"
  14. :showConfirmBar="showConfirmBar"
  15. :selectionStart="selectionStart"
  16. :selectionEnd="selectionEnd"
  17. :adjustPosition="adjustPosition"
  18. :disableDefaultPadding="disableDefaultPadding"
  19. :holdKeyboard="holdKeyboard"
  20. :maxlength="maxlength"
  21. :border="border"
  22. :customStyle="customStyle"
  23. :formatter="formatter"
  24. :ignoreCompositionEvent="ignoreCompositionEvent"
  25. @focus="e => $emit('focus', e)"
  26. @blur="e => $emit('blur', e)"
  27. @linechange="e => $emit('linechange', e)"
  28. @confirm="e => $emit('confirm', e)"
  29. @input="e => $emit('input', e)"
  30. @keyboardheightchange="e => $emit('keyboardheightchange', e)"
  31. ></uvTextarea>
  32. </template>
  33. <script>
  34. /**
  35. * 此组件存在的理由是,在nvue下,u--textarea被uni-app官方占用了,u-textarea在nvue中相当于textarea组件
  36. * 所以在nvue下,取名为u--textarea,内部其实还是u-textarea.vue,只不过做一层中转
  37. */
  38. import uvTextarea from '../u-textarea/u-textarea.vue';
  39. import props from '../u-textarea/props.js'
  40. /**
  41. * Textarea 文本域
  42. * @description 文本域此组件满足了可能出现的表单信息补充,编辑等实际逻辑的功能,内置了字数校验等
  43. * @tutorial https://www.uviewui.com/components/textarea.html
  44. *
  45. * @property {String | Number} value 输入框的内容
  46. * @property {String | Number} placeholder 输入框为空时占位符
  47. * @property {String} placeholderClass 指定placeholder的样式类,注意页面或组件的style中写了scoped时,需要在类名前写/deep/ ( 默认 'input-placeholder' )
  48. * @property {String | Object} placeholderStyle 指定placeholder的样式,字符串/对象形式,如"color: red;"
  49. * @property {String | Number} height 输入框高度(默认 70 )
  50. * @property {String} confirmType 设置键盘右下角按钮的文字,仅微信小程序,App-vue和H5有效(默认 'done' )
  51. * @property {Boolean} disabled 是否禁用(默认 false )
  52. * @property {Boolean} count 是否显示统计字数(默认 false )
  53. * @property {Boolean} focus 是否自动获取焦点,nvue不支持,H5取决于浏览器的实现(默认 false )
  54. * @property {Boolean | Function} autoHeight 是否自动增加高度(默认 false )
  55. * @property {Boolean} fixed 如果textarea是在一个position:fixed的区域,需要显示指定属性fixed为true(默认 false )
  56. * @property {Number} cursorSpacing 指定光标与键盘的距离(默认 0 )
  57. * @property {String | Number} cursor 指定focus时的光标位置
  58. * @property {Function} formatter 内容式化函数
  59. * @property {Boolean} showConfirmBar 是否显示键盘上方带有”完成“按钮那一栏,(默认 true )
  60. * @property {Number} selectionStart 光标起始位置,自动聚焦时有效,需与selection-end搭配使用,(默认 -1 )
  61. * @property {Number | Number} selectionEnd 光标结束位置,自动聚焦时有效,需与selection-start搭配使用(默认 -1 )
  62. * @property {Boolean} adjustPosition 键盘弹起时,是否自动上推页面(默认 true )
  63. * @property {Boolean | Number} disableDefaultPadding 是否去掉 iOS 下的默认内边距,只微信小程序有效(默认 false )
  64. * @property {Boolean} holdKeyboard focus时,点击页面的时候不收起键盘,只微信小程序有效(默认 false )
  65. * @property {String | Number} maxlength 最大输入长度,设置为 -1 的时候不限制最大长度(默认 140 )
  66. * @property {String} border 边框类型,surround-四周边框,none-无边框,bottom-底部边框(默认 'surround' )
  67. * @property {Boolean} ignoreCompositionEvent 是否忽略组件内对文本合成系统事件的处理
  68. *
  69. * @event {Function(e)} focus 输入框聚焦时触发,event.detail = { value, height },height 为键盘高度
  70. * @event {Function(e)} blur 输入框失去焦点时触发,event.detail = {value, cursor}
  71. * @event {Function(e)} linechange 输入框行数变化时调用,event.detail = {height: 0, heightRpx: 0, lineCount: 0}
  72. * @event {Function(e)} input 当键盘输入时,触发 input 事件
  73. * @event {Function(e)} confirm 点击完成时, 触发 confirm 事件
  74. * @event {Function(e)} keyboardheightchange 键盘高度发生变化的时候触发此事件
  75. * @example <u--textarea v-model="value1" placeholder="请输入内容" ></u--textarea>
  76. */
  77. export default {
  78. name: 'u--textarea',
  79. mixins: [uni.$u.mpMixin, props, uni.$u.mixin],
  80. components: {
  81. uvTextarea
  82. },
  83. }
  84. </script>