项目模块—实现抑郁测评(小程序)

script

html 复制代码
<script setup>
import { ref } from "vue";

//控制轮播图页码
let current = ref(0);

//答题逻辑
const add = (value) => {
  if (current.value < 9) {
    current.value = current.value + 1;
  } else {
    uni.switchTab({
      url: "/pages/my/my",
    });
  }
};
</script>

<template>

html 复制代码
<template>
  <view class="box">
    <view class="nar">
      <!-- 利用uview-plus插件中的线性进度条来实现功能 -->
      <u-icon name="arrow-left" color="#000000" size="24"></u-icon>
      <!-- 文字 -->
      <text>抑郁测评专业版</text>
    </view>
    <view>
        <!--利用轮播图实现-->
      <swiper duration="0" :current="current" style="height: 500px">
        <template v-for="(item1, index) in 10">
          <swiper-item @touchmove.stop="" class="swiper">
            <!-- 进度条 -->
            <view class="jindu">
              <text>测评进度</text>
              <view class="progress"
                ><u-line-progress
                  :showText="false"
                  :percentage="(index + 1) * 10"
                  activeColor="#2d8dfe"
                ></u-line-progress
              ></view>
              <text>{{ index + 1 }}/10</text>
            </view>
            <!-- 题目 -->
            <view class="topic">
              <view class="text"
                >你是否经常感到心情低落,或是感到心情郁闷?生活,前景?</view
              >
            </view>
            <!-- 选项 -->
            <view class="options">
              <!-- title -->
              <view class="title"
                ><u-tag text="单选题" type="primary" shape="circle"></u-tag
              ></view>
              <!-- 选项 -->
              <template v-for="item in 4">
                <view @click="add()" class="option"
                  ><view class="text">完全不会</view></view
                >
              </template>
            </view>
          </swiper-item>
        </template>
      </swiper>
    </view>
  </view>
</template>

style

html 复制代码
<style lang="scss" scoped>
.box {
  height: 100vh;
  background: linear-gradient(to bottom, #b6cff3, #f5ecf4);
  .nar {
    padding-top: 40rpx;
    padding-bottom: 40rpx;
    height: 80rpx;
    width: 460rpx;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-left: 20rpx;
    padding-right: 20rpx;
  }
}
//进度样式
.jindu {
  padding-left: 20rpx;
  padding-right: 20rpx;
  padding-top: 20rpx;
  display: flex;
  height: 32rpx;
  align-items: center;
  justify-content: space-between;
  //进度条
  .progress {
    width: 460rpx;
  }
}
//题目样式
.topic {
  background-color: white;
  height: 130rpx;
  margin-left: 20rpx;
  margin-right: 20rpx;
  margin-top: 60rpx;
  border-radius: 10rpx;
  .text {
    padding: 18rpx;
  }
}

//选项样式
.options {
  margin-top: 40rpx;
  margin-left: 20rpx;
  margin-right: 20rpx;
  background-color: #f0eaf4;
  border-radius: 10rpx;
  height: 700rpx;
  //标签title
  .title {
    width: 130rpx;
    padding: 16rpx;
  }
  //具体选项
  .option {
    margin: 16rpx;
    margin-top: 24rpx;
    background-color: #ffffff;
    height: 100rpx;
    border-radius: 10rpx;
    display: flex;
    align-items: center;
    .text {
      padding-left: 16rpx;
    }
  }
  :active.option {
    background-color: #ebf4ff;
    color: #52a2ff;
  }
}
</style>

效果:

相关推荐
FungLeo9 小时前
成为全栈·React 管理后台篇·总复盘:从“接口能调通”到“后台值得使用”
前端·react.js·前端框架·项目复盘·成为全栈
Csvn10 小时前
并发模式:让渲染学会排队、插队和让路
前端
可乐鸡翅yeah_10 小时前
新手梳理:M3U8 线上问题,哪些是前端锅,哪些是后端锅
前端·ios·音视频·实时音视频·m3u8·音视频在线播放
Flynt10 小时前
Linear 用 1000 个 PR 换掉 styled-components,我写了 200 个按钮,把这笔账复现了一遍
前端·css·preact
JavaGuide11 小时前
NVIDIA 又开源了!这次给 AI Agent 加上权限管控
前端·后端
excel11 小时前
prisma 如何处理数据库竞态
前端·数据库·后端
莪_幻尘13 小时前
Skill 体检:30 个 Skill 全凭感觉?体检器先自曝了 8 个“假 0 分
前端·人工智能·llm
风骏时光牛马13 小时前
AI模型综合能力评测:性能、指令遵循与多场景实测对比
前端
Frag0ut13 小时前
Chrome与Chromium内核浏览器在Windows 11上的新特性全景解析
前端·chrome·windows·web安全·chromium·gemini ai·playready drm
hiahiahia12313 小时前
实现完整 Tool Dispatcher
开发语言·前端