@agile-team/wl-skills-kit 2.7.0 → 2.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,159 @@
1
+ # jh-textarea - 多行文本输入组件
2
+
3
+ > 平台统一的多行文本输入组件,适用于备注、描述等需要输入较长文本的场景
4
+
5
+ ## 📦 组件位置
6
+
7
+ ```ts
8
+ import "@jhlc/common-core";
9
+ ```
10
+
11
+ 组件已全局注册,可直接在模板中使用 `<jh-textarea />`。
12
+
13
+ ---
14
+
15
+ ## 基本用法
16
+
17
+ ### 1️⃣ 表单录入(最常用)
18
+
19
+ ```vue
20
+ <template>
21
+ <jh-textarea v-model="form.remark" placeholder="请输入备注" />
22
+ </template>
23
+
24
+ <script setup lang="ts">
25
+ import { ref } from "vue";
26
+
27
+ const form = ref({
28
+ remark: ""
29
+ });
30
+ </script>
31
+ ```
32
+
33
+ ---
34
+
35
+ ### 2️⃣ 限制行数
36
+
37
+ ```vue
38
+ <jh-textarea v-model="form.description" :rows="4" placeholder="请输入描述信息" />
39
+ ```
40
+
41
+ ---
42
+
43
+ ## Props 属性
44
+
45
+ | 参数 | 说明 | 类型 | 默认值 |
46
+ | -------------------- | ----------------------- | ------------------ | -------------- |
47
+ | modelValue / v-model | 绑定值 | `string` | - |
48
+ | placeholder | 占位提示 | `string` | `"请输入"` |
49
+ | rows | 显示行数 | `number` | `3` |
50
+ | maxlength | 最大输入长度 | `number` | - |
51
+ | showWordLimit | 是否显示字数统计 | `boolean` | `false` |
52
+ | disabled | 是否禁用 | `boolean` | `false` |
53
+ | clearable | 是否可清空 | `boolean` | `true` |
54
+ | autosize | 自适应内容高度 | `boolean \| object`| `false` |
55
+
56
+ ---
57
+
58
+ ## Events 事件
59
+
60
+ | 事件名 | 说明 | 回调参数 |
61
+ | ----------------- | ------------ | ----------------- |
62
+ | change | 值变化时触发 | `(value) => void` |
63
+ | update:modelValue | v-model 更新 | `(value) => void` |
64
+ | blur | 失去焦点 | `() => void` |
65
+
66
+ ---
67
+
68
+ ## 常见场景
69
+
70
+ ### 场景 1:表单备注
71
+
72
+ ```vue
73
+ <jh-textarea v-model="form.remark" placeholder="请输入备注" />
74
+ ```
75
+
76
+ ### 场景 2:带字数限制
77
+
78
+ ```vue
79
+ <jh-textarea
80
+ v-model="form.description"
81
+ :maxlength="500"
82
+ show-word-limit
83
+ placeholder="请输入描述(最多500字)"
84
+ />
85
+ ```
86
+
87
+ ### 场景 3:BaseQuery / BaseForm 配置式用法
88
+
89
+ ```ts
90
+ import { BusLogicDataType } from "@jhlc/types/src/logical-data";
91
+
92
+ export const formItems: BaseFormItemDesc<any>[] = [
93
+ {
94
+ name: "remark",
95
+ label: "备注",
96
+ logicType: BusLogicDataType.textarea,
97
+ // 自动渲染为 jh-textarea
98
+ },
99
+ ];
100
+ ```
101
+
102
+ > **源码映射**(`getFormItemByLogicType`):`BusLogicDataType.textarea` → `jh-textarea`
103
+
104
+ ---
105
+
106
+ ## 与 el-input 对比
107
+
108
+ ### 使用 jh-textarea(推荐)
109
+
110
+ ```vue
111
+ <jh-textarea v-model="form.remark" />
112
+ ```
113
+
114
+ ✅ 统一样式风格
115
+ ✅ 简化配置
116
+
117
+ ### 使用 el-input(不推荐)
118
+
119
+ ```vue
120
+ <el-input v-model="form.remark" type="textarea" :rows="3" />
121
+ ```
122
+
123
+ ❌ 需要每次指定 `type="textarea"`
124
+ ❌ 样式与交互可能不统一
125
+
126
+ ---
127
+
128
+ ## 最佳实践
129
+
130
+ 1. **表单中长文本字段统一使用 jh-textarea**
131
+ - 与 `jh-select`、`jh-date` 等保持一致的组件体系
132
+
133
+ 2. **配合 logicType 使用**
134
+ - 配置式表单中使用 `logicType: BusLogicDataType.textarea`
135
+ - 框架自动渲染为 `jh-textarea`
136
+
137
+ 3. **详情页展示使用 jh-text**
138
+ - 编辑:`jh-textarea`
139
+ - 展示:`jh-text`
140
+
141
+ ---
142
+
143
+ ## 注意事项
144
+
145
+ 1. **仅用于编辑场景**
146
+ - 详情/只读展示使用 `jh-text`
147
+
148
+ 2. **长度限制建议配合后端校验**
149
+ - 前端 `maxlength` 仅做交互限制
150
+
151
+ ---
152
+
153
+ ## 🚀 快速开始
154
+
155
+ 1. 直接使用 v-model 绑定字段
156
+ 2. 配置式表单使用 `logicType: BusLogicDataType.textarea`
157
+ 3. 详情展示统一使用 `jh-text`
158
+
159
+ **推荐作为平台统一的多行文本输入组件使用!**
@@ -97,6 +97,23 @@ const form = ref({
97
97
 
98
98
  > ⚠️ `jh-user-picker` 仅用于选择,展示请使用 `jh-text`
99
99
 
100
+ ### 场景 4:BaseQuery 配置式用法(推荐)
101
+
102
+ ```ts
103
+ import { BusLogicDataType } from "@jhlc/types/src/logical-data";
104
+
105
+ export const queryItems: BaseQueryItemDesc<any>[] = [
106
+ {
107
+ name: "createUserId",
108
+ label: "创建人",
109
+ logicType: BusLogicDataType.user,
110
+ // 自动渲染为 UserPickerComponent
111
+ },
112
+ ];
113
+ ```
114
+
115
+ > **源码映射**: `BusLogicDataType.user` → `UserPickerComponent`
116
+
100
117
  ---
101
118
 
102
119
  ## 与手动实现对比