Files
aurora-admin/frameworks/Input.html
T

114 lines
4.5 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Kole UI · Input (H5)</title>
<link rel="stylesheet" href="../.design_library/kole-ui/colors_and_type.css">
<link rel="stylesheet" href="./Input.css">
<style>
/* 演示页布局脚手架 —— 组件样式已并入 Input.css(S9-P7 单一样式真源) */
.field { display: inline-flex; flex-direction: column; gap: 4px; flex-shrink: 0; }
body { margin: 0; padding: 24px; background: var(--kole-color-page-bg); color: var(--kole-color-text-body); font-family: var(--font-family); }
h1 { font-size: 20px; margin: 0 0 4px; }
.sub { color: var(--kole-color-text-secondary); margin: 0 0 24px; font-size: 12px; }
.group { margin-bottom: 24px; }
.group h2 { font-size: 16px; margin: 0 0 12px; color: var(--kole-color-text-title); }
.row { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }
</style>
</head>
<body>
<h1>Kole UI · Input 组件(纯 H5)</h1>
<p class="sub">对齐 input.json 契约:3 尺寸、聚焦/错误/禁用态,前后缀 / 清除 / 密码切换</p>
<div class="group">
<h2>1. 默认输入框</h2>
<div class="row">
<div class="field kole-field"><div class="kole-input"><input placeholder="请输入客户名称"></div></div>
</div>
</div>
<div class="group">
<h2>2. 三种尺寸</h2>
<div class="row">
<div class="field kole-field"><div class="kole-input kole-input-lg"><input placeholder="大尺寸"></div></div>
<div class="field kole-field"><div class="kole-input kole-input-md"><input placeholder="默认尺寸"></div></div>
<div class="field kole-field"><div class="kole-input kole-input-sm"><input placeholder="小尺寸"></div></div>
</div>
</div>
<div class="group">
<h2>3. 错误态(含错误提示)</h2>
<div class="row">
<div class="field kole-field has-error">
<div class="kole-input is-error"><input value="abc"></div>
<span class="error-text">联系电话格式不正确,请检查后重试</span>
</div>
</div>
</div>
<div class="group">
<h2>4. 前后缀</h2>
<div class="row">
<div class="field kole-field">
<div class="kole-input">
<span class="affix prefix"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"/><path d="M21 21l-4-4"/></svg></span>
<input placeholder="搜索订单编号 / 客户名称">
</div>
</div>
<div class="field kole-field">
<div class="kole-input">
<input value="kole">
<span class="affix suffix">.com</span>
</div>
</div>
</div>
</div>
<div class="group">
<h2>5. 清除按钮(clearable)</h2>
<div class="row">
<div class="field kole-field">
<div class="kole-input" data-clearable>
<input value="可清除文本">
<button class="action clear" data-act="clear" aria-label="清除" data-behavior="input-clears:@input"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M18 6L6 18M6 6l12 12"/></svg></button>
</div>
</div>
</div>
</div>
<div class="group">
<h2>6. 密码切换</h2>
<div class="row">
<div class="field kole-field">
<div class="kole-input" data-password>
<input type="password" value="secret123" data-pw>
<button class="action toggle" data-act="toggle-pw" aria-label="显示密码"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7z"/><circle cx="12" cy="12" r="3"/></svg></button>
</div>
</div>
</div>
</div>
<div class="group">
<h2>7. 禁用态</h2>
<div class="row">
<div class="field kole-field"><div class="kole-input is-disabled"><input value="不可编辑" disabled></div></div>
</div>
</div>
<script>
// 清除按钮
document.querySelectorAll('[data-act="clear"]').forEach(btn => {
btn.addEventListener('click', () => { btn.closest('.kole-input').querySelector('input').value = ''; });
});
// 密码显隐切换
document.querySelectorAll('[data-act="toggle-pw"]').forEach(btn => {
btn.addEventListener('click', () => {
const inp = btn.closest('.kole-input').querySelector('[data-pw]');
inp.type = inp.type === 'password' ? 'text' : 'password';
});
});
</script>
</body>
</html>