showingStand.vue 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. <template>
  2. <div class="content">
  3. <div class="conBox big-title">
  4. <span>
  5. {{lang===langType.cn?"关于我们":getAbbrText("关于我们")}}
  6. </span>
  7. <div class="hr"></div>
  8. </div>
  9. <div class="conBox showing">
  10. <a
  11. v-for="(item,i) in chunkItems"
  12. :class="`chunk imgBox chunk${(i+1)}`"
  13. :key="item.id"
  14. >
  15. <!-- 实时管理(物联网) -->
  16. <img :src="item.img" alt="imgNotFound">
  17. <p class="chunkText">
  18. <span class="title">{{lang===langType.cn?item.title:getAbbrText(item.title)}}</span>
  19. <span class="subTitle">{{lang===langType.cn?item.subTitle:getAbbrText(item.subTitle)}}</span>
  20. <span class="chunkMore">
  21. {{lang===langType.cn?"了解更多":getAbbrText("了解更多")}}
  22. </span>
  23. </p>
  24. </a>
  25. </div>
  26. </div>
  27. </template>
  28. <script>
  29. import langMap from "~/map/langMap";
  30. export default {
  31. name: "showingStand",
  32. props: {
  33. lang:{
  34. default: langMap.lang.cn
  35. },
  36. },
  37. data(){
  38. return {
  39. langType: langMap.lang,
  40. // chunk 1-7
  41. chunkItems:[
  42. {
  43. id: 'iotManger',
  44. img: 'image/showing/szman.jpg',
  45. href: 'https://gpscore.net/',
  46. title: "管理平台",
  47. subTitle: "一站式管理,专业高效"
  48. },
  49. {
  50. id: 'ePower',
  51. img: 'image/showing/szman.jpg',
  52. href: 'https://gpscore.net/',
  53. title: "智慧能源",
  54. subTitle: "1+3综合数字能源管理平台"
  55. },
  56. {
  57. id: 'aiCamera',
  58. img: 'image/showing/ai_h.jpg',
  59. href: 'https://gpscore.net/',
  60. title: "ai视觉",
  61. subTitle: "摄像头+ai算法,各种算法,各种场景"
  62. },
  63. {
  64. id: 'iot',
  65. img: 'image/showing/iot.jpg',
  66. href: 'https://gpscore.net/',
  67. title: "合方圆物联网解决方案",
  68. subTitle: "积极开阔物联网在行业,医疗,家居等大众市场上的应用"
  69. },
  70. {
  71. id: 'gps',
  72. img: 'image/showing/gps.jpg',
  73. href: 'https://gpscore.net/',
  74. title: "北斗导航",
  75. subTitle: "合方圆关于GPS与北斗功能区别详细说明"
  76. },
  77. {
  78. id: 'etc',
  79. img: 'image/showing/etc.jpg',
  80. href: 'https://gpscore.net/',
  81. title: "智慧停车场",
  82. subTitle: "ai视觉落地成套方案"
  83. },
  84. {
  85. id: 'aiCamera',
  86. img: 'image/showing/lowCam.jpg',
  87. href: 'https://gpscore.net/',
  88. title: "低功耗摄像头",
  89. subTitle: "超低功耗,超长工作时长"
  90. }
  91. ]
  92. }
  93. },
  94. methods: {
  95. getLangText(str) {
  96. return langMap.getText(this.lang, str);
  97. },
  98. getAbbrText(str) {
  99. return langMap.getAbbrText(this.lang, str);
  100. },
  101. }
  102. }
  103. </script>
  104. <style scoped>
  105. .showing{
  106. display: grid;
  107. grid-template-columns: repeat(3, 425px);
  108. grid-template-rows: repeat(3, 350px);
  109. grid-template-areas:
  110. 'a b c'
  111. 'd d c'
  112. 'e f g';
  113. grid-gap: 20px;
  114. }
  115. .showing .chunk {
  116. box-shadow: 1px 1px 3px black;
  117. /*box-sizing: border-box;*/
  118. /*padding:5px;*/
  119. position: relative;
  120. overflow: hidden;
  121. cursor: pointer;
  122. }
  123. .showing .chunk:hover{
  124. box-shadow: 1px 1px 3px deepskyblue;
  125. }
  126. .showing .chunk:hover > img{
  127. left: -20px;
  128. top: -20px;
  129. max-width: calc(100% + 40px);
  130. width: calc(100% + 40px);
  131. height: calc(100% + 40px);
  132. }
  133. .showing .chunk .chunkText{
  134. display: block;
  135. position: absolute;
  136. width: 100%;
  137. height: 150px;
  138. bottom: -50px;
  139. /*background: #000;*/
  140. color: white;
  141. transition: all .5s;
  142. padding: 0 15px;
  143. background-image: linear-gradient(rgba(0,0,0,0) 0,rgba(0,0,0,0.5) 75% );
  144. }
  145. .showing .chunk:hover .chunkText{
  146. bottom: 0;
  147. background-image: linear-gradient(rgba(0,0,0,0) 0,rgba(0,0,0,0.66) 66% 15% 80% );
  148. }
  149. .showing .chunk .chunkText .title{
  150. height: 40px;
  151. font-size: 1.5em;
  152. display: flex;
  153. /*justify-content: center;*/
  154. align-items: center;
  155. }
  156. .showing .chunk .chunkText .subTitle{
  157. padding: 5px 0;
  158. min-height: 35px;
  159. max-height: 80px;
  160. font-size: 1.2em;
  161. }
  162. .showing .chunk .chunkText .chunkMore{
  163. margin-top: 20px;
  164. height: 30px;
  165. font-size: 0.9em;
  166. color: #ff6e3f;
  167. }
  168. .showing .chunk .chunkText .chunkMore:hover{
  169. color: orangered;
  170. }
  171. .showing .chunk .chunkText > *{
  172. display: block;
  173. }
  174. .showing .chunk1 {
  175. grid-area: a;
  176. }
  177. .showing .chunk2{
  178. grid-area: b;
  179. }
  180. .showing .chunk3{
  181. grid-area: c;
  182. }
  183. .showing .chunk4{
  184. grid-area: d;
  185. }
  186. .showing .chunk5{
  187. grid-area: e;
  188. }
  189. .showing .chunk6{
  190. grid-area: f;
  191. }
  192. .showing .chunk7{
  193. grid-area: g;
  194. }
  195. </style>