<template>
  <view class="page__view">
		<navbar title="选择角色" leftClick @leftClick="$utils.navigateBack" bgColor="transparent" color="#191919" />

    <view class="main">
      <view class="card">
        <view class="card-header">角色信息</view>
        <view class="card-content">
          <uv-radio-group 
            v-model="role" 
            placement="column" 
            size="36rpx"
            iconSize="36rpx"
            activeColor="#00A9FF"
          >
            <view class="flex option" v-for="item in roleOptions" :key="item.id" @click="onSelect(item.value)">
              <view>
                <uv-radio :name="item.value"></uv-radio>
              </view>
              <view>{{ item.label }}</view>
            </view>

            </uv-radio-group>
        </view>
      </view>
    </view>

    <view class="flex bottom">
      <view class="flex bar">
        <button class="btn" @click="onConfirm">确定</button>
      </view>
    </view>
  </view>
</template>

<script>
  export default {
    data() {
      return {
        role: null,
        roleOptions: [],
      }
    },
    onLoad() {
      this.roleOptions = [
        { id: '001', label: '家长', value: '0' },
        { id: '002', label: '学生', value: '1' },
      ]
      this.role = this.roleOptions[0].value
    },
    methods: {
      onSelect(val) {
        this.role = val
      },
      async onConfirm() {
        try {
          const {
            nickName,
						phone,
          } = this.userInfo

          const params = {
            nickName,
						phone,
            role: this.role
          }

					await this.$fetch('updateInfo', params, false)

          uni.showToast({
            icon: 'success',
            title: '保存成功',
          });

          this.$store.commit('getUserInfo')
          
          setTimeout(() => {
            uni.reLaunch({
              url:'/pages/index/index'
            })
          }, 800)
        } catch (err) {

        }

      },
    },
  }
</script>

<style scoped lang="scss">
  .page__view {
    background-image: linear-gradient(#DAF3FF, #F3F3F3 200rpx, #F3F3F3);
  }

  .main {
    padding: 24rpx 40rpx;
  }

  .card {
    width: 100%;
    height: 100%;
    padding: 32rpx 32rpx 450rpx 32rpx;
    box-sizing: border-box;
    background: #FFFFFF;
    border-radius: 24rpx;

    &-header {
      font-size: 32rpx;
      font-weight: 500;
      color: #181818;
    }
    
  }

  .option {
    margin-top: 32rpx;
    width: 100%;
    height: 252rpx;
    justify-content: flex-start;
    column-gap: 24rpx;
    padding: 24rpx;
    box-sizing: border-box;
    background: #F5F8FF;
    border-radius: 24rpx;

    &:nth-child(2n) {
      background: #F9F9F9;
    }
  }
  
  .bottom {
    position: fixed;
    left: 0;
    bottom: 0;
    width: 100vw;
    height: 146rpx;
    padding-bottom: env(safe-area-inset-bottom);
    background: #FFFFFF;

    .bar {
      width: 100%;
      padding: 0 40rpx;
      box-sizing: border-box;
    }

    .btn {
      width: 100%;
      padding: 16rpx 0;
      box-sizing: border-box;
      font-size: 36rpx;
      color: #FFFFFF;
      background-image: linear-gradient(to right, #21FEEC, #019AF9);
      border: 2rpx solid $uni-color;
      border-radius: 42rpx;
    }
  }
</style>