showingStand.vue 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  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 chunk${(i+1)}`"
  13. :key="item.id"
  14. >
  15. <!-- 实时管理(物联网) -->
  16. <img class="chunkBg" :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 .chunkBg{
  127. display: block;
  128. position: absolute;
  129. left: 0;
  130. top: 0;
  131. width: 100%;
  132. height: 100%;
  133. transition: all .5s;
  134. }
  135. .showing .chunk:hover .chunkBg{
  136. left: -20px;
  137. top: -20px;
  138. max-width: calc(100% + 40px);
  139. width: calc(100% + 40px);
  140. height: calc(100% + 40px);
  141. }
  142. .showing .chunk .chunkText{
  143. display: block;
  144. position: absolute;
  145. width: 100%;
  146. height: 150px;
  147. bottom: -50px;
  148. /*background: #000;*/
  149. color: white;
  150. transition: all .5s;
  151. padding: 0 15px;
  152. background-image: linear-gradient(rgba(0,0,0,0) 0,rgba(0,0,0,0.5) 75% );
  153. }
  154. .showing .chunk:hover .chunkText{
  155. bottom: 0;
  156. background-image: linear-gradient(rgba(0,0,0,0) 0,rgba(0,0,0,0.66) 66% 15% 80% );
  157. }
  158. .showing .chunk .chunkText .title{
  159. height: 40px;
  160. font-size: 1.5em;
  161. display: flex;
  162. /*justify-content: center;*/
  163. align-items: center;
  164. }
  165. .showing .chunk .chunkText .subTitle{
  166. padding: 5px 0;
  167. min-height: 35px;
  168. max-height: 80px;
  169. font-size: 1.2em;
  170. }
  171. .showing .chunk .chunkText .chunkMore{
  172. margin-top: 20px;
  173. height: 30px;
  174. font-size: 0.9em;
  175. color: #ff6e3f;
  176. }
  177. .showing .chunk .chunkText .chunkMore:hover{
  178. color: orangered;
  179. }
  180. .showing .chunk .chunkText > *{
  181. display: block;
  182. }
  183. .showing .chunk1 {
  184. grid-area: a;
  185. }
  186. .showing .chunk2{
  187. grid-area: b;
  188. }
  189. .showing .chunk3{
  190. grid-area: c;
  191. }
  192. .showing .chunk4{
  193. grid-area: d;
  194. }
  195. .showing .chunk5{
  196. grid-area: e;
  197. }
  198. .showing .chunk6{
  199. grid-area: f;
  200. }
  201. .showing .chunk7{
  202. grid-area: g;
  203. }
  204. </style>