import { defineComponent, reactive, watch } from 'vue'
import icon from './images/icon.png'
import classes from './index.module.less'
import detaile from './images/detaile.png'
import music from './images/music.png'
import arrow from './images/arrow.png'
import { goodsType } from '@/constant'
import { useRouter } from 'vue-router'

type Props = {
  id?: number
  addName: string
  addUserAvatar: string
  musicSheetName: string
  subjectNames: string
  composer: string
  titleImg: string
  chargeType: string
}
const chargeTypes = {
  CHARGE: '点播',
  FREE: '免费',
  VIP: 'VIP'
}

export default defineComponent({
  name: 'music-item',
  props: {
    item: {
      type: Object as () => Props,
      default: () => ({})
    },
    onClick: {
      type: Function,
      default: (item: any) => {}
    }
  },

  setup(props: any) {
    const state = reactive({
      item: props.item
    })
    const router = useRouter()
    watch(
      () => props.item,
      item => {
        state.item = item
      }
    )
    const gotoMusicDetail = () => {
      router.push({ path: '/muiscDetial', query: { id: state.item.id } })
    }
    return () => (
      <div
        onClick={() => {
          props.onClick(state.item)
        }}
      >
        <div class={classes.itemWrap} onClick={() => gotoMusicDetail()}>
          <div class={classes.left}>
            <div class={classes.imgWrap}>
              <img src={state.item.titleImg || music} alt="" />
            </div>
            <div class={classes.textWrap}>
              <p>
                {state.item.musicSheetName}
                <div
                  class={[
                    classes.touchButton,
                    classes[state.item.chargeType?.toLocaleLowerCase()]
                  ]}
                >
                  {chargeTypes[state.item.chargeType]
                    ? chargeTypes[state.item.chargeType]
                    : '点播'}
                </div>
              </p>
              <div class={classes.authorInfo}>
                <span>作曲: {state.item.composer}</span>
                {/* <img
                  class={classes.icon}
                  src={state.item.addUserAvatar || icon}
                  alt=""
                />
                <span class={classes.authorName}>
                  {state.item.addName ? state.item.addName : '小酷有谱'}
                </span>
                */}
              </div>

              <div class={classes.tagList}>
                {state.item.subjectNames ? (
                  <div class={classes.tag}>{state.item.subjectNames}</div>
                ) : null}
              </div>
            </div>
          </div>
          <div class={classes.right}>
            <img class={classes.arrow} src={arrow} alt="" />
          </div>
        </div>
      </div>
    )
  }
})
