index.vue 4.55 KB
<!--
 * @Date: 2022-09-27 17:13:05
 * @LastEditors: hookehuyr hookehuyr@gmail.com
 * @LastEditTime: 2022-09-29 18:14:39
 * @FilePath: /swx/src/pages/joinActivity/index.vue
 * @Description: 活动报名
-->
<template>
  <view class="join-activity-page">
    <view class="activity-title">
      <view class="box">
        <text class="bg-gradient" style="font-size: 1.25rem;">请填写报名信息</text>
      </view>
    </view>
    <AtInput required :border="true" title="姓名" type='text' placeholder='请输入姓名' v-model:value="username" />
    <AtInput required :border="true" title="手机号" type='phone' placeholder='请输入手机号' v-model:value="phone" />
    <view class="at-input">
      <view class="at-input__container">
        <label class="h5-label at-input__title at-input__title--required">年龄段</label>
        <input @tap="show_popup=true" class="h5-input at-input__input" placeholder-class="placeholder" :value="age_range" placeholder="请选择年龄范围" :disabled="true"/>
        <view style="margin-right: 1rem; margin-top: 0.5rem;"><van-icon :name="icon_sel" color="" /></view>
      </view>
    </view>
    <view class="at-input">
      <view class="at-input__container">
        <label class="h5-label at-input__title at-input__title--required">性别</label>
        <van-radio-group
          :value="user_sex"
          @change="onSexChange"
          direction="horizontal"
        >
          <van-radio name="female" checked-color="#199A74">男士</van-radio>
          <van-radio name="male" checked-color="#199A74">女士</van-radio>
        </van-radio-group>
      </view>
    </view>
    <view v-for="(item, index) in arr" :key="index">
      <AtInput
      :required="item.required"
      :border="true"
      :title="item.title"
      type='text'
      :placeholder="'请输入' + item.title"
      v-model:value="item.value" />
    </view>
  </view>
  {{username}}
  <bottom-button @on-submit="onSubmit">确认报名</bottom-button>

  <!-- 年龄段弹出框 -->
  <van-popup :show="show_popup" position="bottom" custom-style="height: 30%;" :lock-scroll="true">
    <view class="limit-wrapper">
      <view class="form-item border">
        <view class="form-item-title fix">年龄最小值</view>
        <view style="float: right;">
          <van-field :value="min_number" type="number" label="" placeholder="请输入年龄最小值"
            placeholder-style="color: #999; font-size: 1rem;" input-align="right" customStyle="" rightIcon=""
            maxlength="" :border="false" />
        </view>
      </view>
      <view class="form-item border">
        <view class="form-item-title fix">年龄最大值</view>
        <view style="float: right;">
          <van-field :value="max_number" type="number" label="" placeholder="请输入年龄最大值"
            placeholder-style="color: #999; font-size: 1rem;" input-align="right" customStyle="" rightIcon=""
            maxlength="" :border="false" />
        </view>
      </view>
    </view>
    <van-row>
      <van-col span="12">
        <view class="limit-button-wrapper">
          <view class="button cancel" @tap="closeEditLimit">取消</view>
        </view>
      </van-col>
      <van-col span="12">
        <view class="limit-button-wrapper">
          <view class="button confirm" @tap="confirmEditLimit">确定</view>
        </view>
      </van-col>
    </van-row>
  </van-popup>
</template>

<script setup>
import { ref, onMounted } from "vue";
import { AtInput } from 'taro-ui-vue3'
import "taro-ui-vue3/dist/style/components/input.scss";
import icon_sel from '@/images/icon/sel@2x.png'
import bottomButton from "@/components/bottom-button";
import Taro from '@tarojs/taro'

const username = ref('');
const phone = ref('');
const age_range = ref('');
const user_sex = ref('');
const arr = ref([]);

onMounted(() => {
  arr.value = [{
    title: '推荐人' ,
    key: 'recommender',
    value: '',
    required: false,
  }, {
    title: '推荐人' ,
    key: 'recommender',
    value: '',
    required: true,
  }]
})

// const handleInput = (value) => {
//   console.warn(arr.value);
// }
const onSexChange = ({ detail }) => {
  user_sex.value = detail;
}

const show_popup = ref(false);
const closeEditLimit = () => {
  show_popup.value = false;
}
const confirmEditLimit = () => {
  show_popup.value = false;
}

const onSubmit = (val) => {
  console.warn(val);
  Taro.showToast({
    title: '请检查输入项',
    icon: 'error',
    duration: 2000
  });
  Taro.redirectTo({
    url: '../joinSuccess/index'
  })
}
</script>

<script>
import "./index.less";
export default {
  name: "demoPage",
};
</script>