1.0.1 • Published 1 month ago

@tanzhenxing/zx-order-remark v1.0.1

Weekly downloads
-
License
ISC
Repository
-
Last release
1 month ago

OrderRemark 订单备注

订单备注组件,专门用于订单备注场景,支持字数限制、快捷短语、清除功能、表单验证等功能。

特性

  • 📝 支持多行文本输入
  • 🔢 字数统计和限制
  • 🚀 快捷短语选择
  • ✨ 清除按钮
  • 📋 表单验证
  • 🎨 多种边框样式
  • 📱 多端兼容(H5、小程序、App)
  • 🎯 专为订单备注场景设计

基础用法

<template>
  <zx-order-remark 
    v-model="remark" 
    title="订单备注" 
    placeholder="请输入您的订单备注"
  />
</template>

<script setup>
import { ref } from 'vue'

const remark = ref('')
</script>

快捷短语

<template>
  <zx-order-remark 
    v-model="remark" 
    title="订单备注" 
    :quick-phrases="phrases"
    phrases-title="常用备注"
    @phrase-select="onPhraseSelect"
  />
</template>

<script setup>
import { ref } from 'vue'

const remark = ref('')
const phrases = [
  '尽快发货',
  '包装仔细一点',
  '送货上门',
  '工作日配送',
  '周末配送',
  '节假日不配送'
]

const onPhraseSelect = (phrase) => {
  console.log('选择了短语:', phrase)
}
</script>

表单验证

<template>
  <zx-order-remark 
    v-model="remark" 
    title="订单备注" 
    required
    :min-length="5"
    :max-length="100"
    :error-message="errorMsg"
    @validate="onValidate"
  />
</template>

<script setup>
import { ref } from 'vue'

const remark = ref('')
const errorMsg = ref('')

const onValidate = (result) => {
  if (!result.valid) {
    errorMsg.value = result.message
  } else {
    errorMsg.value = ''
  }
}
</script>

自定义样式

<template>
  <zx-order-remark 
    v-model="remark" 
    title="订单备注" 
    border="bottom"
    background-color="#f8f9fa"
    border-color="#409eff"
    border-radius="12rpx"
    font-size="16px"
    color="#303133"
    padding="32rpx"
  />
</template>

禁用状态

<template>
  <zx-order-remark 
    v-model="remark" 
    title="订单备注" 
    disabled
    :quick-phrases="phrases"
  />
</template>

API

Props

参数说明类型默认值
value / v-model输入框的内容String / Number''
title标题文本String''
required是否必填,显示红色星号Booleanfalse
placeholder输入框为空时占位符String / Number'请输入订单备注'
placeholder-class指定placeholder的样式类String'textarea-placeholder'
placeholder-style指定placeholder的样式String / Object''
height输入框高度String / Number'120rpx'
confirm-type设置键盘右下角按钮的文字String'done'
confirm-hold点击键盘右下角按钮时是否保持键盘不收起Booleanfalse
disabled是否禁用Booleanfalse
show-count是否显示字数统计Booleantrue
show-maxlength-in-count字数统计是否显示最大长度Booleantrue
clearable是否显示清除按钮Booleantrue
focus是否自动获取焦点Booleanfalse
auto-focus自动聚焦,拉起键盘Booleanfalse
auto-height是否自动增加高度Booleantrue
fixed如果textarea是在一个position:fixed的区域,需要显示指定属性fixed为trueBooleanfalse
cursor-spacing指定光标与键盘的距离Number0
cursor指定focus时的光标位置String / Number-1
show-confirm-bar是否显示键盘上方带有"完成"按钮那一栏Booleantrue
selection-start光标起始位置Number-1
selection-end光标结束位置Number-1
adjust-position键盘弹起时,是否自动上推页面Booleantrue
disable-default-padding是否去掉 iOS 下的默认内边距Booleanfalse
hold-keyboardfocus时,点击页面的时候不收起键盘Booleanfalse
auto-blur键盘收起时,是否自动失去焦点Booleanfalse
maxlength最大输入长度,设置为 -1 的时候不限制最大长度String / Number200
border边框类型,surround-四周边框,none-无边框,bottom-底部边框String'surround'
ignore-composition-event是否忽略组件内对文本合成系统事件的处理Booleantrue
inputmode用户在编辑元素或其内容时可能输入的数据类型的提示String'text'
font-size字体大小String / Number'15px'
color字体颜色String'#606266'
background-color背景色String'#fff'
border-radius边框圆角String / Number'8rpx'
border-color边框颜色String'#e4e7ed'
padding内边距String / Number'24rpx'
quick-phrases快捷短语列表Array[]
phrases-title快捷短语标题String'常用短语'
error-message错误提示信息String''
validate-on-blur失焦时是否验证Booleantrue
min-length最小输入长度Number0

Events

事件名说明回调参数
focus输入框聚焦时触发event
blur输入框失去焦点时触发event
linechange输入框行数变化时调用event
input当键盘输入时,触发 input 事件value
change输入框内容变化时触发value
confirm点击完成时,触发 confirm 事件event
keyboardheightchange键盘高度发生变化的时候触发此事件event
clear点击清除按钮时触发-
phrase-select选择快捷短语时触发phrase
validate验证时触发{ valid, message, value }

Methods

通过 ref 可以获取到 OrderRemark 实例并调用实例方法。

方法名说明参数返回值
validate手动验证输入内容-Boolean
clear清空输入内容--
focus获取焦点--
blur失去焦点--

Slots

暂无插槽。

样式变量

组件提供了下列 CSS 变量,可用于自定义样式。

名称默认值描述
--zx-order-remark-bg-color#fff背景色
--zx-order-remark-border-color#e4e7ed边框颜色
--zx-order-remark-border-radius8rpx边框圆角
--zx-order-remark-padding24rpx内边距
--zx-order-remark-font-size15px字体大小
--zx-order-remark-color#606266字体颜色
--zx-order-remark-error-color#f56c6c错误颜色
--zx-order-remark-count-color#909193字数统计颜色

注意事项

  1. 组件基于 textarea 原生组件实现,在不同平台可能存在样式差异
  2. 在小程序中,textarea 是原生组件,层级较高,使用时需注意遮挡问题
  3. 快捷短语功能会直接替换当前输入内容,而不是追加
  4. 字数限制是按字符数计算,包括中英文、数字、符号等
  5. 验证功能需要配合 validate-on-blur 或手动调用 validate 方法

更新日志

v1.0.0

  • 🎉 新增 OrderRemark 订单备注组件
  • ✨ 支持字数统计和限制
  • ✨ 支持快捷短语选择
  • ✨ 支持表单验证
  • ✨ 支持多种边框样式
  • ✨ 支持多端兼容