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

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>

效果:

相关推荐
大怪v2 小时前
AI抢饭?前端佬:我要验牌!
前端·人工智能·程序员
新酱爱学习2 小时前
字节外包一年,我的技术成长之路
前端·程序员·年终总结
小兵张健3 小时前
开源 playwright-pool 会话池来了
前端·javascript·github
IT_陈寒5 小时前
Python开发者必知的5大性能陷阱:90%的人都踩过的坑!
前端·人工智能·后端
codingWhat6 小时前
介绍一个手势识别库——AlloyFinger
前端·javascript·vue.js
Lee川6 小时前
深度拆解:基于面向对象思维的“就地编辑”组件全模块解析
javascript·架构
代码老中医6 小时前
2026年CSS彻底疯了:这6个新特性让我删掉了三分之一JS代码
前端
进击的尘埃6 小时前
Web Worker 与 OffscreenCanvas:把主线程从重活里解放出来
javascript
不会敲代码16 小时前
Zustand:轻量级状态管理,从入门到实践
前端·typescript
踩着两条虫6 小时前
VTJ.PRO 双向代码转换原理揭秘
前端·vue.js·人工智能