Ты понимаешь, что в кавычки
``
кладётся простой
текст, а в
this.showInfo
у тебя
функция?
Это не заработает никогда.
Почему это работает в .vue файлах внутри
<template>
? Потому что .vue - это не .js, это отдельный формат файла, использующий отдельный микроязык шаблонов, который компилируется в js.
Простой, но плохой, вариант - использовать обычный html onclick указывающий на пошареную глобально функцию.
Сложный вариант - сложный, надо думать и для начала разбираться с echarts - может что по-проще можно сотворить.
...upd:
Да, можно сделать проще если почитать
доки:
Текст не нужен, tooltip formatter может возвращать HTMLElement и HTMLElement[].
А значит можно просто сделать примерно так:
formatter: (params) => {
const span = document.createElement('span');
span.onclick = this.showInfo;
span.textContent = 'Ask Price';
return [
span,
document.createTextNode(`: ${params.value[0]}`),
document.createElement('br'),
document.createTextNode(`Duration: ${params.value[1]}`),
]
}
Можно даже намутить отдельно-стоящий vue-компонент, но не нужно.