|
|
|
@ -82,9 +82,15 @@ |
|
|
|
<div class="checktxt">{{ t('cash.other') }}</div> |
|
|
|
<hr class="line"> |
|
|
|
<el-radio-group v-model="selectedValue"> |
|
|
|
<el-radio v-for="ai in InfoFee" :key="ai" :label="ai" :value="ai"> |
|
|
|
<div v-for="ai in InfoFee" :key="ai" class="radio-wrapper"> |
|
|
|
<el-radio class="radio" :value="ai" @click="handleClick(ai)"> |
|
|
|
{{ ai }} |
|
|
|
</el-radio> |
|
|
|
<div v-if="showPanel&&ai==t('cash.HC')" class="cascader-panel" @click.stop> |
|
|
|
<el-cascader-panel :options="cascaderOptions" :value="cascaderValue" |
|
|
|
@change="handlePanelChange" /> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</el-radio-group> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
@ -134,6 +140,7 @@ const selectedValue = ref('') |
|
|
|
|
|
|
|
watch(selectedValue, (newVal) => { |
|
|
|
emit('update:modelValue', newVal ? newVal : ''); |
|
|
|
console.log('更新父组件', newVal); |
|
|
|
selectedItem.value = newVal || ''; |
|
|
|
}); |
|
|
|
|
|
|
|
@ -158,6 +165,56 @@ const InfoFee = [ |
|
|
|
t('cash.BGmember'), |
|
|
|
t('cash.HC') |
|
|
|
] |
|
|
|
const showPanel = ref(false) |
|
|
|
const handleClick = (ai) => { |
|
|
|
if (ai == t('cash.HC')) { |
|
|
|
showPanel.value = true |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
const cascaderValue = ref([]) |
|
|
|
const handlePanelChange = (val) => { |
|
|
|
selectedValue.value = val[val.length - 1] |
|
|
|
showPanel.value = false // 选择后关闭面板 |
|
|
|
console.log('selectedValue.value', selectedValue.value); |
|
|
|
|
|
|
|
} |
|
|
|
// 级联选择器数据源 |
|
|
|
const cascaderOptions = [ |
|
|
|
{ |
|
|
|
value: 'realTime', |
|
|
|
label: t('cash.aiService.realTime'), |
|
|
|
children: [ |
|
|
|
{ value: t('cash.aiService.HCInfoFeeRealTimeUS'), label: t('cash.softwareMenu.usStock') }, |
|
|
|
{ value: t('cash.aiService.HCInfoFeeRealTimeHK'), label: t('cash.softwareMenu.hkStock') }, |
|
|
|
{ value: t('cash.aiService.HCInfoFeeRealTimeAStock'), label: t('cash.softwareMenu.aStock') }, |
|
|
|
{ value: t('cash.aiService.HCInfoFeeRealTimeSingaporeStock'), label: t('cash.softwareMenu.singaporeStock') }, |
|
|
|
{ value: t('cash.aiService.HCInfoFeeRealTimeJapanStock'), label: t('cash.softwareMenu.japanStock') }, |
|
|
|
{ value: t('cash.aiService.HCInfoFeeRealTimeThailandStock'), label: t('cash.softwareMenu.thailandStock') }, |
|
|
|
{ value: t('cash.aiService.HCInfoFeeRealTimeVietnamStock'), label: t('cash.softwareMenu.vietnamStock') }, |
|
|
|
{ value: t('cash.aiService.HCInfoFeeRealTimeIndonesiaStock'), label: t('cash.softwareMenu.indonesiaStock') }, |
|
|
|
{ value: t('cash.aiService.HCInfoFeeRealTimeKoreaStock'), label: t('cash.softwareMenu.koreaStock') }, |
|
|
|
{ value: t('cash.aiService.HCInfoFeeRealTimeTaiwanStock'), label: t('cash.softwareMenu.taiwanStock') } |
|
|
|
] |
|
|
|
}, |
|
|
|
{ |
|
|
|
value: 'delayed', |
|
|
|
label: t('cash.aiService.delayed'), |
|
|
|
children: [ |
|
|
|
{ value: t('cash.aiService.HCInfoFeeDelayUS'), label: t('cash.softwareMenu.usStock') }, |
|
|
|
{ value: t('cash.aiService.HCInfoFeeDelayHK'), label: t('cash.softwareMenu.hkStock') }, |
|
|
|
{ value: t('cash.aiService.HCInfoFeeDelayAStock'), label: t('cash.softwareMenu.aStock') }, |
|
|
|
{ value: t('cash.aiService.HCInfoFeeDelaySingaporeStock'), label: t('cash.softwareMenu.singaporeStock') }, |
|
|
|
{ value: t('cash.aiService.HCInfoFeeDelayJapanStock'), label: t('cash.softwareMenu.japanStock') }, |
|
|
|
{ value: t('cash.aiService.HCInfoFeeDelayThailandStock'), label: t('cash.softwareMenu.thailandStock') }, |
|
|
|
{ value: t('cash.aiService.HCInfoFeeDelayVietnamStock'), label: t('cash.softwareMenu.vietnamStock') }, |
|
|
|
{ value: t('cash.aiService.HCInfoFeeDelayIndonesiaStock'), label: t('cash.softwareMenu.indonesiaStock') }, |
|
|
|
{ value: t('cash.aiService.HCInfoFeeDelayKoreaStock'), label: t('cash.softwareMenu.koreaStock') }, |
|
|
|
{ value: t('cash.aiService.HCInfoFeeDelayTaiwanStock'), label: t('cash.softwareMenu.taiwanStock') } |
|
|
|
] |
|
|
|
} |
|
|
|
] |
|
|
|
|
|
|
|
// 使用多语言字段重新构建menuData |
|
|
|
const menuData = [ |
|
|
|
{ |
|
|
|
@ -375,9 +432,8 @@ defineExpose({ resetSelect }); |
|
|
|
position: absolute; |
|
|
|
top: 100%; |
|
|
|
left: 0; |
|
|
|
width: 160%; |
|
|
|
width: 200%; |
|
|
|
max-height: 700px; |
|
|
|
overflow-y: auto; |
|
|
|
min-height: 200px; |
|
|
|
display: flex; |
|
|
|
padding: 10px; |
|
|
|
@ -457,6 +513,28 @@ defineExpose({ resetSelect }); |
|
|
|
|
|
|
|
.ai { |
|
|
|
width: 100%; |
|
|
|
|
|
|
|
.radio-wrapper { |
|
|
|
position: relative; |
|
|
|
display: inline-block; |
|
|
|
margin-right: 32px; |
|
|
|
|
|
|
|
.radio { |
|
|
|
margin-right: 0; |
|
|
|
} |
|
|
|
|
|
|
|
.cascader-panel { |
|
|
|
position: absolute; |
|
|
|
top: -36px; |
|
|
|
left: 100px; |
|
|
|
z-index: 1000; |
|
|
|
border: 1px solid #e6e6e6; |
|
|
|
border-radius: 4px; |
|
|
|
background: #E4F0FC; |
|
|
|
margin-bottom: 10px; |
|
|
|
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.marketprodut { |
|
|
|
|