<template>
  <a-cascader
    :value="selectValue"
    :options="wxMccList"
    placeholder="选择微信经营类目"
    @change="changeFunc"
  />
</template>
<script lang="ts" setup>
import { defineProps, defineEmits, computed } from 'vue'
import mccJSON from './mccHmpayWx.json'

// 定义组件的传入参数
const props = defineProps({
  value: { type: String, default: '' },
  hmMerchantType: { type: String, default: '' },
  enterpriseNature: { type: String, default: '' },
})

// emit： 向父组件进行通讯。
const emit = defineEmits(['update:value'])

// 微信渠道经营类目列表
let wxMccList = computed(() => {

  if(!props.hmMerchantType){
    return
  }

  if (props.hmMerchantType == 'PERSONAL_MERCHANT') {
    // 个人小微 
    return mccJSON.smallBusinessesList
  } else {
    if (!props.enterpriseNature) {
      return
    }
    // 股份和有限公司
    if (props.enterpriseNature == 'STOCK_COMPANY' || props.enterpriseNature == 'LIMITED_COMPANY') {
      return mccJSON.enterpriseList
    // 个体工商户
    } else if (props.enterpriseNature == 'INDIVIDUAL_BUSINESS') {
      return mccJSON.individualList
    // 事业单位
    } else if (props.enterpriseNature == 'GOVERNMENT_INSTITUTION') {
      return mccJSON.governmentList
    // 其他组织
    } else {
      return mccJSON.otherBusinessList
    }
  }
})

// 计算属性
const selectValue = computed(() => {
  // console.log(props.value)
  if (props.value) {
    return props.value.split('_')
  }
  return null
})

// 当属性发生了变化， 需要通过函数向父组件通信 --》 父组件再通知子组件进行数据的变化。
function changeFunc(value) {
  emit('update:value', value[0] + '_' + value[1])
}
</script>
