vue实现json配置数据显示多步骤动态表单评测结果问卷代码

代码语言:html

所属分类:表单美化

代码描述:vue实现json配置数据显示多步骤动态表单评测结果问卷代码,每个选项点击下一步表单内容都在json中配置好,适合测评类问卷调查,包括主题颜色等也可配置。

代码标签: vue json 配置 数据 显示 多步骤 动态 表单 评测 结果 问卷 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1" />
  <title>多步骤分支表单(Vue3 + JSON配置)</title>
  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap" rel="stylesheet">

  <style>
    :root{
      --primary: #4f46e5;
      --accent:  #06b6d4;
      --bg-gradient: linear-gradient(135deg,#0ea5e9 0%, #6366f1 100%);
      --card-bg: rgba(255,255,255,0.78);
      --glass: blur(8px);
      --text: #0f172a;
      --muted: #475569;
      --success: #10b981;
      --warning: #f59e0b;
      --danger: #ef4444;
      --radius: 16px;
      --shadow-lg: 0 10px 30px rgba(2,6,23,0.15);
      --shadow-sm: 0 6px 16px rgba(2,6,23,0.10);
    }
    * { box-sizing: border-box; }
    html, body { height: 100%; }
    body{
      margin:0;
      font-family: "Inter", system-ui, -apple-system, Segoe UI, Roboto, Noto Sans, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
      color: var(--text);
      background: var(--bg-gradient) fixed;
      background-size: cover;
    }
    .page{
      min-height: 100vh;
      display:flex;
      align-items: stretch;
      justify-content:center;
      padding: 40px 16px;
    }
    .container{
      width: 100%;
      max-width: 1040px;
      position: relative;
    }
    .hero{
    
      border-radius: calc(var(--radius) + 6px);
      padding: 32px 28px;
      background: linear-gradient(145deg, rgba(255,255,255,0.08), rgba(255,255,255,0.02));
      box-shadow: inset 0 1px 0 rgba(255,255,255,0.2), var(--shadow-lg);
      margin-bottom: 18px;
      position: relative;
      overflow: hidden;
    }
    .hero:before{
      content:'';
      position:absolute;
      inset:0;
      background: radial-gradient(1200px 800px at 0% -10%, rgba(255,255,255,0.15), transparent 60%);
      pointer-events:none;
    }
    .hero-title{
      margin:0 0 6px 0;
      font-weight: 800;
      font-size: 28px;
      letter-spacing: 0.2px;
    }
    .hero-sub{
      margin:0;
      opacity:0.9;
    }
    .card{
      background: var(--card-bg);
      backdrop-filter: var(--glass);
      border-radius: var(--radius);
      box-shadow: var(--shadow-lg);
      overflow: hidden;
    }
    .toolbar{
      position: absolute;
      right: 8px;
      top: 8px;
      display: flex;
      gap: 8px;
      z-index: 5;
    }
    .btn{
      appearance: none;
      border: none;
      outline: none;
      display: inline-flex;
      align-items: center;
      gap: 8px;
      font-weight: 600;
      cursor: pointer;
      border-radius: 12px;
      padding: 10px 14px;
      font-size: 14px;
      transition: transform .12s ease, box-shadow .2s ease, background .2s ease;
    }
    .btn:active{ transform: translateY(1px) scale(0.99); }
    .btn-primary{
      background: var(--primary);
      color: #fff;
      box-shadow: var(--shadow-sm);
    }
    .btn-ghost{
      background: rgba(255,255,255,0.6);
      color: var(--text);
      box-shadow: var(--shadow-sm);
    }
    .btn-danger{ background: var(--danger); color: #fff; }
    .btn-outline{
      background: transparent;
      border: 1px solid rgba(255,255,255,0.6);
      
    }

    .progress{
      height: 8px;
      background: rgba(148,163,184,0.25);
      border-radius: 999px;
      overflow: hidden;
      margin-top: 10px;
      box-shadow: inset 0 1px 2px rgba(0,0,0,0.08);
    }
    .progress .bar{
      height: 100%;
      width: 0%;
      background: linear-gradient(90deg, var(--accent), var(--primary));
      transition: width .35s ease;
    }

    .body{
      display:grid;
      grid-template-columns: 1fr;
      gap: 16px;
    }

    .step-card{
      padding: 22px 22px 24px 22px;
    }
    .step-head{
      display:flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      margin-bottom: 8px;
    }
    .step-title{
      margin:0;
      font-size: 20px;
      font-weight: 800;
    }
    .step-desc{
      margin:0;
      color: var(--muted);
      font-size: 14px;
    }
    .crumbs{
      display:flex; flex-wrap: wrap; gap: 6px 10px; margin-top: 8px; color: #334155;
      font-size: 13px;
    }
    .crumbs .dot{
      width:6px; height:6px; border-radius:999px; background: var(--accent); display:inline-block; margin-right:6px;
    }

    .options{
      margin-top: 18px;
      display:grid;
      grid-template-co.........完整代码请登录后点击上方下载按钮下载查看

网友评论0