index.coffee 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. # app/pages/Home/index.coffee
  2. # Добавление стилей страницы
  3. if globalThis.stylFns and globalThis.stylFns['app/pages/Home/index.styl']
  4. styleElement = document.createElement('style')
  5. styleElement.type = 'text/css'
  6. styleElement.textContent = globalThis.stylFns['app/pages/Home/index.styl']
  7. document.head.appendChild(styleElement)
  8. else
  9. log '⚠️ Стили главной страницы не найдены'
  10. module.exports = {
  11. # Импорт компонентов
  12. components: {
  13. 'product-grid': require 'app/components/Domain/ProductGrid/index.coffee'
  14. }
  15. props:
  16. domainSettings:
  17. type: Object
  18. default: -> {}
  19. language:
  20. type: String
  21. default: 'ru'
  22. data: ->
  23. {
  24. welcomeText: 'Добро пожаловать в Браер-Колор'
  25. loading: false
  26. productsLoading: false
  27. featuredProducts: []
  28. features: [
  29. {
  30. title: 'Качественные материалы'
  31. description: 'Широкий ассортимент красок, грунтовок и лакокрасочных материалов от проверенных производителей'
  32. }
  33. {
  34. title: 'Доставка по России'
  35. description: 'Быстрая и надежная доставка в любой регион страны. Работаем с ведущими транспортными компаниями'
  36. }
  37. {
  38. title: 'Профессиональные консультации'
  39. description: 'Наши специалисты помогут подобрать оптимальные материалы для ваших задач и бюджета'
  40. }
  41. ]
  42. }
  43. methods:
  44. goToCatalog: ->
  45. @$router.push '/catalog'
  46. contactSupport: ->
  47. @$emit 'show-notification', 'Форма обратной связи будет добавлена позже', 'info'
  48. viewProduct: (productId) ->
  49. @$router.push "/product/#{productId}"
  50. loadFeaturedProducts: ->
  51. @productsLoading = true
  52. # Заглушка для загрузки товаров
  53. setTimeout (=>
  54. @featuredProducts = [
  55. { id: 1, name: 'Грунтовка глубокого проникновения', price: 528, image: '' },
  56. { id: 2, name: 'Краска акриловая белая', price: 890, image: '' },
  57. { id: 3, name: 'Эмаль для металла', price: 670, image: '' }
  58. ]
  59. @productsLoading = false
  60. ), 1000
  61. mounted: ->
  62. log 'Главная страница загружена'
  63. @loadFeaturedProducts()
  64. render: (new Function '_ctx', '_cache', globalThis.renderFns['app/pages/Home/index.pug'])()
  65. }