- [object InputEvent]:text/textarea/phone 三个控件在 view-ui-plus Input 上 监听 @input——该组件 emits 表里没有 input(源码取证:on-*/update:modelValue), 监听器穿透到根元素收原生 InputEvent,事件对象被当作字段值写入答卷, 提交即被后端值类型校验拒(「字段「单行文本」必须是字符串」)。 值通道改 @update:model-value;其余六类控件走 @on-change 取值本就正确未动。 - 窄卡:base.layout.css 把 .yh-fill 定为纵向 flex 卡片模型,flex 子项水平 margin:auto 放弃 stretch 收缩到内容宽(~300px)。Fill 卡片改 width:100% + max-width:800px + align-self:center,底色/边框/外距交还平台卡片规则; 同叶删掉 min-height:100vh(壳内双滚动来源),嵌入态 fill-plain 不受影响。 - 验证:view-ui-plus 源码 emits 表逐控件核对;vue-tsc + vite build 双绿。
This commit is contained in:
@@ -24,6 +24,7 @@ function onInput(val: string) {
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<!-- 值通道=update:modelValue(@input 在 view-ui-plus Input 上穿透成原生事件,P88) -->
|
||||
<Input :model-value="displayValue" :maxlength="field.maxLength || 11"
|
||||
:placeholder="field.placeholder || '请输入手机号'" :disabled="readonly" @input="onInput" />
|
||||
:placeholder="field.placeholder || '请输入手机号'" :disabled="readonly" @update:model-value="onInput" />
|
||||
</template>
|
||||
@@ -24,6 +24,8 @@ function onInput(val: string) {
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<!-- 值通道=update:modelValue(view-ui-plus Input 的 emits 表里没有 input,
|
||||
@input 会穿透成原生监听器把 InputEvent 当值存进答卷,P88) -->
|
||||
<Input :model-value="displayValue" :placeholder="field.placeholder || '请输入'" :disabled="readonly"
|
||||
@input="onInput" />
|
||||
@update:model-value="onInput" />
|
||||
</template>
|
||||
@@ -24,6 +24,7 @@ function onInput(val: string) {
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<!-- 值通道=update:modelValue(@input 在 view-ui-plus Input 上穿透成原生事件,P88) -->
|
||||
<Input type="textarea" :model-value="displayValue" :rows="field.rows || 3" :maxlength="field.maxLength"
|
||||
:placeholder="field.placeholder || '请输入'" :disabled="readonly" @input="onInput" />
|
||||
:placeholder="field.placeholder || '请输入'" :disabled="readonly" @update:model-value="onInput" />
|
||||
</template>
|
||||
Reference in New Issue
Block a user