Browse Source

0829

master
xiaohei 1 year ago
parent
commit
946b08b26e
91 changed files with 771 additions and 280 deletions
  1. +3
    -0
      montier/src/assets/css/index.css
  2. BIN
      montier/src/assets/img/Door/29.png
  3. BIN
      montier/src/assets/img/Door/30.png
  4. BIN
      montier/src/assets/img/Door/31.png
  5. BIN
      montier/src/assets/img/Door/32.png
  6. BIN
      montier/src/assets/img/ProjectCase/01/1.jpg
  7. BIN
      montier/src/assets/img/ProjectCase/01/2.jpg
  8. BIN
      montier/src/assets/img/ProjectCase/01/3.jpg
  9. BIN
      montier/src/assets/img/ProjectCase/01/4.jpg
  10. BIN
      montier/src/assets/img/ProjectCase/01/5.jpg
  11. BIN
      montier/src/assets/img/ProjectCase/01/6.jpg
  12. BIN
      montier/src/assets/img/ProjectCase/02/1.jpg
  13. BIN
      montier/src/assets/img/ProjectCase/02/2.jpg
  14. BIN
      montier/src/assets/img/ProjectCase/02/3.jpg
  15. BIN
      montier/src/assets/img/ProjectCase/02/4.jpg
  16. BIN
      montier/src/assets/img/ProjectCase/02/5.jpg
  17. BIN
      montier/src/assets/img/ProjectCase/02/6.jpg
  18. BIN
      montier/src/assets/img/ProjectCase/02/7.jpg
  19. BIN
      montier/src/assets/img/ProjectCase/02/8.jpg
  20. BIN
      montier/src/assets/img/ProjectCase/02/9.jpg
  21. BIN
      montier/src/assets/img/ProjectCase/03/1.jpg
  22. BIN
      montier/src/assets/img/ProjectCase/03/2.jpg
  23. BIN
      montier/src/assets/img/ProjectCase/03/3.jpg
  24. BIN
      montier/src/assets/img/ProjectCase/03/4.jpg
  25. BIN
      montier/src/assets/img/ProjectCase/03/5.jpg
  26. BIN
      montier/src/assets/img/ProjectCase/03/6.jpg
  27. BIN
      montier/src/assets/img/ProjectCase/03/7.jpg
  28. BIN
      montier/src/assets/img/ProjectCase/03/8.jpg
  29. BIN
      montier/src/assets/img/ProjectCase/04/1.jpg
  30. BIN
      montier/src/assets/img/ProjectCase/04/2.jpg
  31. BIN
      montier/src/assets/img/ProjectCase/04/3.jpg
  32. BIN
      montier/src/assets/img/ProjectCase/04/4.jpg
  33. BIN
      montier/src/assets/img/ProjectCase/04/5.jpg
  34. BIN
      montier/src/assets/img/ProjectCase/04/6.jpg
  35. BIN
      montier/src/assets/img/ProjectCase/05/1.jpg
  36. BIN
      montier/src/assets/img/ProjectCase/05/2.jpg
  37. BIN
      montier/src/assets/img/ProjectCase/05/3.jpg
  38. BIN
      montier/src/assets/img/ProjectCase/05/4.jpg
  39. BIN
      montier/src/assets/img/ProjectCase/05/5.jpg
  40. BIN
      montier/src/assets/img/ProjectCase/05/6.jpg
  41. BIN
      montier/src/assets/img/ProjectCase/05/7.jpg
  42. BIN
      montier/src/assets/img/ProjectCase/06/1.jpg
  43. BIN
      montier/src/assets/img/ProjectCase/06/2.jpg
  44. BIN
      montier/src/assets/img/ProjectCase/06/3.jpg
  45. BIN
      montier/src/assets/img/ProjectCase/06/4.jpg
  46. BIN
      montier/src/assets/img/ProjectCase/06/5.jpg
  47. BIN
      montier/src/assets/img/ProjectCase/06/6.jpg
  48. BIN
      montier/src/assets/img/ProjectCase/06/7.jpg
  49. BIN
      montier/src/assets/img/ProjectCase/07/1.jpg
  50. BIN
      montier/src/assets/img/ProjectCase/07/2.jpg
  51. BIN
      montier/src/assets/img/ProjectCase/07/3.jpg
  52. BIN
      montier/src/assets/img/ProjectCase/07/4.jpg
  53. BIN
      montier/src/assets/img/ProjectCase/07/5.jpg
  54. BIN
      montier/src/assets/img/ProjectCase/07/6.jpg
  55. BIN
      montier/src/assets/img/ProjectCase/08/1.jpg
  56. BIN
      montier/src/assets/img/ProjectCase/08/2.3.jpg
  57. BIN
      montier/src/assets/img/ProjectCase/08/2.jpg
  58. BIN
      montier/src/assets/img/ProjectCase/08/3.jpg
  59. BIN
      montier/src/assets/img/ProjectCase/08/4.jpg
  60. BIN
      montier/src/assets/img/ProjectCase/08/5.jpg
  61. BIN
      montier/src/assets/img/ProjectCase/08/6.jpg
  62. BIN
      montier/src/assets/img/ProjectCase/08/7.jpg
  63. BIN
      montier/src/assets/img/ProjectCase/08/8.jpg
  64. BIN
      montier/src/assets/img/ProjectCase/08/9.jpg
  65. BIN
      montier/src/assets/img/cases/001.jpg
  66. BIN
      montier/src/assets/img/cases/002.jpg
  67. BIN
      montier/src/assets/img/cases/003.jpg
  68. BIN
      montier/src/assets/img/cases/004.jpg
  69. BIN
      montier/src/assets/img/cases/005.jpg
  70. BIN
      montier/src/assets/img/cases/006.jpg
  71. BIN
      montier/src/assets/img/cases/007.jpg
  72. BIN
      montier/src/assets/img/cases/008.jpg
  73. BIN
      montier/src/assets/img/cases/008.png
  74. BIN
      montier/src/assets/img/cases/01.jpg
  75. BIN
      montier/src/assets/img/cases/02.jpg
  76. BIN
      montier/src/assets/img/cases/03.jpg
  77. BIN
      montier/src/assets/img/cases/04.jpg
  78. BIN
      montier/src/assets/img/cases/05.jpg
  79. BIN
      montier/src/assets/img/cases/06.jpg
  80. BIN
      montier/src/assets/img/cases/07.jpg
  81. BIN
      montier/src/assets/img/cases/08.jpg
  82. +9
    -2
      montier/src/pages/AboutMessage.vue
  83. +8
    -8
      montier/src/pages/AllCases.vue
  84. +24
    -5
      montier/src/pages/Allproduct.vue
  85. +396
    -44
      montier/src/pages/Casemessage.vue
  86. +1
    -1
      montier/src/pages/HomePage.vue
  87. +52
    -50
      montier/src/pages/Procurement.vue
  88. +113
    -41
      montier/src/pages/Productmessage.vue
  89. +93
    -91
      montier/src/pages/ProjectCase.vue
  90. +2
    -2
      montier/src/pages/Service.vue
  91. +70
    -36
      montier/src/store/modules/homepage.ts

+ 3
- 0
montier/src/assets/css/index.css View File

@ -2,6 +2,9 @@
.line-height-2{ .line-height-2{
line-height: 2; line-height: 2;
} }
.line-height-4{
line-height: 4;
}
/*字体大小*/ /*字体大小*/
.font-size-10{ .font-size-10{


BIN
montier/src/assets/img/Door/29.png View File

Before After
Width: 711  |  Height: 711  |  Size: 434 KiB

BIN
montier/src/assets/img/Door/30.png View File

Before After
Width: 685  |  Height: 716  |  Size: 173 KiB

BIN
montier/src/assets/img/Door/31.png View File

Before After
Width: 672  |  Height: 686  |  Size: 518 KiB

BIN
montier/src/assets/img/Door/32.png View File

Before After
Width: 515  |  Height: 718  |  Size: 317 KiB

BIN
montier/src/assets/img/ProjectCase/01/1.jpg View File

Before After
Width: 940  |  Height: 627  |  Size: 104 KiB

BIN
montier/src/assets/img/ProjectCase/01/2.jpg View File

Before After
Width: 940  |  Height: 627  |  Size: 143 KiB

BIN
montier/src/assets/img/ProjectCase/01/3.jpg View File

Before After
Width: 940  |  Height: 608  |  Size: 82 KiB

BIN
montier/src/assets/img/ProjectCase/01/4.jpg View File

Before After
Width: 1000  |  Height: 678  |  Size: 120 KiB

BIN
montier/src/assets/img/ProjectCase/01/5.jpg View File

Before After
Width: 1000  |  Height: 667  |  Size: 148 KiB

BIN
montier/src/assets/img/ProjectCase/01/6.jpg View File

Before After
Width: 940  |  Height: 636  |  Size: 75 KiB

BIN
montier/src/assets/img/ProjectCase/02/1.jpg View File

Before After
Width: 940  |  Height: 582  |  Size: 232 KiB

BIN
montier/src/assets/img/ProjectCase/02/2.jpg View File

Before After
Width: 940  |  Height: 627  |  Size: 374 KiB

BIN
montier/src/assets/img/ProjectCase/02/3.jpg View File

Before After
Width: 1080  |  Height: 720  |  Size: 203 KiB

BIN
montier/src/assets/img/ProjectCase/02/4.jpg View File

Before After
Width: 1080  |  Height: 739  |  Size: 305 KiB

BIN
montier/src/assets/img/ProjectCase/02/5.jpg View File

Before After
Width: 1080  |  Height: 739  |  Size: 115 KiB

BIN
montier/src/assets/img/ProjectCase/02/6.jpg View File

Before After
Width: 540  |  Height: 545  |  Size: 63 KiB

BIN
montier/src/assets/img/ProjectCase/02/7.jpg View File

Before After
Width: 706  |  Height: 396  |  Size: 53 KiB

BIN
montier/src/assets/img/ProjectCase/02/8.jpg View File

Before After
Width: 1080  |  Height: 739  |  Size: 106 KiB

BIN
montier/src/assets/img/ProjectCase/02/9.jpg View File

Before After
Width: 940  |  Height: 940  |  Size: 239 KiB

BIN
montier/src/assets/img/ProjectCase/03/1.jpg View File

Before After
Width: 1024  |  Height: 767  |  Size: 135 KiB

BIN
montier/src/assets/img/ProjectCase/03/2.jpg View File

Before After
Width: 1080  |  Height: 720  |  Size: 150 KiB

BIN
montier/src/assets/img/ProjectCase/03/3.jpg View File

Before After
Width: 1080  |  Height: 720  |  Size: 168 KiB

BIN
montier/src/assets/img/ProjectCase/03/4.jpg View File

Before After
Width: 1000  |  Height: 667  |  Size: 55 KiB

BIN
montier/src/assets/img/ProjectCase/03/5.jpg View File

Before After
Width: 1080  |  Height: 720  |  Size: 158 KiB

BIN
montier/src/assets/img/ProjectCase/03/6.jpg View File

Before After
Width: 1000  |  Height: 662  |  Size: 85 KiB

BIN
montier/src/assets/img/ProjectCase/03/7.jpg View File

Before After
Width: 1080  |  Height: 720  |  Size: 153 KiB

BIN
montier/src/assets/img/ProjectCase/03/8.jpg View File

Before After
Width: 1080  |  Height: 720  |  Size: 117 KiB

BIN
montier/src/assets/img/ProjectCase/04/1.jpg View File

Before After
Width: 762  |  Height: 570  |  Size: 127 KiB

BIN
montier/src/assets/img/ProjectCase/04/2.jpg View File

Before After
Width: 1143  |  Height: 849  |  Size: 272 KiB

BIN
montier/src/assets/img/ProjectCase/04/3.jpg View File

Before After
Width: 752  |  Height: 558  |  Size: 75 KiB

BIN
montier/src/assets/img/ProjectCase/04/4.jpg View File

Before After
Width: 756  |  Height: 569  |  Size: 98 KiB

BIN
montier/src/assets/img/ProjectCase/04/5.jpg View File

Before After
Width: 765  |  Height: 571  |  Size: 107 KiB

BIN
montier/src/assets/img/ProjectCase/04/6.jpg View File

Before After
Width: 758  |  Height: 569  |  Size: 78 KiB

BIN
montier/src/assets/img/ProjectCase/05/1.jpg View File

Before After
Width: 1008  |  Height: 672  |  Size: 162 KiB

BIN
montier/src/assets/img/ProjectCase/05/2.jpg View File

Before After
Width: 1009  |  Height: 673  |  Size: 177 KiB

BIN
montier/src/assets/img/ProjectCase/05/3.jpg View File

Before After
Width: 1012  |  Height: 676  |  Size: 152 KiB

BIN
montier/src/assets/img/ProjectCase/05/4.jpg View File

Before After
Width: 623  |  Height: 408  |  Size: 43 KiB

BIN
montier/src/assets/img/ProjectCase/05/5.jpg View File

Before After
Width: 627  |  Height: 419  |  Size: 40 KiB

BIN
montier/src/assets/img/ProjectCase/05/6.jpg View File

Before After
Width: 1008  |  Height: 673  |  Size: 103 KiB

BIN
montier/src/assets/img/ProjectCase/05/7.jpg View File

Before After
Width: 1004  |  Height: 666  |  Size: 121 KiB

BIN
montier/src/assets/img/ProjectCase/06/1.jpg View File

Before After
Width: 1231  |  Height: 854  |  Size: 350 KiB

BIN
montier/src/assets/img/ProjectCase/06/2.jpg View File

Before After
Width: 756  |  Height: 572  |  Size: 76 KiB

BIN
montier/src/assets/img/ProjectCase/06/3.jpg View File

Before After
Width: 751  |  Height: 565  |  Size: 130 KiB

BIN
montier/src/assets/img/ProjectCase/06/4.jpg View File

Before After
Width: 754  |  Height: 557  |  Size: 68 KiB

BIN
montier/src/assets/img/ProjectCase/06/5.jpg View File

Before After
Width: 757  |  Height: 564  |  Size: 82 KiB

BIN
montier/src/assets/img/ProjectCase/06/6.jpg View File

Before After
Width: 1181  |  Height: 807  |  Size: 171 KiB

BIN
montier/src/assets/img/ProjectCase/06/7.jpg View File

Before After
Width: 615  |  Height: 401  |  Size: 49 KiB

BIN
montier/src/assets/img/ProjectCase/07/1.jpg View File

Before After
Width: 1513  |  Height: 853  |  Size: 254 KiB

BIN
montier/src/assets/img/ProjectCase/07/2.jpg View File

Before After
Width: 1279  |  Height: 847  |  Size: 297 KiB

BIN
montier/src/assets/img/ProjectCase/07/3.jpg View File

Before After
Width: 1282  |  Height: 842  |  Size: 298 KiB

BIN
montier/src/assets/img/ProjectCase/07/4.jpg View File

Before After
Width: 1276  |  Height: 837  |  Size: 159 KiB

BIN
montier/src/assets/img/ProjectCase/07/5.jpg View File

Before After
Width: 1270  |  Height: 841  |  Size: 151 KiB

BIN
montier/src/assets/img/ProjectCase/07/6.jpg View File

Before After
Width: 1089  |  Height: 707  |  Size: 89 KiB

BIN
montier/src/assets/img/ProjectCase/08/1.jpg View File

Before After
Width: 1500  |  Height: 793  |  Size: 170 KiB

BIN
montier/src/assets/img/ProjectCase/08/2.3.jpg View File

Before After
Width: 1500  |  Height: 1000  |  Size: 195 KiB

BIN
montier/src/assets/img/ProjectCase/08/2.jpg View File

Before After
Width: 1500  |  Height: 844  |  Size: 78 KiB

BIN
montier/src/assets/img/ProjectCase/08/3.jpg View File

Before After
Width: 1244  |  Height: 700  |  Size: 123 KiB

BIN
montier/src/assets/img/ProjectCase/08/4.jpg View File

Before After
Width: 1244  |  Height: 700  |  Size: 119 KiB

BIN
montier/src/assets/img/ProjectCase/08/5.jpg View File

Before After
Width: 1518  |  Height: 837  |  Size: 197 KiB

BIN
montier/src/assets/img/ProjectCase/08/6.jpg View File

Before After
Width: 1514  |  Height: 836  |  Size: 226 KiB

BIN
montier/src/assets/img/ProjectCase/08/7.jpg View File

Before After
Width: 1244  |  Height: 700  |  Size: 88 KiB

BIN
montier/src/assets/img/ProjectCase/08/8.jpg View File

Before After
Width: 889  |  Height: 500  |  Size: 68 KiB

BIN
montier/src/assets/img/ProjectCase/08/9.jpg View File

Before After
Width: 1500  |  Height: 844  |  Size: 134 KiB

BIN
montier/src/assets/img/cases/001.jpg View File

Before After
Width: 399  |  Height: 276  |  Size: 123 KiB

BIN
montier/src/assets/img/cases/002.jpg View File

Before After
Width: 501  |  Height: 335  |  Size: 66 KiB

BIN
montier/src/assets/img/cases/003.jpg View File

Before After
Width: 299  |  Height: 202  |  Size: 72 KiB

BIN
montier/src/assets/img/cases/004.jpg View File

Before After
Width: 400  |  Height: 299  |  Size: 65 KiB

BIN
montier/src/assets/img/cases/005.jpg View File

Before After
Width: 300  |  Height: 200  |  Size: 36 KiB

BIN
montier/src/assets/img/cases/006.jpg View File

Before After
Width: 500  |  Height: 333  |  Size: 78 KiB

BIN
montier/src/assets/img/cases/007.jpg View File

Before After
Width: 800  |  Height: 533  |  Size: 172 KiB

BIN
montier/src/assets/img/cases/008.jpg View File

Before After
Width: 400  |  Height: 227  |  Size: 66 KiB

BIN
montier/src/assets/img/cases/008.png View File

Before After
Width: 201  |  Height: 114  |  Size: 48 KiB

BIN
montier/src/assets/img/cases/01.jpg View File

Before After
Width: 400  |  Height: 268  |  Size: 117 KiB

BIN
montier/src/assets/img/cases/02.jpg View File

Before After
Width: 400  |  Height: 249  |  Size: 88 KiB

BIN
montier/src/assets/img/cases/03.jpg View File

Before After
Width: 301  |  Height: 225  |  Size: 83 KiB

BIN
montier/src/assets/img/cases/04.jpg View File

Before After
Width: 300  |  Height: 222  |  Size: 64 KiB

BIN
montier/src/assets/img/cases/05.jpg View File

Before After
Width: 400  |  Height: 265  |  Size: 87 KiB

BIN
montier/src/assets/img/cases/06.jpg View File

Before After
Width: 400  |  Height: 276  |  Size: 110 KiB

BIN
montier/src/assets/img/cases/07.jpg View File

Before After
Width: 400  |  Height: 225  |  Size: 83 KiB

BIN
montier/src/assets/img/cases/08.jpg View File

Before After
Width: 389  |  Height: 195  |  Size: 80 KiB

+ 9
- 2
montier/src/pages/AboutMessage.vue View File

@ -62,7 +62,7 @@ onMounted(() => {
.about { .about {
// height: 48.3rem; // height: 48.3rem;
height: 60vw;
height: 65rem;
background: url("../assets/img/aboutus.jpg") no-repeat; background: url("../assets/img/aboutus.jpg") no-repeat;
background-size: cover; background-size: cover;
// background-position: center; // background-position: center;
@ -137,5 +137,12 @@ onMounted(() => {
} }
@media screen and (width: 960px) {}
@media screen and (max-width: 960px) {
.aboutmessage {
.about {
height: 50rem;
background: url("../assets/img/aboutus.jpg") no-repeat;
}
}
}
</style> </style>

+ 8
- 8
montier/src/pages/AllCases.vue View File

@ -31,49 +31,49 @@ let caseList = Array<any>(
title: 'Fairmont Empress Hotel', title: 'Fairmont Empress Hotel',
location: 'Victoria, Canada', location: 'Victoria, Canada',
units: '300+', units: '300+',
url: new URL("../assets/img/cases/01.jpg",import.meta.url).href
url: new URL("../assets/img/ProjectCase/01/1.jpg",import.meta.url).href
}, },
{ {
title: 'Monsaraz Hilton', title: 'Monsaraz Hilton',
location: 'San Diego,USA', location: 'San Diego,USA',
units: '200+', units: '200+',
url: new URL("../assets/img/cases/02.jpg",import.meta.url).href
url: new URL("../assets/img/ProjectCase/02/1.jpg",import.meta.url).href
}, },
{ {
title: 'Canopy By Hilton San Francisco Soma Hotel', title: 'Canopy By Hilton San Francisco Soma Hotel',
location: 'San Fransisco,USA', location: 'San Fransisco,USA',
units: '200+', units: '200+',
url: new URL("../assets/img/cases/03.jpg",import.meta.url).href
url: new URL("../assets/img/ProjectCase/03/1.jpg",import.meta.url).href
}, },
{ {
title: 'Lofts on Laurel', title: 'Lofts on Laurel',
location: 'San Diego,USA', location: 'San Diego,USA',
units: '20+', units: '20+',
url: new URL("../assets/img/cases/04.jpg",import.meta.url).href
url: new URL("../assets/img/ProjectCase/04/1.jpg",import.meta.url).href
}, },
{ {
title: 'State&Oak Street', title: 'State&Oak Street',
location: 'Carlsbad,CA,USA', location: 'Carlsbad,CA,USA',
units: '20+', units: '20+',
url: new URL("../assets/img/cases/05.jpg",import.meta.url).href
url: new URL("../assets/img/ProjectCase/05/1.jpg",import.meta.url).href
}, },
{ {
title: '989 Johson Street', title: '989 Johson Street',
location: 'Victoria, Canada', location: 'Victoria, Canada',
units: '180+', units: '180+',
url: new URL("../assets/img/cases/06.jpg",import.meta.url).href
url: new URL("../assets/img/ProjectCase/06/1.jpg",import.meta.url).href
}, },
{ {
title: 'Tarrace Lofts', title: 'Tarrace Lofts',
location: 'Vista, California, USA', location: 'Vista, California, USA',
units: '20+', units: '20+',
url: new URL("../assets/img/cases/07.jpg",import.meta.url).href
url: new URL("../assets/img/ProjectCase/07/1.jpg",import.meta.url).href
}, },
{ {
title: 'Ocean 17', title: 'Ocean 17',
location: 'Carlsbad,CA,USA', location: 'Carlsbad,CA,USA',
units: '17', units: '17',
url: new URL("../assets/img/cases/08.jpg",import.meta.url).href
url: new URL("../assets/img/ProjectCase/08/1.jpg",import.meta.url).href
}, },
) )


+ 24
- 5
montier/src/pages/Allproduct.vue View File

@ -7,6 +7,7 @@
<span class="imgtitle position-absolute color-fff">{{ item.name }}</span> <span class="imgtitle position-absolute color-fff">{{ item.name }}</span>
</div> </div>
</div> </div>
<div class="btn position-relative font-size-20" @click="goPage('/')">Back</div>
</div> </div>
</template> </template>
@ -30,6 +31,21 @@ const goPage = (url: any) => {
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
.btn {
cursor: pointer;
left: 50%;
transform: translateX(-50%);
margin: 1rem 0 2rem;
float: left;
font-weight: bold;
padding: 1rem 2.5rem;
border: 1px solid #333;
}
.btn:hover {
color: #fa8106;
border: 1px solid #fa8106;
}
.allproduct { .allproduct {
width: 100%; width: 100%;
margin-top: 1rem; margin-top: 1rem;
@ -42,11 +58,12 @@ const goPage = (url: any) => {
flex-wrap: wrap; flex-wrap: wrap;
.product-img { .product-img {
width: 23%;
height: 35vw;
cursor: pointer;
width: 22%;
height: 25rem;
overflow: hidden; overflow: hidden;
margin-right: 2rem;
margin-bottom: 2rem;
margin-right: 3rem;
margin-bottom: 3rem;
img { img {
width: 100%; width: 100%;
@ -58,8 +75,10 @@ const goPage = (url: any) => {
width: 100%; width: 100%;
bottom: 0; bottom: 0;
left: 0; left: 0;
height: 5rem;
height: 4rem;
padding: 1rem;
background: rgba(0, 0, 0, 0.3); background: rgba(0, 0, 0, 0.3);
box-sizing: border-box;
font-size: 26px; font-size: 26px;
display: flex; display: flex;
align-items: center; align-items: center;


+ 396
- 44
montier/src/pages/Casemessage.vue View File

@ -27,14 +27,39 @@
</div> </div>
</div> </div>
<div class="casemessage-right" :class="mobileShow ? 'width-100' : 'width-70'"> <div class="casemessage-right" :class="mobileShow ? 'width-100' : 'width-70'">
<img :src="casemessage.img[0].details" :alt="casemessage.img[0].name" class="width-100 imgcase" loading="lazy">
<img :src="casemessage.img.details" :alt="casemessage.img.name" class="width-100 imgcase"
loading="lazy">
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="details"> <div class="details">
<h2><strong>DETAILS</strong></h2> <h2><strong>DETAILS</strong></h2>
<img :src="casemessage.img[1].details" :alt="casemessage.img[1].name" class="img" :class="mobileShow ? 'width-70' : 'width-50'" loading="lazy">
<div class="details-pic" v-if="casemessage.img.children && casemessage.img.children.length > 0">
<div class="img" v-for="item, index in casemessage.img.children" :key="index">
<img :src="item.details" :alt="item.name" loading="lazy">
</div>
</div>
</div>
<div class="other">
<h1 class="mb-2"><strong>Other Cases</strong></h1>
<swiper :modules="modules" :slides-per-view="slidesPerView" :loop="true" :space-between="50" navigation
:pagination="{ clickable: true }">
<!-- 项目案例 -->
<swiper-slide v-for="(item, index2) in bannerList" class="hover-scale cursor-pointer" :key="item.position">
<div>
<div class="case-img overflow-hidden position-relative"
@click="goPage1(`/projectcase/${item.position}`, 'projectCases')">
<img :src="item.detail" :alt="item.name" class="width-100 d-block position-relative imgcase1"
loading="lazy" />
<div class="position-absolute color-fff project-center-title">
<span class="font-700 font-size-20">{{ item.name }}</span>
<span class="font-700 font-size-20">{{ item.address }}</span>
</div>
</div>
</div>
</swiper-slide>
</swiper>
</div> </div>
<div class="btn position-relative" :class="mobileShow ? 'font-size-16' : 'font-size-22'" @click="goPage">Back</div> <div class="btn position-relative" :class="mobileShow ? 'font-size-16' : 'font-size-22'" @click="goPage">Back</div>
</div> </div>
@ -42,9 +67,18 @@
<script setup lang="ts"> <script setup lang="ts">
import router from '../router'; import router from '../router';
import 'swiper/css';
import 'swiper/css/navigation';
import 'swiper/css/pagination';
import 'swiper/css/scrollbar';
import { A11y, Navigation, Scrollbar } from "swiper";
import { Swiper, SwiperSlide } from 'swiper/vue';
import { watch, reactive, ref, onMounted } from 'vue' import { watch, reactive, ref, onMounted } from 'vue'
let modules = [Navigation, Scrollbar, A11y];
let casemessage = reactive<any>({}) let casemessage = reactive<any>({})
let slidesPerView = ref<number>(3)
watch(() => router.currentRoute.value.params.name, (newValue: any) => { watch(() => router.currentRoute.value.params.name, (newValue: any) => {
if (newValue == '0') { if (newValue == '0') {
@ -56,10 +90,29 @@ watch(() => router.currentRoute.value.params.name, (newValue: any) => {
type: 'Hotel', type: 'Hotel',
solutions: 'Furniture,Fixtures&Equipment, lights fixture', solutions: 'Furniture,Fixtures&Equipment, lights fixture',
unites: '300+', unites: '300+',
img: [
{ details: new URL("../assets/img/cases/01.jpg", import.meta.url).href, name: 'MONTIER Canada Hotel Project - Fairmont Empress Hotel' },
{ details: new URL("../assets/img/cases/001.jpg", import.meta.url).href, name: 'MONTIER Canada Hotel Project - Fairmont Empress Hotel' }
]
img: {
details: new URL("../assets/img/ProjectCase/01/1.jpg", import.meta.url).href,
name: 'MONTIER Canada Hotel Project - Fairmont Empress Hotel',
children: [
{
details: new URL("../assets/img/ProjectCase/01/2.jpg", import.meta.url).href,
name: 'MONTIER Canada Hotel Project - Fairmont Empress Hotel',
},
{
details: new URL("../assets/img/ProjectCase/01/3.jpg", import.meta.url).href,
name: 'MONTIER Canada Hotel Project - Fairmont Empress Hotel',
}, {
details: new URL("../assets/img/ProjectCase/01/4.jpg", import.meta.url).href,
name: 'MONTIER Canada Hotel Project - Fairmont Empress Hotel',
}, {
details: new URL("../assets/img/ProjectCase/01/5.jpg", import.meta.url).href,
name: 'MONTIER Canada Hotel Project - Fairmont Empress Hotel',
}, {
details: new URL("../assets/img/ProjectCase/01/6.jpg", import.meta.url).href,
name: 'MONTIER Canada Hotel Project - Fairmont Empress Hotel',
},
]
},
} }
} else if (newValue == '1') { } else if (newValue == '1') {
casemessage = { casemessage = {
@ -70,10 +123,34 @@ watch(() => router.currentRoute.value.params.name, (newValue: any) => {
type: 'Hotel', type: 'Hotel',
solutions: 'Furniture,Fixtures&Equipment, doors', solutions: 'Furniture,Fixtures&Equipment, doors',
unites: '200+', unites: '200+',
img: [
{ details: new URL("../assets/img/cases/02.jpg", import.meta.url).href, name: 'Monsaraz Hilton' },
{ details: new URL("../assets/img/cases/002.jpg", import.meta.url).href, name: 'Monsaraz Hilton' }
]
img: {
details: new URL("../assets/img/ProjectCase/02/2.jpg", import.meta.url).href,
name: 'Monsaraz Hilton',
children: [
{
details: new URL("../assets/img/ProjectCase/02/3.jpg", import.meta.url).href,
name: 'Monsaraz Hilton',
}, {
details: new URL("../assets/img/ProjectCase/02/4.jpg", import.meta.url).href,
name: 'Monsaraz Hilton',
}, {
details: new URL("../assets/img/ProjectCase/02/5.jpg", import.meta.url).href,
name: 'Monsaraz Hilton',
}, {
details: new URL("../assets/img/ProjectCase/02/6.jpg", import.meta.url).href,
name: 'Monsaraz Hilton',
}, {
details: new URL("../assets/img/ProjectCase/02/7.jpg", import.meta.url).href,
name: 'Monsaraz Hilton',
}, {
details: new URL("../assets/img/ProjectCase/02/8.jpg", import.meta.url).href,
name: 'Monsaraz Hilton',
}, {
details: new URL("../assets/img/ProjectCase/02/9.jpg", import.meta.url).href,
name: 'Monsaraz Hilton',
},
]
},
} }
} else if (newValue == '2') { } else if (newValue == '2') {
casemessage = { casemessage = {
@ -84,10 +161,35 @@ watch(() => router.currentRoute.value.params.name, (newValue: any) => {
type: 'Hotel', type: 'Hotel',
solutions: 'Furniture,Fixtures&Equipment,lights fixture', solutions: 'Furniture,Fixtures&Equipment,lights fixture',
unites: '200+', unites: '200+',
img: [
{ details: new URL("../assets/img/cases/03.jpg", import.meta.url).href, name: 'Canopy By Hilton San Francisco Soma Hotel' },
{ details: new URL("../assets/img/cases/003.jpg", import.meta.url).href, name: 'Canopy By Hilton San Francisco Soma Hotel' }
]
img: {
details: new URL("../assets/img/ProjectCase/03/1.jpg", import.meta.url).href,
name: 'Canopy By Hilton San Francisco Soma Hotel',
children: [
{
details: new URL("../assets/img/ProjectCase/03/2.jpg", import.meta.url).href,
name: 'Canopy By Hilton San Francisco Soma Hotel',
},
{
details: new URL("../assets/img/ProjectCase/03/3.jpg", import.meta.url).href,
name: 'Canopy By Hilton San Francisco Soma Hotel',
}, {
details: new URL("../assets/img/ProjectCase/03/4.jpg", import.meta.url).href,
name: 'Canopy By Hilton San Francisco Soma Hotel',
}, {
details: new URL("../assets/img/ProjectCase/03/5.jpg", import.meta.url).href,
name: 'Canopy By Hilton San Francisco Soma Hotel',
}, {
details: new URL("../assets/img/ProjectCase/03/6.jpg", import.meta.url).href,
name: 'Canopy By Hilton San Francisco Soma Hotel',
}, {
details: new URL("../assets/img/ProjectCase/03/7.jpg", import.meta.url).href,
name: 'Canopy By Hilton San Francisco Soma Hotel',
}, {
details: new URL("../assets/img/ProjectCase/03/8.jpg", import.meta.url).href,
name: 'Canopy By Hilton San Francisco Soma Hotel',
},
]
},
} }
} else if (newValue == '3') { } else if (newValue == '3') {
casemessage = { casemessage = {
@ -98,10 +200,29 @@ watch(() => router.currentRoute.value.params.name, (newValue: any) => {
type: 'Condo', type: 'Condo',
solutions: 'Building Materials', solutions: 'Building Materials',
unites: '20+', unites: '20+',
img: [
{ details: new URL("../assets/img/cases/04.jpg", import.meta.url).href, name: 'Lofts on Laurel' },
{ details: new URL("../assets/img/cases/004.jpg", import.meta.url).href, name: 'Lofts on Laurel' }
]
img: {
details: new URL("../assets/img/ProjectCase/04/1.jpg", import.meta.url).href,
name: 'Lofts on Laurel',
children: [
{
details: new URL("../assets/img/ProjectCase/04/2.jpg", import.meta.url).href,
name: 'Lofts on Laurel',
},
{
details: new URL("../assets/img/ProjectCase/04/3.jpg", import.meta.url).href,
name: 'Lofts on Laurel',
}, {
details: new URL("../assets/img/ProjectCase/04/4.jpg", import.meta.url).href,
name: 'Lofts on Laurel',
}, {
details: new URL("../assets/img/ProjectCase/04/5.jpg", import.meta.url).href,
name: 'Lofts on Laurel',
}, {
details: new URL("../assets/img/ProjectCase/04/6.jpg", import.meta.url).href,
name: 'Lofts on Laurel',
},
]
},
} }
} else if (newValue == '4') { } else if (newValue == '4') {
casemessage = { casemessage = {
@ -112,10 +233,32 @@ watch(() => router.currentRoute.value.params.name, (newValue: any) => {
type: 'Condo', type: 'Condo',
solutions: 'Building Materials', solutions: 'Building Materials',
unites: '20+', unites: '20+',
img: [
{ details: new URL("../assets/img/cases/05.jpg", import.meta.url).href, name: 'State&Oak Street' },
{ details: new URL("../assets/img/cases/005.jpg", import.meta.url).href, name: 'State&Oak Street' }
]
img: {
details: new URL("../assets/img/ProjectCase/05/1.jpg", import.meta.url).href,
name: 'State&Oak Street',
children: [
{
details: new URL("../assets/img/ProjectCase/05/2.jpg", import.meta.url).href,
name: 'State&Oak Street',
},
{
details: new URL("../assets/img/ProjectCase/05/3.jpg", import.meta.url).href,
name: 'State&Oak Street',
}, {
details: new URL("../assets/img/ProjectCase/05/4.jpg", import.meta.url).href,
name: 'State&Oak Street',
}, {
details: new URL("../assets/img/ProjectCase/05/5.jpg", import.meta.url).href,
name: 'State&Oak Street',
}, {
details: new URL("../assets/img/ProjectCase/05/6.jpg", import.meta.url).href,
name: 'State&Oak Street',
}, {
details: new URL("../assets/img/ProjectCase/05/7.jpg", import.meta.url).href,
name: 'State&Oak Street',
},
]
},
} }
} else if (newValue == '5') { } else if (newValue == '5') {
casemessage = { casemessage = {
@ -126,10 +269,31 @@ watch(() => router.currentRoute.value.params.name, (newValue: any) => {
type: 'Condo', type: 'Condo',
solutions: 'Building Materials', solutions: 'Building Materials',
unites: '180+', unites: '180+',
img: [
{ details: new URL("../assets/img/cases/06.jpg", import.meta.url).href, name: '989 Johson Street' },
{ details: new URL("../assets/img/cases/006.jpg", import.meta.url).href, name: '989 Johson Street' }
]
img: {
details: new URL("../assets/img/ProjectCase/06/1.jpg", import.meta.url).href,
name: '989 Johson Street',
children: [
{
details: new URL("../assets/img/ProjectCase/06/2.jpg", import.meta.url).href,
name: '989 Johson Street',
}, {
details: new URL("../assets/img/ProjectCase/06/3.jpg", import.meta.url).href,
name: '989 Johson Street',
}, {
details: new URL("../assets/img/ProjectCase/06/4.jpg", import.meta.url).href,
name: '989 Johson Street',
}, {
details: new URL("../assets/img/ProjectCase/06/5.jpg", import.meta.url).href,
name: '989 Johson Street',
}, {
details: new URL("../assets/img/ProjectCase/06/6.jpg", import.meta.url).href,
name: '989 Johson Street',
}, {
details: new URL("../assets/img/ProjectCase/06/7.jpg", import.meta.url).href,
name: '989 Johson Street',
},
]
},
} }
} else if (newValue == '6') { } else if (newValue == '6') {
casemessage = { casemessage = {
@ -140,10 +304,29 @@ watch(() => router.currentRoute.value.params.name, (newValue: any) => {
type: 'Apartment', type: 'Apartment',
solutions: 'Building Materials', solutions: 'Building Materials',
unites: '20+', unites: '20+',
img: [
{ details: new URL("../assets/img/cases/07.jpg", import.meta.url).href, name: 'Tarrace Lofts' },
{ details: new URL("../assets/img/cases/007.jpg", import.meta.url).href, name: 'Tarrace Lofts' }
]
img: {
details: new URL("../assets/img/ProjectCase/07/1.jpg", import.meta.url).href,
name: 'Tarrace Lofts',
children: [
{
details: new URL("../assets/img/ProjectCase/07/2.jpg", import.meta.url).href,
name: 'Tarrace Lofts',
},
{
details: new URL("../assets/img/ProjectCase/07/3.jpg", import.meta.url).href,
name: 'Tarrace Lofts',
}, {
details: new URL("../assets/img/ProjectCase/07/4.jpg", import.meta.url).href,
name: 'Tarrace Lofts',
}, {
details: new URL("../assets/img/ProjectCase/07/5.jpg", import.meta.url).href,
name: 'Tarrace Lofts',
}, {
details: new URL("../assets/img/ProjectCase/07/6.jpg", import.meta.url).href,
name: 'Tarrace Lofts',
},
]
},
} }
} else if (newValue == '7') { } else if (newValue == '7') {
casemessage = { casemessage = {
@ -154,10 +337,40 @@ watch(() => router.currentRoute.value.params.name, (newValue: any) => {
type: 'Condo', type: 'Condo',
solutions: 'Building Materials, lights fixture', solutions: 'Building Materials, lights fixture',
unites: '17', unites: '17',
img: [
{ details: new URL("../assets/img/cases/08.jpg", import.meta.url).href, name: 'Ocean 17' },
{ details: new URL("../assets/img/cases/008.jpg", import.meta.url).href, name: 'Ocean 17' }
]
img: {
details: new URL("../assets/img/ProjectCase/08/1.jpg", import.meta.url).href,
name: 'Ocean 17',
children: [
{
details: new URL("../assets/img/ProjectCase/08/2.3.jpg", import.meta.url).href,
name: 'Ocean 17',
}, {
details: new URL("../assets/img/ProjectCase/08/2.jpg", import.meta.url).href,
name: 'Ocean 17',
}, {
details: new URL("../assets/img/ProjectCase/08/3.jpg", import.meta.url).href,
name: 'Ocean 17',
}, {
details: new URL("../assets/img/ProjectCase/08/4.jpg", import.meta.url).href,
name: 'Ocean 17',
}, {
details: new URL("../assets/img/ProjectCase/08/5.jpg", import.meta.url).href,
name: 'Ocean 17',
}, {
details: new URL("../assets/img/ProjectCase/08/6.jpg", import.meta.url).href,
name: 'Ocean 17',
}, {
details: new URL("../assets/img/ProjectCase/08/7.jpg", import.meta.url).href,
name: 'Ocean 17',
}, {
details: new URL("../assets/img/ProjectCase/08/8.jpg", import.meta.url).href,
name: 'Ocean 17',
}, {
details: new URL("../assets/img/ProjectCase/08/9.jpg", import.meta.url).href,
name: 'Ocean 17',
},
]
},
} }
} }
}, { immediate: true, deep: true }) }, { immediate: true, deep: true })
@ -170,29 +383,114 @@ const goPage = () => {
}) })
document.getElementById('service')?.scrollIntoView() document.getElementById('service')?.scrollIntoView()
} }
const goPage1 = (url: any, name: string) => {
if (name != '') {
localStorage.setItem('scrollPosition', name)
}
document.documentElement.scrollTop = 0
router.push({
path: url
})
}
let bannerList = ref<any>([
{ detail: new URL("../assets/img/ProjectCase/01/1.jpg", import.meta.url).href, name: 'Fairmont Empress Hotel', address: 'Victoria, Canada', position: 0 },
{ detail: new URL("../assets/img/ProjectCase/02/1.jpg", import.meta.url).href, name: 'Monsaraz Hilton', address: 'San Diego,USA', position: 1 },
{ detail: new URL("../assets/img/ProjectCase/03/1.jpg", import.meta.url).href, name: 'Canopy By Hilton San Francisco Soma Hotel', address: 'San Fransisco,USA', position: 2 },
{ detail: new URL("../assets/img/ProjectCase/04/1.jpg", import.meta.url).href, name: 'Lofts on Laurel', address: 'San Diego,USA', position: 3 },
{ detail: new URL("../assets/img/ProjectCase/05/1.jpg", import.meta.url).href, name: 'State&Oak Street', address: 'Carlsbad,CA,USA', position: 4 },
{ detail: new URL("../assets/img/ProjectCase/06/1.jpg", import.meta.url).href, name: '989 Johson Street', address: 'Victoria, Canada', position: 5 },
{ detail: new URL("../assets/img/ProjectCase/07/1.jpg", import.meta.url).href, name: 'Tarrace Lofts', address: 'Vista, California, USA', position: 6 },
{ detail: new URL("../assets/img/ProjectCase/08/1.jpg", import.meta.url).href, name: 'Ocean 17', address: 'Carlsbad,CA,USA', position: 7 },
])
onMounted(() => { onMounted(() => {
bannerList.value.map((li: any) => {
bannerList.value = bannerList.value.filter((li: any) => {
return li.position != router.currentRoute.value.params.name
})
})
if (document.body.offsetWidth < 960) { if (document.body.offsetWidth < 960) {
mobileShow.value = true mobileShow.value = true
slidesPerView.value = 1
} else { } else {
mobileShow.value = false mobileShow.value = false
slidesPerView.value = 3
} }
window.addEventListener('resize', function () { window.addEventListener('resize', function () {
if (document.body.offsetWidth < 960) { if (document.body.offsetWidth < 960) {
mobileShow.value = true mobileShow.value = true
slidesPerView.value = 1
} else { } else {
mobileShow.value = false mobileShow.value = false
slidesPerView.value = 3
} }
}) })
}) })
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
:deep(.swiper-button-prev:after) {
color: #fff;
font-size: 30px;
}
:deep(.swiper-button-next:after) {
color: #fff;
font-size: 30px;
}
.project-center-title {
bottom: 0;
left: 0;
height: 50px;
// line-height: 50px;
text-align: left;
background: rgba(0, 0, 0, .4);
width: 100%;
padding: 1rem 1rem;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.other {
width: 90%;
margin: auto;
.hover-scale {
.case-img {
img {
transition: all 3s;
}
.imgcase {
height: 42rem;
}
.imgcase1 {
height: 25rem;
}
}
}
.hover-scale:hover .case-img img {
transform: scale(1.2);
}
.hover-scale:hover .project-center-title {
background: #fa8106;
}
.hover-scale:hover .project-center-title1 {
background: #fa8106;
}
}
.btn { .btn {
cursor: pointer; cursor: pointer;
left: 50%; left: 50%;
transform: translateX(-50%); transform: translateX(-50%);
margin: 3rem 0;
margin: 2rem 0 2rem;
float: left; float: left;
font-weight: bold; font-weight: bold;
padding: 1rem 2.5rem; padding: 1rem 2.5rem;
@ -233,7 +531,8 @@ onMounted(() => {
.year { .year {
display: flex; display: flex;
align-items: center; align-items: center;
span{
span {
white-space: nowrap; white-space: nowrap;
} }
@ -285,23 +584,74 @@ onMounted(() => {
} }
.details { .details {
width: 75%;
width: 90%;
margin: 20px auto; margin: 20px auto;
text-align: left; text-align: left;
.img {
margin-top: 2rem;
.details-pic {
width: 100%;
padding: 1rem;
display: flex;
flex-wrap: wrap;
.img {
width: 43%;
height: 33rem;
margin-right: 3rem;
margin-bottom: 3rem;
overflow: hidden;
img {
width: 100%;
height: 100%;
transition: 0.5s linear;
}
img:hover {
scale: 1.2;
}
}
} }
} }
@media screen and (max-width: 960px) { @media screen and (max-width: 960px) {
.btn{
.btn {
left: 50%; left: 50%;
transform: translateX(-50%); transform: translateX(-50%);
margin: 2rem auto 1rem;
} }
.details{
.details {
width: 90%;
margin: 20px auto;
text-align: center; text-align: center;
.details-pic {
width: 100%;
padding: 1rem;
display: flex;
flex-wrap: wrap;
.img {
width: 100%;
height: 15rem;
margin-right: 3rem;
margin-bottom: 3rem;
overflow: hidden;
img {
width: 100%;
height: 100%;
transition: 0.5s linear;
}
img:hover {
scale: 1.2;
}
}
}
} }
.casemessage { .casemessage {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@ -313,10 +663,12 @@ onMounted(() => {
flex-direction: column; flex-direction: column;
justify-content: space-between; justify-content: space-between;
margin-bottom: 10px; margin-bottom: 10px;
.address-year{
.address-year {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
.address{
.address {
margin-bottom: 0.5rem; margin-bottom: 0.5rem;
} }
} }


+ 1
- 1
montier/src/pages/HomePage.vue View File

@ -118,7 +118,7 @@ const onSlideChange = () => {
background: linear-gradient(transparent 0%, rgba(0, 0, 0, 0.8) 70%); background: linear-gradient(transparent 0%, rgba(0, 0, 0, 0.8) 70%);
width: 100%; width: 100%;
padding: 20px 20px 60px 20px; padding: 20px 20px 60px 20px;
font-size: 60px;
font-size: 55px;
text-align: center; text-align: center;
} }


+ 52
- 50
montier/src/pages/Procurement.vue View File

@ -4,17 +4,18 @@
<div class="content-img"> <div class="content-img">
<div class="fixed-width position-relative"> <div class="fixed-width position-relative">
<img :src="Imglist.img[0].details" class="procurement-max-width" :alt="Imglist.img[0].name" loading="lazy"> <img :src="Imglist.img[0].details" class="procurement-max-width" :alt="Imglist.img[0].name" loading="lazy">
<img :src="Imglist.img[1].details" class="position-absolute second-img" :alt="Imglist.img[1].name" loading="lazy">
<img :src="Imglist.img[1].details" class="position-absolute second-img" :alt="Imglist.img[1].name"
loading="lazy">
<!-- <span class="font-size-20 read-more pa-2 text-center position-absolute" <!-- <span class="font-size-20 read-more pa-2 text-center position-absolute"
:class="mobileShow ? 'read-more-mobile' : 'read-more-pc'">Read more</span> --> :class="mobileShow ? 'read-more-mobile' : 'read-more-pc'">Read more</span> -->
</div> </div>
</div> </div>
<div class="titledesign"> <div class="titledesign">
<div class="designtitle">
<div class="juxing"></div>
<h2><strong>{{ Imglist.title }}</strong></h2>
<div class="destitle">
<div class="zhu"></div>
<h1><strong>{{ Imglist.title }}</strong></h1>
</div> </div>
<p class="line-height-4 ml-3 content" :class="mobileShow ? 'font-size-16' : 'font-size-22'">
<p class="ml-3 content" :class="mobileShow ? 'font-size-16' : 'font-size-26'">
{{ Imglist.content }} {{ Imglist.content }}
</p> </p>
</div> </div>
@ -57,7 +58,7 @@ onMounted(async () => {
}) })
watch(() => router.currentRoute.value.query.index, (newValue: any) => { watch(() => router.currentRoute.value.query.index, (newValue: any) => {
if(newValue == '0'){
if (newValue == '0') {
Imglist = { Imglist = {
title: 'Design', title: 'Design',
content: 'Solving all problems from design, and work out a practical scheme.They are project planning, archi-tectural design, interior design, product design.These four parts from a closed loop.', content: 'Solving all problems from design, and work out a practical scheme.They are project planning, archi-tectural design, interior design, product design.These four parts from a closed loop.',
@ -66,7 +67,7 @@ watch(() => router.currentRoute.value.query.index, (newValue: any) => {
{ details: new URL("../assets/img/Design02.jpg", import.meta.url).href, name: 'Design' }, { details: new URL("../assets/img/Design02.jpg", import.meta.url).href, name: 'Design' },
] ]
} }
}else if(newValue == '1'){
} else if (newValue == '1') {
Imglist = { Imglist = {
title: 'After -sale Service', title: 'After -sale Service',
content: 'We care about quality and care about longtime performance. After sales service is crucial for our business procedure. We offer online and swift response for after sales services.', content: 'We care about quality and care about longtime performance. After sales service is crucial for our business procedure. We offer online and swift response for after sales services.',
@ -75,7 +76,7 @@ watch(() => router.currentRoute.value.query.index, (newValue: any) => {
{ details: new URL("../assets/img/After-saleService02.jpg", import.meta.url).href, name: 'After -sale Service' }, { details: new URL("../assets/img/After-saleService02.jpg", import.meta.url).href, name: 'After -sale Service' },
] ]
} }
}else if(newValue == '2'){
} else if (newValue == '2') {
Imglist = { Imglist = {
title: 'Manufacture', title: 'Manufacture',
content: 'We are able to mass-customize products efficiently as per the approved specification. We manufacture case-goods, upholstery items and all type of solidwood products, as well as decorative lightings.Flexiblity of custom-made system achieve a lower costsin mass product.', content: 'We are able to mass-customize products efficiently as per the approved specification. We manufacture case-goods, upholstery items and all type of solidwood products, as well as decorative lightings.Flexiblity of custom-made system achieve a lower costsin mass product.',
@ -84,7 +85,7 @@ watch(() => router.currentRoute.value.query.index, (newValue: any) => {
{ details: new URL("../assets/img/Manufacture02.jpg", import.meta.url).href, name: 'Manufacture' }, { details: new URL("../assets/img/Manufacture02.jpg", import.meta.url).href, name: 'Manufacture' },
] ]
} }
}else if(newValue == '3'){
} else if (newValue == '3') {
Imglist = { Imglist = {
title: 'Installation', title: 'Installation',
content: 'We have our installation teams for site measurement taken and installation condition analysis. Our installation team is expert on flooring, mill work, cabinets, drapery,wall covering, and carpet.', content: 'We have our installation teams for site measurement taken and installation condition analysis. Our installation team is expert on flooring, mill work, cabinets, drapery,wall covering, and carpet.',
@ -93,7 +94,7 @@ watch(() => router.currentRoute.value.query.index, (newValue: any) => {
{ details: new URL("../assets/img/Installation02.jpg", import.meta.url).href, name: 'Installation' }, { details: new URL("../assets/img/Installation02.jpg", import.meta.url).href, name: 'Installation' },
] ]
} }
}else if(newValue == '4'){
} else if (newValue == '4') {
Imglist = { Imglist = {
title: 'Quality', title: 'Quality',
content: 'Product quality is the lifeline of an company and the fundamental guarantee of its sustainable development. We have implemented a complex quality system to review all material and standard operating procedures are audited regularly to ensure the standards are met. MONTIER can deliver excellent products in line with German quality.', content: 'Product quality is the lifeline of an company and the fundamental guarantee of its sustainable development. We have implemented a complex quality system to review all material and standard operating procedures are audited regularly to ensure the standards are met. MONTIER can deliver excellent products in line with German quality.',
@ -102,7 +103,7 @@ watch(() => router.currentRoute.value.query.index, (newValue: any) => {
{ details: new URL("../assets/img/Quality02.jpg", import.meta.url).href, name: 'Quality' }, { details: new URL("../assets/img/Quality02.jpg", import.meta.url).href, name: 'Quality' },
] ]
} }
}else if(newValue == '5'){
} else if (newValue == '5') {
Imglist = { Imglist = {
title: 'Logistics', title: 'Logistics',
content: 'We work with 3rd party forwarder for local and overseas logistic. For different schedule of delivery, we will manage warehousing for FF&E.', content: 'We work with 3rd party forwarder for local and overseas logistic. For different schedule of delivery, we will manage warehousing for FF&E.',
@ -112,8 +113,8 @@ watch(() => router.currentRoute.value.query.index, (newValue: any) => {
] ]
} }
} }
},{ immediate: true, deep: true })
}, { immediate: true, deep: true })
</script> </script>
@ -146,7 +147,8 @@ watch(() => router.currentRoute.value.query.index, (newValue: any) => {
top: 50%; top: 50%;
transform: translateY(-50%); transform: translateY(-50%);
} }
.second-img3{
.second-img3 {
width: 40%; width: 40%;
height: 20vw; height: 20vw;
margin-left: 8rem; margin-left: 8rem;
@ -191,58 +193,31 @@ watch(() => router.currentRoute.value.query.index, (newValue: any) => {
/* text-indent: 20px; */ /* text-indent: 20px; */
} }
@media (max-width: 1000px) {
.procurement {
margin-top: 15vw;
}
.fixed-width {
width: 50vw;
height: 40vw;
}
.second-img {
height: 25vw;
}
/* .titledesign {
box-sizing: border-box;
margin: 0;
padding: 0;
display: flex;
flex-direction: column;
.designtitle {
margin-bottom: 2rem;
}
} */
}
.titledesign { .titledesign {
box-sizing: border-box; box-sizing: border-box;
margin: 0; margin: 0;
padding: 0;
width: 100%; width: 100%;
margin-top: 3rem; margin-top: 3rem;
display: flex; display: flex;
flex-direction: column;
justify-content: space-between;
align-items: center; align-items: center;
padding: 0 1.5rem; padding: 0 1.5rem;
.designtitle {
width: 100%;
.destitle {
width: 20%;
margin-bottom: 1rem; margin-bottom: 1rem;
.juxing {
width: 2rem;
.zhu {
width: 2.5rem;
height: 1rem; height: 1rem;
background-color: rgba(237, 125, 49); background-color: rgba(237, 125, 49);
margin-bottom: 0.5rem; margin-bottom: 0.5rem;
} }
} }
.content {
width: 80%;
line-height: 2.5rem;
}
} }
.btn { .btn {
@ -261,4 +236,31 @@ watch(() => router.currentRoute.value.query.index, (newValue: any) => {
.btn:hover { .btn:hover {
color: rgba(237, 125, 49); color: rgba(237, 125, 49);
border: 1px solid rgba(237, 125, 49); border: 1px solid rgba(237, 125, 49);
}</style>
}
@media screen and (max-width: 960px) {
.procurement {
margin-top: 15vw;
}
.titledesign {
box-sizing: border-box;
margin: 0;
width: 100%;
margin-top: 2rem;
display: flex;
flex-direction: column;
.destitle {
width: 100%;
margin-bottom: 1rem;
text-align: left;
}
.content {
width: 100%;
line-height: 2rem;
}
}
}
</style>

+ 113
- 41
montier/src/pages/Productmessage.vue View File

@ -13,7 +13,16 @@
</el-tabs> </el-tabs>
<div class="allpic"> <div class="allpic">
<div v-for="item2, index2 in product" :key="index2" class="pic" v-if="product.length != 0"> <div v-for="item2, index2 in product" :key="index2" class="pic" v-if="product.length != 0">
<img :src="item2.detail" :alt="item2.name" loading="lazy">
<el-divider content-position="center" border-style="dashed">{{ item2.name }}</el-divider>
<div class="all-pic">
<div class="pic1" v-for="item3, index3 in item2.children" :key="index3"
v-if="item2.children && item2.children.length > 0">
<img :src="item3.detail" :alt="item2.name" loading="lazy">
</div>
<div class="allpic1" v-else>
<el-empty description="No further content available at the moment" />
</div>
</div>
</div> </div>
<div class="allpic1" v-else> <div class="allpic1" v-else>
<el-empty description="No further content available at the moment" /> <el-empty description="No further content available at the moment" />
@ -66,28 +75,20 @@ onMounted(() => {
if (router.currentRoute.value.params.name == 'Door') { if (router.currentRoute.value.params.name == 'Door') {
productList = [ productList = [
{ {
title: 'Entrance Doors',
children: []
title: 'Entrance Doors'
}, },
{ {
title: 'Interior Doors',
children: []
title: 'Interior Doors'
}, },
{ {
title: 'Fire Doors',
children: []
title: 'Fire Doors'
}, },
{ {
title: 'Sliding Doors',
children: []
title: 'Sliding Doors'
} }
] ]
activeName.value = productList[0].title activeName.value = productList[0].title
if (activeName.value == 'Entrance Doors') {
product = Home.$state.Entrance
} else {
product = []
}
product = Home.$state.Entrance
} else if (router.currentRoute.value.params.name == 'Window') { } else if (router.currentRoute.value.params.name == 'Window') {
productList = [] productList = []
product = [] product = []
@ -112,12 +113,29 @@ if (router.currentRoute.value.params.name == 'Door') {
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
:deep(.el-tabs__item) {
font-size: 26px !important;
padding-bottom: 1rem;
&:hover {
color: #fa8106;
}
}
:deep(.is-active) {
color: #fa8106;
}
:deep(.el-tabs__active-bar) {
background-color: #fa8106 !important;
}
.btn { .btn {
display: inline-block; display: inline-block;
border: 1px solid #333; border: 1px solid #333;
cursor: pointer; cursor: pointer;
padding: 0.5rem 2rem; padding: 0.5rem 2rem;
margin: 1rem 0;
margin: 1.5rem 0;
left: 50%; left: 50%;
transform: translateX(-50%); transform: translateX(-50%);
} }
@ -129,25 +147,43 @@ if (router.currentRoute.value.params.name == 'Door') {
.allpic { .allpic {
width: 100%; width: 100%;
box-sizing: border-box;
display: flex; display: flex;
flex-direction: column;
flex-wrap: wrap; flex-wrap: wrap;
overflow-y: auto;
:deep(.el-divider__text) {
font-size: 22px;
font-weight: bold;
}
.pic { .pic {
width: 23%;
height: 15vw;
margin-right: 2rem;
margin-bottom: 2rem;
overflow: hidden;
width: 100%;
font-size: 26px;
img {
width: 100%;
height: 100%;
transition: 0.5s linear;
}
.all-pic {
width: 95%;
display: flex;
flex-wrap: wrap;
margin: auto;
margin-top: 2rem;
.pic1 {
width: 30%;
height: 20rem;
margin: 0 3rem 3rem 0;
overflow: hidden;
img:hover {
scale: 1.2;
img {
width: 100%;
height: 100%;
transition: 0.5s linear;
}
img:hover {
scale: 1.2;
}
}
} }
} }
} }
@ -160,7 +196,7 @@ if (router.currentRoute.value.params.name == 'Door') {
.productcenter { .productcenter {
.door-bgc { .door-bgc {
width: 100%; width: 100%;
height: 60%;
height: 55rem;
img { img {
width: 100%; width: 100%;
@ -192,7 +228,55 @@ if (router.currentRoute.value.params.name == 'Door') {
} }
@media screen and (max-width: 960px) { @media screen and (max-width: 960px) {
:deep(.el-tabs__item) {
font-size: 14px !important;
}
.productcenter { .productcenter {
.allpic {
width: 100%;
box-sizing: border-box;
display: flex;
flex-direction: column;
flex-wrap: wrap;
margin-top: -2rem;
:deep(.el-divider__text) {
font-size: 10px;
font-weight: bold;
}
.pic {
width: 100%;
font-size: 26px;
.all-pic {
width: 95%;
display: flex;
flex-wrap: wrap;
margin: auto;
margin-top: 1rem;
.pic1 {
width: 28%;
height: 5rem;
margin: 0 1rem 1rem 0;
overflow: hidden;
img {
width: 100%;
height: 100%;
transition: 0.5s linear;
}
img:hover {
scale: 1.2;
}
}
}
}
}
.door-bgc { .door-bgc {
width: 100%; width: 100%;
height: 35%; height: 35%;
@ -208,18 +292,6 @@ if (router.currentRoute.value.params.name == 'Door') {
margin: 1rem auto 0; margin: 1rem auto 0;
} }
} }
.allpic {
box-sizing: border-box;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
.pic {
width: 40%;
height: 25vw;
}
}
} }
</style> </style>


+ 93
- 91
montier/src/pages/ProjectCase.vue View File

@ -1,33 +1,15 @@
<template> <template>
<div class="m-auto project-case wow animated fadeInUp" :class="mobileShow?'width-90':'width-80'">
<swiper
:modules="modules"
:slides-per-view="slidesPerView"
:loop="true"
:space-between="50"
navigation
:pagination="{ clickable: true }"
@swiper="onSwiper"
@slideChange="onSlideChange"
>
<!-- <swiper-slide v-for="(item,index) in bannerList" class="hover-scale cursor-pointer" :key="index" v-if="selectIndex === 1">
<div>
<div class="case-img overflow-hidden img-after" @click="changeindex">
<img :src="item.detail" :alt="item.title" class="width-100 d-block position-relative imgcase1" />
</div>
<div>
<h3 class="color-343434 font-size-18 line-height-2 border-bottom mb-1">North Sydney Landmark Project AURA Apartment</h3>
<p class="mb-1 align-items-center d-flex"><img src="../assets/img/i20.png" alt="address"><span class="ml-1 font-size-14 color-666">China</span></p>
<p class="align-items-center d-flex"><img src="../assets/img/i21.png" alt="units"><span class="ml-1 font-size-14 color-666">387 Units</span></p>
</div>
</div>
</swiper-slide> -->
<div class="m-auto project-case wow animated fadeInUp" :class="mobileShow ? 'width-90' : 'width-80'">
<swiper :modules="modules" :slides-per-view="slidesPerView" :loop="true" :space-between="50" navigation
:pagination="{ clickable: true }" @swiper="onSwiper" @slideChange="onSlideChange">
<!-- 项目案例 --> <!-- 项目案例 -->
<swiper-slide v-for="(item,index2) in bannerList" class="hover-scale cursor-pointer" :key="index2" v-if="selectIndex === 2">
<swiper-slide v-for="(item, index2) in bannerList" class="hover-scale cursor-pointer" :key="item.position"
v-if="selectIndex === 2">
<div> <div>
<div class="case-img overflow-hidden position-relative" @click="goPage(`/projectcase/${index}`, 'projectCase')">
<img :src="item.detail" :alt="item.title" class="width-100 d-block position-relative imgcase1" loading="lazy"/>
<div class="case-img overflow-hidden position-relative"
@click="goPage(`/projectcase/${item.position}`, 'projectCases')">
<img :src="item.detail" :alt="item.name" class="width-100 d-block position-relative imgcase1"
loading="lazy" />
<div class="position-absolute color-fff project-center-title"> <div class="position-absolute color-fff project-center-title">
<span class="font-700 font-size-20">{{ item.name }}</span> <span class="font-700 font-size-20">{{ item.name }}</span>
<span class="font-700 font-size-20">{{ item.address }}</span> <span class="font-700 font-size-20">{{ item.address }}</span>
@ -36,83 +18,83 @@
</div> </div>
</swiper-slide> </swiper-slide>
<!-- 产品中心 --> <!-- 产品中心 -->
<swiper-slide v-for="(item,index3) in bannerList2" class="hover-scale cursor-pointer" :key="index3" v-else-if="selectIndex === 3">
<swiper-slide v-for="(item, index3) in bannerList2" class="hover-scale cursor-pointer" :key="index3"
v-else-if="selectIndex === 3">
<div> <div>
<div class="case-img overflow-hidden position-relative" @click="goPage(`/productcenter/${item.name}`, 'productCenter')">
<img :src="item.detail" :alt="item.title" class="width-100 d-block position-relative imgcase" loading="lazy"/>
<div class="case-img overflow-hidden position-relative"
@click="goPage(`/productcenter/${item.name}`, 'productCenter')">
<img :src="item.detail" :alt="item.name" class="width-100 d-block position-relative imgcase"
loading="lazy" />
<span class="position-absolute color-fff project-center-title1 font-size-22 font-700">{{ item.name }}</span> <span class="position-absolute color-fff project-center-title1 font-size-22 font-700">{{ item.name }}</span>
</div> </div>
</div> </div>
</swiper-slide> </swiper-slide>
<!-- <div v-if="selectIndex == 2" class="projectall">
<p class="allproject" @click="goPage('/projectcase/allproject')">EXPLORE ALL PROJECTS >></p>
</div> -->
</swiper> </swiper>
<p v-if="selectIndex == 2" class="btn" @click="goPage('/projectcase', '')">EXLORE ALL PROJECTS</p>
<p v-if="selectIndex == 3" class="btn" @click="goPage('/productcenter', '')">EXLORE ALL PROJECTS</p>
<p v-if="selectIndex == 2" class="btn" @click="goPage('/projectcase', 'projectCases')">EXLORE ALL PROJECTS</p>
<p v-if="selectIndex == 3" class="btn" @click="goPage('/productcenter', 'productCenter')">EXLORE ALL PRODUCT</p>
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import {onMounted, ref} from "vue";
import { onMounted, ref } from "vue";
import 'swiper/css'; import 'swiper/css';
import 'swiper/css/navigation'; import 'swiper/css/navigation';
import 'swiper/css/pagination'; import 'swiper/css/pagination';
import 'swiper/css/scrollbar'; import 'swiper/css/scrollbar';
import {A11y, Navigation, Scrollbar} from "swiper";
import { A11y, Navigation, Scrollbar } from "swiper";
import { Swiper, SwiperSlide } from 'swiper/vue'; import { Swiper, SwiperSlide } from 'swiper/vue';
import router from "../router"; import router from "../router";
let modules = [Navigation,Scrollbar, A11y];
let modules = [Navigation, Scrollbar, A11y];
let bannerList = ref<any>([ let bannerList = ref<any>([
{detail:new URL("../assets/img/cases/01.jpg",import.meta.url).href,title:'轮播', name: 'Fairmont Empress Hotel', address: 'Victoria, Canada'},
{detail:new URL("../assets/img/cases/02.jpg",import.meta.url).href,title:'轮播', name: 'Monsaraz Hilton', address: 'San Diego,USA'},
{detail:new URL("../assets/img/cases/03.jpg",import.meta.url).href,title:'轮播', name: 'Canopy By Hilton San Francisco Soma Hotel', address: 'San Fransisco,USA'},
{detail:new URL("../assets/img/cases/04.jpg",import.meta.url).href,title:'轮播', name: 'Lofts on Laurel', address: 'San Diego,USA'},
{detail:new URL("../assets/img/cases/05.jpg",import.meta.url).href,title:'轮播', name: 'State&Oak Street', address: 'Carlsbad,CA,USA'},
{detail:new URL("../assets/img/cases/06.jpg",import.meta.url).href,title:'轮播', name: '989 Johson Street', address: 'Victoria, Canada'},
{detail:new URL("../assets/img/cases/07.jpg",import.meta.url).href,title:'轮播', name: 'Tarrace Lofts', address: 'Vista, California, USA'},
{detail:new URL("../assets/img/cases/08.jpg",import.meta.url).href,title:'轮播', name: 'Ocean 17', address: 'Carlsbad,CA,USA'},
{ detail: new URL("../assets/img/ProjectCase/01/1.jpg", import.meta.url).href, name: 'Fairmont Empress Hotel', address: 'Victoria, Canada', position: 0 },
{ detail: new URL("../assets/img/ProjectCase/02/1.jpg", import.meta.url).href, name: 'Monsaraz Hilton', address: 'San Diego,USA', position: 1 },
{ detail: new URL("../assets/img/ProjectCase/03/1.jpg", import.meta.url).href, name: 'Canopy By Hilton San Francisco Soma Hotel', address: 'San Fransisco,USA', position: 2 },
{ detail: new URL("../assets/img/ProjectCase/04/1.jpg", import.meta.url).href, name: 'Lofts on Laurel', address: 'San Diego,USA', position: 3 },
{ detail: new URL("../assets/img/ProjectCase/05/1.jpg", import.meta.url).href, name: 'State&Oak Street', address: 'Carlsbad,CA,USA', position: 4 },
{ detail: new URL("../assets/img/ProjectCase/06/1.jpg", import.meta.url).href, name: '989 Johson Street', address: 'Victoria, Canada', position: 5 },
{ detail: new URL("../assets/img/ProjectCase/07/1.jpg", import.meta.url).href, name: 'Tarrace Lofts', address: 'Vista, California, USA', position: 6 },
{ detail: new URL("../assets/img/ProjectCase/08/1.jpg", import.meta.url).href, name: 'Ocean 17', address: 'Carlsbad,CA,USA', position: 7 },
]) ])
let bannerList2 = ref<any>([ let bannerList2 = ref<any>([
{detail:new URL("../assets/img/center01.jpg",import.meta.url).href,title:'轮播', name: 'Door'},
{detail:new URL("../assets/img/center02.jpg",import.meta.url).href,title:'轮播', name: 'Window'},
{detail:new URL("../assets/img/center03.jpg",import.meta.url).href,title:'轮播', name: 'Railing'},
{detail:new URL("../assets/img/center04.jpg",import.meta.url).href,title:'轮播', name: 'Building Material'},
{detail:new URL("../assets/img/center05.jpg",import.meta.url).href,title:'轮播', name: 'Kitchen Cabinets with Customization'},
{detail:new URL("../assets/img/center06.jpg",import.meta.url).href,title:'轮播', name: 'Kitchen faucet and sink'},
{detail:new URL("../assets/img/center07.jpg",import.meta.url).href,title:'轮播', name: 'Sanitary Ware'},
{ detail: new URL("../assets/img/center01.jpg", import.meta.url).href, name: 'Door' },
{ detail: new URL("../assets/img/center02.jpg", import.meta.url).href, name: 'Window' },
{ detail: new URL("../assets/img/center03.jpg", import.meta.url).href, name: 'Railing' },
{ detail: new URL("../assets/img/center04.jpg", import.meta.url).href, name: 'Building Material' },
{ detail: new URL("../assets/img/center05.jpg", import.meta.url).href, name: 'Kitchen Cabinets with Customization' },
{ detail: new URL("../assets/img/center06.jpg", import.meta.url).href, name: 'Kitchen faucet and sink' },
{ detail: new URL("../assets/img/center07.jpg", import.meta.url).href, name: 'Sanitary Ware' },
]) ])
let screenWidth = ref<any>('') let screenWidth = ref<any>('')
let mobileShow = ref<any>(false) let mobileShow = ref<any>(false)
let selectIndex = ref<any>(1) let selectIndex = ref<any>(1)
const props = defineProps(['index']) const props = defineProps(['index'])
if(props.index){
if (props.index) {
selectIndex.value = props.index selectIndex.value = props.index
} }
let slidesPerView = ref<number>(3) let slidesPerView = ref<number>(3)
onMounted(async ()=>{
onMounted(async () => {
screenWidth.value = document.body.offsetWidth; screenWidth.value = document.body.offsetWidth;
if(screenWidth.value<800){
if (screenWidth.value < 800) {
mobileShow.value = true mobileShow.value = true
slidesPerView.value = 1 slidesPerView.value = 1
}else if(screenWidth.value<1000){
} else if (screenWidth.value < 1000) {
mobileShow.value = true mobileShow.value = true
slidesPerView.value = 2 slidesPerView.value = 2
}else{
} else {
mobileShow.value = false mobileShow.value = false
slidesPerView.value = 3 slidesPerView.value = 3
} }
window.addEventListener('resize',function(){
window.addEventListener('resize', function () {
screenWidth.value = document.body.offsetWidth; screenWidth.value = document.body.offsetWidth;
if(screenWidth.value<800){
if (screenWidth.value < 800) {
mobileShow.value = true mobileShow.value = true
slidesPerView.value = 1 slidesPerView.value = 1
}else if(screenWidth.value<1000){
} else if (screenWidth.value < 1000) {
mobileShow.value = true mobileShow.value = true
slidesPerView.value = 2 slidesPerView.value = 2
}else{
} else {
mobileShow.value = false mobileShow.value = false
slidesPerView.value = 3 slidesPerView.value = 3
} }
@ -126,7 +108,7 @@ const onSlideChange = () => {
}; };
const goPage = (url: any, name: string) => { const goPage = (url: any, name: string) => {
if(name != '') {
if (name != '') {
localStorage.setItem('scrollPosition', name) localStorage.setItem('scrollPosition', name)
} }
document.documentElement.scrollTop = 0 document.documentElement.scrollTop = 0
@ -137,7 +119,7 @@ const goPage = (url: any, name: string) => {
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
.btn{
.btn {
cursor: pointer; cursor: pointer;
float: left; float: left;
margin-top: 3rem; margin-top: 3rem;
@ -148,15 +130,18 @@ const goPage = (url: any, name: string) => {
transform: translateX(-50%); transform: translateX(-50%);
font-weight: bold; font-weight: bold;
} }
.btn:hover{
.btn:hover {
color: #fa8106; color: #fa8106;
border: 1px solid #fa8106; border: 1px solid #fa8106;
} }
.projectall{
.projectall {
width: 100%; width: 100%;
text-align: center; text-align: center;
} }
.allproject{
.allproject {
cursor: pointer; cursor: pointer;
display: inline-block; display: inline-block;
text-align: center; text-align: center;
@ -167,85 +152,102 @@ const goPage = (url: any, name: string) => {
border: 1px solid #333; border: 1px solid #333;
color: #333; color: #333;
} }
.project-case { .project-case {
.cursor-pointer{
.cursor-pointer {
cursor: pointer; cursor: pointer;
} }
:deep(.swiper-button-prev:after){
:deep(.swiper-button-prev:after) {
color: #fff; color: #fff;
font-size: 30px; font-size: 30px;
} }
:deep(.swiper-button-next:after){
:deep(.swiper-button-next:after) {
color: #fff; color: #fff;
font-size: 30px; font-size: 30px;
} }
.img-after{
.img-after {
border-bottom: solid .4em #fa8106; border-bottom: solid .4em #fa8106;
} }
.border-bottom{
.border-bottom {
border-bottom: 1px solid #eee; border-bottom: 1px solid #eee;
} }
.hover-scale{
.case-img{
img{
.hover-scale {
.case-img {
img {
transition: all 3s; transition: all 3s;
} }
.imgcase{
.imgcase {
height: 42rem; height: 42rem;
} }
.imgcase1{
.imgcase1 {
height: 27rem; height: 27rem;
} }
} }
} }
.hover-scale:hover .case-img img{
.hover-scale:hover .case-img img {
transform: scale(1.2); transform: scale(1.2);
} }
.hover-scale:hover .project-center-title{
.hover-scale:hover .project-center-title {
background: #fa8106; background: #fa8106;
} }
.hover-scale:hover .project-center-title1{
.hover-scale:hover .project-center-title1 {
background: #fa8106; background: #fa8106;
} }
.project-center-title{
.project-center-title {
bottom: 0; bottom: 0;
left: 0; left: 0;
height: 50px; height: 50px;
// line-height: 50px; // line-height: 50px;
text-align: left; text-align: left;
background: rgba(0,0,0,.4);
background: rgba(0, 0, 0, .4);
width: 100%; width: 100%;
padding: 1rem 1rem; padding: 1rem 1rem;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: space-between; justify-content: space-between;
} }
.project-center-title1{
.project-center-title1 {
bottom: 0; bottom: 0;
left: 0; left: 0;
height: 50px; height: 50px;
line-height: 50px; line-height: 50px;
text-align: center; text-align: center;
background: rgba(0,0,0,.4);
background: rgba(0, 0, 0, .4);
width: 100%; width: 100%;
} }
} }
@media (max-width: 960px) { @media (max-width: 960px) {
.project-case .hover-scale .case-img .imgcase1{
.project-case .hover-scale .case-img .imgcase1 {
height: 17rem; height: 17rem;
} }
.project-case .hover-scale .case-img .imgcase{
.project-case .hover-scale .case-img .imgcase {
height: 30rem; height: 30rem;
} }
.bannerImg { .bannerImg {
margin-top:50px;
:deep(.swiper-button-prev:after){
margin-top: 50px;
:deep(.swiper-button-prev:after) {
font-size: 30px; font-size: 30px;
} }
:deep(.swiper-button-next:after){
:deep(.swiper-button-next:after) {
font-size: 30px; font-size: 30px;
} }
} }
}
</style>
}</style>

+ 2
- 2
montier/src/pages/Service.vue View File

@ -123,7 +123,7 @@ onMounted(() => {
.gallery { .gallery {
// --s: 20vw; // --s: 20vw;
scale: 1.3;
scale: 1.35;
/* control the size */ /* control the size */
--g: -2px; --g: -2px;
/* control the gap */ /* control the gap */
@ -350,7 +350,7 @@ onMounted(() => {
@media screen and (max-width: 1000px) { @media screen and (max-width: 1000px) {
.gallery-container { .gallery-container {
scale: 0.4;
scale: 0.35;
margin: 0 0 10vw 0; margin: 0 0 10vw 0;
} }


+ 70
- 36
montier/src/store/modules/homepage.ts View File

@ -4,44 +4,78 @@ const useHomeStore = defineStore('Home', {
state: () => { state: () => {
return { return {
Entrance: Array<any>( Entrance: Array<any>(
{ detail: new URL("../../assets/img/Door/01.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/02.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/03.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/04.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/05.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/06.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/07.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/08.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/09.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/10.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/11.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/12.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/13.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/14.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/15.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/16.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/17.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/18.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/19.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/20.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/21.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/22.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/23.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/24.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/25.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/26.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/27.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/28.png", import.meta.url).href, name: 'Entrance Doors' },
{
name: 'Decorative wrought Entrance Doors',
children: [
{ detail: new URL("../../assets/img/Door/01.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/02.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/03.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/04.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/05.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/06.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/07.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/08.png", import.meta.url).href, name: 'Entrance Doors' }
]
},
{
name: 'Wrought Iron Entrance Doors',
children: [
{ detail: new URL("../../assets/img/Door/09.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/10.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/11.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/12.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/13.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/14.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/15.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/16.png", import.meta.url).href, name: 'Entrance Doors' }
]
},
{
name: 'Modern Safety Wrought Iron Entrance Doors',
children: [
{ detail: new URL("../../assets/img/Door/17.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/18.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/19.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/20.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/21.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/22.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/23.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/24.png", import.meta.url).href, name: 'Entrance Doors' }
]
},
{
name: 'Modern Design Metal Entrance Doors',
children: [
{ detail: new URL("../../assets/img/Door/25.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/26.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/27.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/28.png", import.meta.url).href, name: 'Entrance Doors' }
]
},
{
name: 'Modern Glass Metal Stainless Steel Pivot Door',
children: [
{ detail: new URL("../../assets/img/Door/29.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/30.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/31.png", import.meta.url).href, name: 'Entrance Doors' },
{ detail: new URL("../../assets/img/Door/32.png", import.meta.url).href, name: 'Entrance Doors' }
]
}
), ),
Interior: Array<any>( Interior: Array<any>(
{ detail: new URL("../../assets/img/Door/101.png", import.meta.url).href, name: 'Interior Doors' },
{ detail: new URL("../../assets/img/Door/102.png", import.meta.url).href, name: 'Interior Doors' },
{ detail: new URL("../../assets/img/Door/103.png", import.meta.url).href, name: 'Interior Doors' },
{ detail: new URL("../../assets/img/Door/104.png", import.meta.url).href, name: 'Interior Doors' },
{ detail: new URL("../../assets/img/Door/105.png", import.meta.url).href, name: 'Interior Doors' },
{ detail: new URL("../../assets/img/Door/106.png", import.meta.url).href, name: 'Interior Doors' },
{ detail: new URL("../../assets/img/Door/107.png", import.meta.url).href, name: 'Interior Doors' },
{ detail: new URL("../../assets/img/Door/108.png", import.meta.url).href, name: 'Interior Doors' },
{
name: 'Wooden Internal Door',
children: [
{ detail: new URL("../../assets/img/Door/101.png", import.meta.url).href, name: 'Interior Doors' },
{ detail: new URL("../../assets/img/Door/102.png", import.meta.url).href, name: 'Interior Doors' },
{ detail: new URL("../../assets/img/Door/103.png", import.meta.url).href, name: 'Interior Doors' },
{ detail: new URL("../../assets/img/Door/104.png", import.meta.url).href, name: 'Interior Doors' },
{ detail: new URL("../../assets/img/Door/105.png", import.meta.url).href, name: 'Interior Doors' },
{ detail: new URL("../../assets/img/Door/106.png", import.meta.url).href, name: 'Interior Doors' },
{ detail: new URL("../../assets/img/Door/107.png", import.meta.url).href, name: 'Interior Doors' },
{ detail: new URL("../../assets/img/Door/108.png", import.meta.url).href, name: 'Interior Doors' }
]
},
) )
} }
}, },


Loading…
Cancel
Save