Skip to content

Commit d5d2a69

Browse files
authored
fix(form): modify form component verification problem (#35)
1 parent c1c1924 commit d5d2a69

10 files changed

Lines changed: 40 additions & 69 deletions

File tree

packages/demos/app/form/auto-wordwrap.vue

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@
55
<p class="page__desc">表单(校验显示位置)</p>
66
</div>
77
<div class="demo-form-position-padds">
8-
<tiny-form ref="ruleFormRef" :model="createData" :rules="rules" label-width="100px" label-position="left">
8+
<tiny-form ref="ruleFormRef" :model="createData" label-width="100px" label-position="left">
99
<tiny-form-item label="你真的好优秀呀!" prop="users" vertical>
1010
<tiny-input v-model="createData.users" placeholder="请输入内容" type="form"></tiny-input>
1111
</tiny-form-item>
1212
<tiny-form-item label="你真的好优秀呀!" prop="users" vertical ellipsis>
1313
<tiny-input v-model="createData.user" placeholder="请输入内容" type="form"></tiny-input>
1414
</tiny-form-item>
1515
<tiny-form-item class="demo-form-item">
16-
<tiny-button type="primary" @click="handleSubmit('ruleForm')">提交</tiny-button>
16+
<tiny-button type="primary">提交</tiny-button>
1717
</tiny-form-item>
1818
</tiny-form>
1919
</div>
@@ -36,20 +36,9 @@ const createData = ref({
3636
users: '',
3737
user: ''
3838
})
39-
const rules = ref({
40-
users: [{ required: true, message: '必填', trigger: 'change' }]
41-
})
39+
4240
const boxVisibility = ref(false)
43-
const formNameRef = ref()
4441
45-
function handleSubmit(formName) {
46-
// FIXIME $refs自动转换失败,请手工修改
47-
$refs[formName].validate((valid) => {
48-
if (valid) {
49-
boxVisibility.value = true
50-
}
51-
})
52-
}
5342
</script>
5443

5544
<style scoped>

packages/demos/app/form/form-label-suffix.vue

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
<tiny-form
99
ref="ruleFormRef"
1010
:model="createData"
11-
:rules="rules"
1211
label-width="100px"
1312
label-position="left"
1413
label-suffix="自定义后缀"
@@ -60,22 +59,13 @@ const createData = ref({
6059
users: '',
6160
user: ''
6261
})
63-
const rules = ref({
64-
users: [{ required: true, message: '必填', trigger: 'change' }]
65-
})
66-
const formNameRef = ref()
6762
6863
function gev() {
6964
console.log(createData.value.users)
7065
}
7166
7267
function handleSubmit(formName) {
73-
// FIXIME $refs自动转换失败,请手工修改
74-
$refs[formName].validate((valid) => {
75-
if (valid) {
76-
TinyModal.alert('提交成功')
77-
}
78-
})
68+
TinyModal.alert('提交成功')
7969
}
8070
</script>
8171

packages/demos/app/form/hide-required-asterisk.vue

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
></tiny-input>
2020
</tiny-form-item>
2121
<tiny-form-item class="demo-form-mobile-item">
22-
<tiny-button type="primary" @click="handleSubmit('ruleForm')">提交</tiny-button>
22+
<tiny-button type="primary" @click="handleSubmit">提交</tiny-button>
2323
</tiny-form-item>
2424
</tiny-form>
2525
</div>
@@ -65,11 +65,10 @@ const rules = ref({
6565
users: [{ required: true, message: '必填', trigger: 'change' }]
6666
})
6767
const boxVisibility = ref(false)
68-
const formNameRef = ref()
68+
const ruleFormRef = ref(null)
6969
70-
function handleSubmit(formName) {
71-
// FIXIME $refs自动转换失败,请手工修改
72-
$refs[formName].validate((valid) => {
70+
function handleSubmit() {
71+
ruleFormRef.value.validate((valid) => {
7372
if (valid) {
7473
boxVisibility.value = true
7574
}

packages/demos/app/form/label-width.vue

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<p class="page__desc">表单(设置标签宽度)</p>
66
</div>
77
<div class="demo-form-label-width-padds">
8-
<tiny-form ref="ruleFormRef" :model="createData" :rules="rules" label-width="100px" label-position="left">
8+
<tiny-form ref="ruleFormRef" :model="createData" label-width="100px" label-position="left">
99
<tiny-form-item label="优秀" prop="users" vertical>
1010
<tiny-input v-model="createData.users" placeholder="请输入内容" type="form"></tiny-input>
1111
</tiny-form-item>
@@ -18,9 +18,6 @@
1818
type="form"
1919
></tiny-input>
2020
</tiny-form-item>
21-
<tiny-form-item class="demo-form-item">
22-
<tiny-button type="primary" @click="handleSubmit('ruleForm')">提交</tiny-button>
23-
</tiny-form-item>
2421
</tiny-form>
2522
</div>
2623
<tiny-dialog-box
@@ -61,24 +58,11 @@ const createData = ref({
6158
users: '',
6259
user: ''
6360
})
64-
const rules = ref({
65-
users: [{ required: true, message: '必填', trigger: 'change' }]
66-
})
6761
const boxVisibility = ref(false)
68-
const formNameRef = ref()
69-
7062
function gev() {
7163
console.log(createData.value.users)
7264
}
7365
74-
function handleSubmit(formName) {
75-
// FIXIME $refs自动转换失败,请手工修改
76-
$refs[formName].validate((valid) => {
77-
if (valid) {
78-
boxVisibility.value = true
79-
}
80-
})
81-
}
8266
</script>
8367

8468
<style scoped>

packages/demos/app/form/validate-position.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,16 +61,16 @@ const createData = ref({
6161
users: '',
6262
user: ''
6363
})
64+
const ruleFormRef = ref(null)
6465
const rules = ref({
6566
users: [{ required: true, message: '必填', trigger: 'change' }],
6667
user: [{ required: true, message: '必填', trigger: 'change' }]
6768
})
6869
const boxVisibility = ref(false)
6970
const formNameRef = ref()
7071
71-
function handleSubmit(formName) {
72-
// FIXIME $refs自动转换失败,请手工修改
73-
$refs[formName].validate((valid) => {
72+
function handleSubmit() {
73+
ruleFormRef.value.validate((valid) => {
7474
if (valid) {
7575
boxVisibility.value = true
7676
}

packages/demos/app/form/validate.vue

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919
></tiny-input>
2020
</tiny-form-item>
2121
<tiny-form-item class="demo-form-validate-item">
22-
<tiny-button type="primary" @click="handleSubmit('ruleForm')">提交</tiny-button>
23-
<tiny-button type="primary" @click="clearValidate('ruleForm')">移除校验</tiny-button>
24-
<tiny-button type="primary" @click="resetFields('ruleForm')">重置</tiny-button>
22+
<tiny-button type="primary" @click="handleSubmit">提交</tiny-button>
23+
<tiny-button type="primary" @click="clearValidate">移除校验</tiny-button>
24+
<tiny-button type="primary" @click="resetFields">重置</tiny-button>
2525
</tiny-form-item>
2626
</tiny-form>
2727
</div>
@@ -63,25 +63,23 @@ const createData = ref({
6363
users: '',
6464
user: ''
6565
})
66+
const ruleFormRef = ref(null)
6667
const rules = ref({
6768
users: [{ required: true, message: '必填', trigger: 'change' }]
6869
})
6970
const boxVisibility = ref(false)
7071
const formNameRef = ref()
7172
72-
function clearValidate(formName) {
73-
// FIXIME $refs自动转换失败,请手工修改
74-
$refs[formName].clearValidate()
73+
function clearValidate() {
74+
ruleFormRef.value.clearValidate()
7575
}
7676
77-
function resetFields(formName) {
78-
// FIXIME $refs自动转换失败,请手工修改
79-
$refs[formName].resetFields()
77+
function resetFields() {
78+
ruleFormRef.value.resetFields()
8079
}
8180
82-
function handleSubmit(formName) {
83-
// FIXIME $refs自动转换失败,请手工修改
84-
$refs[formName].validate((valid) => {
81+
function handleSubmit() {
82+
ruleFormRef.value.validate((valid) => {
8583
if (valid) {
8684
boxVisibility.value = true
8785
}

packages/mobile/components/form/src/renderless/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -259,9 +259,9 @@ export const bindDialogEvent = ({ api, dialog, state }: Pick<IFormRenderlessPara
259259
}
260260

261261
export const showTooltip =
262-
({ vm, state }: Pick<IFormRenderlessParams, 'vm' | 'state'>) =>
262+
({ parent, state }: Pick<IFormRenderlessParams, 'parent' | 'state'>) =>
263263
(dom: HTMLElement, val: string): void => {
264-
const tooltip = vm.$refs.tooltip
264+
const tooltip = parent.$refs.tooltip
265265
tooltip.state.referenceElm = dom
266266
tooltip.state.popperElm && (tooltip.state.popperElm.style.display = 'none')
267267
tooltip.doDestroy()

packages/mobile/components/form/src/renderless/vue.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ export const renderless = (
102102
registerLabelWidth: registerLabelWidth({ api, state }),
103103
deregisterLabelWidth: deregisterLabelWidth({ api, state }),
104104
watchRules: watchRules({ api, props, state }),
105-
showTooltip: showTooltip({ vm, state }),
105+
showTooltip: showTooltip({ parent, state }),
106106
hideTooltip: hideTooltip({ state })
107107
})
108108

packages/theme-mobile/src/form-item/index.less

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
@form-item-prefix-cls: ~'@{css-prefix}mobile-form-item';
1818
@input-prefix-cls: ~'@{css-prefix}mobile-input';
19+
@input-form-prefix-cls: ~'@{css-prefix}mobile-input-form';
1920
@input-group-prefix-cls: ~'@{css-prefix}mobile-input-group';
2021
@textarea-prefix-cls: ~'@{css-prefix}mobile-textarea';
2122
@button-prefix-cls: ~'@{css-prefix}mobile-button';
@@ -116,7 +117,7 @@
116117
.is-vertical {
117118
border-bottom: 1px solid #ddd;
118119
}
119-
120+
120121
&__error {
121122
color: var(--tvm-FormItem-error-text-color);
122123
font-size: 12px;
@@ -134,6 +135,13 @@
134135
display: inline-block;
135136
margin-left: 10px;
136137
}
138+
139+
.@{input-form-prefix-cls} {
140+
&__error {
141+
color: var(--tvm-FormItem-error-text-color);
142+
font-size: 12px;
143+
}
144+
}
137145

138146
&.is-required:not(.is-no-asterisk) {
139147
.@{form-item-prefix-cls}__label-wrap > .@{form-item-prefix-cls}__label:before,
@@ -150,6 +158,7 @@
150158
.@{textarea-prefix-cls}__inner,
151159
.@{textarea-prefix-cls}__inner:focus {
152160
border-color: var(--tvm-FormItem-error-border-color);
161+
background-color: var(--tvm-FormItem-error-bg-color);
153162
}
154163

155164
.@{input-group-prefix-cls}__append,
@@ -167,6 +176,7 @@
167176
&,
168177
&:focus {
169178
border-color: var(--tvm-FormItem-error-border-color);
179+
background-color: var(--tvm-FormItem-error-bg-color);
170180
}
171181
}
172182
}
Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
.inject-FormItem-vars() {
22
--tvm-FormItem-label-text-color: var(--tvm-color-text, #191919);
3-
--tvm-FormItem-error-text-color: var(--tvm-color-error-text, #f23030);
4-
--tvm-FormItem-error-border-color: var(--tvm-color-error-border, #f23030);
5-
--tvm-FormItem-error-icon-color: var(--tvm-color-error-icon, #f23030);
3+
--tvm-FormItem-error-text-color: var(--tvm-color-error-text);
4+
--tvm-FormItem-error-border-color: var(--tvm-color-error-border);
5+
--tvm-FormItem-error-icon-color: var(--tvm-color-error-icon);
6+
--tvm-FormItem-error-bg-color: var(--tvm-color-error-bg-light);
67
}

0 commit comments

Comments
 (0)