<!-- 修改用户名 changeUsername  -->
<template>
  <view>
    <!-- 标题栏 -->
    <view class="head-box ss-m-b-60">
      <view class="head-title ss-m-b-20">修改用户名</view>
      <view class="head-subtitle">用户名仅限修改一次</view>
    </view>

    <!-- 表单项 -->
    <uni-forms
      ref="formRef"
      v-model="state.model"
      :rules="state.rules"
      validateTrigger="bind"
      labelWidth="140"
      labelAlign="center"
    >
      <uni-forms-item name="username" label="用户名">
        <uni-easyinput
          placeholder="请输入用户名"
          v-model="state.model.username"
          :inputBorder="false"
        ></uni-easyinput>
      </uni-forms-item>

      <view class="editPwd-btn-box ss-m-t-80">
        <button class="ss-reset-button save-btn ui-Shadow-Main" @tap="changeUsernameSubmit">
          保存
        </button>
      </view>
    </uni-forms>
  </view>
</template>

<script setup>
  import { computed, watch, ref, reactive, unref } from 'vue';
  import sheep from '@/sheep';
  import { username } from '@/sheep/validate/form';
  import { showAuthModal, closeAuthModal } from '@/sheep/hooks/useModal';
  const formRef = ref(null);

  // 数据
  const state = reactive({
    model: {
      username: '',
    },
    rules: {
      username,
    },
  });

  // 7.修改用户名
  async function changeUsernameSubmit() {
    const validate = await unref(formRef)
      .validate()
      .catch((error) => {
        console.log('error: ', error);
      });
    if (!validate) return;
    sheep.$api.user.changeUsername(state.model).then((res) => {
      if (res.error === 0) {
        sheep.$store('user').getInfo();
        closeAuthModal();
      }
    });
  }
</script>

<style lang="scss" scoped>
  @import '../index.scss';
</style>