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

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>

效果:

相关推荐
徐同保1 小时前
python如何手动抛出异常
java·前端·python
极客小云1 小时前
【实时更新 | 2026年国内可用的npm镜像源/加速器配置大全(附测速方法)】
前端·npm·node.js
半兽先生2 小时前
告别 AI 乱写 Vue!用 vue-skills 构建前端智能编码标准
前端·vue.js·人工智能
木易 士心2 小时前
ESLint 全指南:从原理到实践,构建高质量的 JavaScript/TypeScript 代码
javascript·ubuntu·typescript
前端达人2 小时前
都2026年了,还在用Options API?Vue组合式API才是你该掌握的“正确姿势“
前端·javascript·vue.js·前端框架·ecmascript
Dxy12393102163 小时前
Python检查JSON格式错误的多种方法
前端·python·json
chao-Cyril3 小时前
从入门到进阶:前端开发的成长之路与实战感悟
前端·javascript·vue.js
shalou29013 小时前
Spring 核心技术解析【纯干货版】- Ⅶ:Spring 切面编程模块 Spring-Instrument 模块精讲
前端·数据库·spring
大时光3 小时前
js 封装 动画效果
前端
大时光3 小时前
html翻页时钟 效果
前端