<template>
  <view class="music-container">

    <!-- 音色列表 -->
    <view class="voice-list">
      <view 
        v-for="(voice, index) in voiceList" 
        :key="voice.id"
        class="voice-item"
        :class="{ 'selected': voice.id === selectedVoiceId }"
        @click="selectVoice(voice.id)"
      >
        <view class="voice-avatar">
          <view class="play-icon">
            <uv-icon 
              :name="voice.id === selectedVoiceId ? 'pause' : 'play-right-fill'" 
              size="24" 
              color="#666666"
            ></uv-icon>
          </view>
        </view>
        <view class="voice-info">
          <view class="voice-name">{{ voice.name }}</view>
          <view class="voice-desc">{{ voice.info }}</view>
        </view>
        <view v-if="voice.id === selectedVoiceId" class="selected-tag">
          已选择
        </view>
      </view>
    </view>

    <!-- 底部固定确认按钮 -->
    <view class="bottom-bar">
      <uv-button 
        type="primary" 
        text="确定" 
        :custom-style="{
          width: '100%',
          height: '82rpx',
          borderRadius: '44rpx',
          backgroundColor: '#06DADC',
          fontSize: '36rpx',
          fontWeight: '500',
          border: '1px solid #06DADC'
        }"
        @click="confirmSelection"
      ></uv-button>
      <uv-safe-bottom></uv-safe-bottom>
    </view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      selectedVoiceId: 2, // 默认选择智小虎
      voiceList: [

      ]
    }
  },
  methods: {
    goBack() {
      uni.navigateBack()
    },
    selectVoice(voiceId) {
      this.selectedVoiceId = voiceId
      console.log('选择音色:', voiceId)
    },
    confirmSelection() {
      console.log('确认选择音色:', this.selectedVoiceId)
      // 这里可以保存选择的音色到本地存储或发送到服务器
      uni.navigateBack()
    },
    async getVoice(){
      const listRes = await this.$api.music.list()
      if (listRes.code === 200) {
        this.voiceList = listRes.result
      }
    }
  },
  onLoad() {
    this.getVoice()
  }
}
</script>

<style scoped lang="scss">
.music-container {
  background: #fff;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  padding-bottom: 120rpx;
}

.voice-list {
  flex: 1;
  padding: 40rpx 32rpx 120rpx;
  display: flex;
  flex-direction: column;
  gap: 32rpx;
}

.voice-item {
  display: flex;
  align-items: center;
  padding: 32rpx 0;
  border-bottom: 4rpx solid #F8F8F8;
  position: relative;
  background: #F8F8F8;
  gap: 12px;
  opacity: 1;
  border-radius: 8px;
  padding: 8px;
  transition: all 0.3s ease;
  &:last-child {
    border-bottom: none;
  }
  
  &.selected {
    border-bottom: 4rpx solid $primary-color;
  }
}

.voice-avatar {
  width: 136rpx;
  height: 136rpx;
  border-radius: 50%;
  background: #666;
  display: flex;
  align-items: center;
  justify-content: center;
  // margin-right: 32rpx;
  position: relative;
}

.play-icon {
  display: flex;
  width: 60rpx;
  height: 60rpx;
  border-radius: 100rpx;
  background: white;
  align-items: center;
  justify-content: center;
}

.voice-info {
  flex: 1;
}

.voice-name {
  font-family: PingFang SC;
  font-weight: 600;
  font-size: 36rpx;
  color: #262626;
  margin-bottom: 8rpx;
}

.voice-desc {
  font-family: PingFang SC;
  font-weight: 400;
  font-size: 28rpx;
  color: #999;
}

.selected-tag {
  background: $primary-color;
  color: #fff;
  font-size: 24rpx;
  padding: 8rpx 16rpx;
  border-radius: 20rpx;
  font-family: PingFang SC;
  font-weight: 500;
}

.bottom-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background: #fff;
  padding: 24rpx 50rpx;
  z-index: 999;
  border-top: 2rpx solid #F1F1F1
}
</style>