Разметка, сгенерированная dhtmlxScheduler, находится за пределами области видимости vue, поэтому я не думаю, что стили с областями видимости будут работать с ней.
Попробуйте удалить атрибут scoped
из вашего объявления стиля
<style>
@import "../../node_modules/dhtmlx-scheduler/codebase/dhtmlxscheduler_material.css";
</style>
Вот связанная проблема github https://github.com/vuejs/vue-loader/issues/559
Объяснение :
Vue добавляет специальный атрибут data-v-xxxxxxx
к html-элементам, созданным вашим компонентом.
Vue css-loader, в свою очередь, изменяет селекторы в области видимости css для явного соответствия элементов внутри вашего компонента и ничего за пределами.
Так что .dhx_cal_event_line { background: blue; }
в dhtmlscheduler.css становится .dhx_cal_event_line[data-v-xxxxxxx] { backtround: blue; }
при загрузке на страницу. Предполагается, что такой стиль влияет только на компонент с соответствующим значением атрибута data-v
.
Проблема в том, что DOM-элементы dhtmlxscheduler создаются библиотечным кодом вне знания компонента vue, у них нет атрибутов vue data-v-xxxxxxx
, поэтому селекторы css в области больше не соответствуют им.
Таким образом, вам придется загружать планировщик css в качестве глобального стиля.
Возможно, есть лучшее решение, но, к сожалению, я его не знаю.