<template>
  <view class="flex sort" :style="style">
    <view :class="['flex', 'sort-item', sort == 'comprehensive' ? 'is-active' : '']" @click="onClickSort('comprehensive')">地点</view>
    <view :class="['flex', 'sort-item', ['sale-asc', 'sale-desc'].includes(sort) ? 'is-active' : '']" @click="onClickSort('sale')">
      <view>主题</view>
      <view class="sort-item-icon">
        <uv-icon v-if="sort == 'sale-asc'" name="arrow-up-fill" color="#00A9FF" size="16rpx" :bold="true"></uv-icon>
        <uv-icon v-else-if="sort == 'sale-desc'" name="arrow-down-fill" color="#00A9FF" size="16rpx" :bold="true"></uv-icon>
        <image v-else style="width: 8rpx; height: auto;" src="/static/image/icon-sort.png" mode="widthFix"></image>
      </view>
    </view>
    <view :class="['flex', 'sort-item', ['date-asc', 'date-desc'].includes(sort) ? 'is-active' : '']" @click="onClickSort('date')">
      <view>时间</view>
      <view class="sort-item-icon">
        <uv-icon v-if="sort == 'date-asc'" name="arrow-up-fill" color="#00A9FF" size="16rpx" :bold="true"></uv-icon>
        <uv-icon v-else-if="sort == 'date-desc'" name="arrow-down-fill" color="#00A9FF" size="16rpx" :bold="true"></uv-icon>
        <image v-else style="width: 8rpx; height: auto;" src="/static/image/icon-sort.png" mode="widthFix"></image>
      </view>
    </view>
  </view>
</template>

<script>
  export default {
    props: {
      value: {
        type: String,
        default: 'comprehensive'
      },
      style: {
        type: String,
        default: ''
      }
    },
    computed: {
      sort: {
        set(val) {
          this.$emit('input', val)
        },
        get() {
          return this.value
        }
      }
    },
    methods: {
      onClickSort(key) {

        let sort = 'comprehensive'

        switch(key) {
          case 'comprehensive':
            sort = 'comprehensive'
            break;
          case 'sale':
            if (this.sort == 'sale-desc') {
              sort = 'sale-asc'
            } else {
              sort = 'sale-desc'
            }
            break;
          case 'date':
            if (this.sort == 'date-desc') {
              sort = 'date-asc'
            } else {
              sort = 'date-desc'
            }
            break;
          default:
            break;
        }

        this.sort = sort

        this.$emit('change', sort)
      },
    },
  }
</script>

<style scoped lang="scss">

  .sort {
    width: 100%;
    justify-content: space-between;

    &-item {
      padding: 12rpx 32rpx;
      font-size: 28rpx;
      line-height: 1.5;
      color: #191919;
      column-gap: 4rpx;

      &.is-active {
        font-weight: 600;
        color: #00A9FF;
      }

      &-icon {
        width: 32rpx;
        display: inline-flex;
        align-items: center;
        justify-content: center;
      }
    }
  }

</style>