screen-contain.php 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. <template id="screen-contain">
  2. <div id="screen-contain">
  3. <div class="screen-container">
  4. <div class="header-left">
  5. <img src="/resources/img/dirve/triangle_left.png" class="triangle">
  6. <div class="parallelogram-c">
  7. <div class="parallelogram">
  8. <div class="paral-border paral-border-top"></div>
  9. <div class="paral-border paral-border-right"></div>
  10. <div class="paral-border paral-border-bottom"></div>
  11. <div class="paral-border paral-border-left"></div>
  12. </div>
  13. <div class="text">
  14. <slot v-if="$slots.left" name="left"></slot>
  15. <span v-else>{{textLeft}}</span>
  16. </div>
  17. </div>
  18. </div>
  19. <div class="header-right">
  20. <img src="/resources/img/dirve/triangle_right.png" class="triangle">
  21. <div class="parallelogram-c">
  22. <div class="parallelogram">
  23. <div class="paral-border paral-border-top"></div>
  24. <div class="paral-border paral-border-right"></div>
  25. <div class="paral-border paral-border-bottom"></div>
  26. <div class="paral-border paral-border-left"></div>
  27. </div>
  28. <div class="text">
  29. <slot v-if="$slots.right" name="right"></slot>
  30. <span v-else>{{textRight}}</span>
  31. </div>
  32. </div>
  33. </div>
  34. <div v-if="isFix" class="isFix"></div>
  35. <!-- 内容 -->
  36. <slot></slot>
  37. </div>
  38. </div>
  39. </template>
  40. <script>
  41. Vue.component('screen-contain', {
  42. name: "screen-contain",
  43. template: '#screen-contain',
  44. props: {
  45. textLeft: {
  46. type: String,
  47. default () {
  48. return "总裁驾驶窗"
  49. }
  50. },
  51. textRight: {
  52. type: String,
  53. default () {
  54. return "总裁驾驶窗"
  55. }
  56. },
  57. // 是否需要填充浮动空白
  58. isFix: {
  59. type: Boolean,
  60. default () {
  61. return true
  62. }
  63. },
  64. },
  65. data() {
  66. return {}
  67. }
  68. })
  69. </script>
  70. <style>
  71. .el-main {
  72. padding: 0;
  73. }
  74. #screen-contain {
  75. min-height: 100%;
  76. padding: 10px;
  77. background-color: #01021D;
  78. box-sizing: border-box;
  79. }
  80. .screen-container {
  81. position: relative;
  82. min-height: 100%;
  83. min-width: 1800px;
  84. border-top: 4px #001A72 solid;
  85. background: url('/resources/img/dirve/dirve_bg.png') no-repeat;
  86. background-size: 100% 100%;
  87. color: #fff;
  88. }
  89. .isFix {
  90. height: 80px;
  91. }
  92. .header-left,
  93. .header-right {
  94. position: absolute;
  95. display: flex;
  96. top: -4px;
  97. left: 0;
  98. height: 80px;
  99. padding: 0 40px;
  100. align-items: center;
  101. font-size: 30px;
  102. background-color: #01021D;
  103. }
  104. .header-right {
  105. left: initial;
  106. right: 0;
  107. }
  108. .header-left>.triangle,
  109. .header-right>.triangle {
  110. position: absolute;
  111. top: 0;
  112. left: 0;
  113. width: 70px;
  114. height: 70px;
  115. }
  116. .header-right>.triangle {
  117. left: initial;
  118. right: 0;
  119. }
  120. /* 平行四边形 */
  121. .header-left .parallelogram-c,
  122. .header-right .parallelogram-c {
  123. display: flex;
  124. position: relative;
  125. width: 100%;
  126. height: 100%;
  127. align-items: center;
  128. padding: 0 40px;
  129. }
  130. .parallelogram-c>.text {
  131. position: relative;
  132. z-index: 2;
  133. color: #fff;
  134. }
  135. .header-left .parallelogram,
  136. .header-right .parallelogram {
  137. position: absolute;
  138. top: 0;
  139. bottom: 0;
  140. left: 0;
  141. right: 0;
  142. background: radial-gradient(circle, #001A72 0%, #02021F 100%);
  143. transform: skew(-45deg);
  144. }
  145. .header-right .parallelogram {
  146. transform: skew(45deg);
  147. }
  148. .header-left .paral-border,
  149. .header-right .paral-border {
  150. position: absolute;
  151. background: #001A72;
  152. }
  153. .header-left .paral-border-top,
  154. .header-right .paral-border-top {
  155. top: 0;
  156. left: 0;
  157. width: 100%;
  158. height: 4px;
  159. }
  160. .header-left .paral-border-right {
  161. bottom: 0;
  162. right: 0;
  163. width: 4px;
  164. height: 75%;
  165. }
  166. .header-right .paral-border-right {
  167. top: 0;
  168. right: 0;
  169. width: 4px;
  170. height: 75%;
  171. }
  172. .header-left .paral-border-bottom,
  173. .header-right .paral-border-bottom {
  174. bottom: 0;
  175. left: 0;
  176. width: 100%;
  177. height: 4px;
  178. }
  179. .header-left .paral-border-left {
  180. top: 0;
  181. left: 0;
  182. width: 4px;
  183. height: 75%;
  184. }
  185. .header-right .paral-border-left {
  186. bottom: 0;
  187. left: 0;
  188. width: 4px;
  189. height: 75%;
  190. }
  191. </style>