ComprehensiveDisplay.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356
  1. <template>
  2. <!-- 综合展示 -->
  3. <div class="ComprehensiveDisplayMain">
  4. <!-- 第一层:新闻中心、平台介绍 -->
  5. <div class="ComprehensiveDisplayMain_IntroductionOfNewsCenterAndPlatform">
  6. <!-- 新闻中心 -->
  7. <el-card class="Newscenter">
  8. <!-- 新闻中心标题 -->
  9. <div slot="header" class="clearfix userSelect_None">
  10. <span class="clearfix_title"><i class="elIcon el-icon-message-solid"></i>新闻中心</span>
  11. <span class="clearfix_titleEn" type="text">News Center</span>
  12. </div>
  13. <!-- 新闻中心主题 -->
  14. <div class="Newscenter_main">
  15. <!-- 图片轮播区域 -->
  16. <el-carousel class="Newscenter_main_byArea" height="200px">
  17. <el-carousel-item v-for="(item, index) in data.NewscenterAreas" :key="index">
  18. <el-image style="cursor: pointer" :src="item.imageUrl" @click="Jump(item.jumpUrl)" :alt="item.alt"> </el-image>
  19. <div class="Newscenter_main_byArea_alt userSelect_None">
  20. <el-tooltip class="item" effect="dark" :content="item.alt" :open-delay="1000">
  21. <span>{{ item.alt }}</span>
  22. </el-tooltip>
  23. </div>
  24. </el-carousel-item>
  25. </el-carousel>
  26. <!-- 新闻中心内容 -->
  27. <div class="Newscenter_main_content">
  28. <!-- 标题 -->
  29. <el-tooltip class="item" effect="dark" :content="data.NewscenterData.NewscenterTitle" :open-delay="1000">
  30. <div class="title" @click="Jump(data.NewscenterData.NewscenterUrl)">{{ data.NewscenterData.NewscenterTitle }}</div>
  31. </el-tooltip>
  32. <!-- 内容 -->
  33. <el-tooltip class="item" effect="dark" :content="data.NewscenterData.NewscenterContent" :open-delay="1000">
  34. <div class="content userSelect_None">
  35. {{ data.NewscenterData.NewscenterContent }}
  36. </div>
  37. </el-tooltip>
  38. <!-- 小标题 -->
  39. <div v-if="data.NewscenterData.NewscenterTitles.length > 0">
  40. <el-carousel height="70px" direction="vertical">
  41. <el-carousel-item v-for="index in Math.ceil(data.NewscenterData.NewscenterTitles.length / 2)" :key="index">
  42. <el-tooltip
  43. class="item"
  44. effect="dark"
  45. :content="data.NewscenterData.NewscenterTitles[2 * index - 2].title"
  46. :open-delay="1000"
  47. >
  48. <div class="titles" @click="Jump(data.NewscenterData.NewscenterTitles[2 * index - 2].url)">
  49. {{ data.NewscenterData.NewscenterTitles[2 * index - 2].title }}
  50. </div>
  51. </el-tooltip>
  52. <div v-if="data.NewscenterData.NewscenterTitles[2 * index - 1]">
  53. <el-tooltip
  54. class="item"
  55. effect="dark"
  56. :content="data.NewscenterData.NewscenterTitles[2 * index - 1].title"
  57. :open-delay="1000"
  58. >
  59. <div class="titles" @click="Jump(data.NewscenterData.NewscenterTitles[2 * index - 1].url)">
  60. {{ data.NewscenterData.NewscenterTitles[2 * index - 1].title }}
  61. </div>
  62. </el-tooltip>
  63. </div>
  64. </el-carousel-item>
  65. </el-carousel>
  66. </div>
  67. <div v-else>暂无数据</div>
  68. </div>
  69. </div>
  70. </el-card>
  71. <!-- 平台介绍 -->
  72. <el-card class="PlatformIsIntroduced">
  73. <!-- 平台介绍标题 -->
  74. <div slot="header" class="clearfix userSelect_None">
  75. <span class="clearfix_title"><i class="elIcon el-icon-s-flag"></i>平台介绍</span>
  76. <span class="clearfix_titleEn" type="text">Platform Introduction</span>
  77. </div>
  78. <!-- 平台介绍主题 -->
  79. <div class="PlatformIsIntroduced_main" v-html="data.PlatformIsIntroducedContent"></div>
  80. </el-card>
  81. </div>
  82. <!-- 第二层:中国地理信息平台 -->
  83. <el-card class="ComprehensiveDisplayMain_ChinaGeographicInformationCenter">
  84. <!-- 平台介绍内容 -->
  85. <span class="ChinaGeographicInformationCenterTitle userSelect_None" @click="undefinedFunction()">中国地理信息平台</span>
  86. </el-card>
  87. <!-- 第三层:服务中心 -->
  88. <el-card class="ComprehensiveDisplayMain_ServiceCenter">
  89. <!-- 服务中心标题 -->
  90. <div slot="header" class="clearfix userSelect_None">
  91. <span class="clearfix_title"><i class="elIcon el-icon-s-cooperation"></i>服务中心</span>
  92. <span class="clearfix_titleEn" type="text">Service Center</span>
  93. </div>
  94. <!-- 服务中心主题 -->
  95. <div class="ServiceCenter_main userSelect_None">
  96. <div @click="undefinedFunction()"><i class="el-icon-s-operation" style="margin-right: 47px"></i>数据管理</div>
  97. <div @click="undefinedFunction()"><i class="el-icon-s-promotion" style="margin-right: 47px"></i>专题发布</div>
  98. <div @click="undefinedFunction()"><i class="el-icon-data-line" style="margin-right: 47px"></i>数据可视化</div>
  99. </div>
  100. </el-card>
  101. </div>
  102. </template>
  103. <script>
  104. export default {
  105. name: "ComprehensiveDisplay",
  106. components: {},
  107. data() {
  108. // 后续可调用后端接口动态显示
  109. return {
  110. data: {}
  111. };
  112. },
  113. computed: {},
  114. created() {
  115. let that = this;
  116. $.getJSON("./static/config/ComprehensiveDisplayData.json", function (result) {
  117. that.data = result;
  118. });
  119. },
  120. mounted() {},
  121. methods: {
  122. Jump(jumpUrl) {
  123. window.open(jumpUrl);
  124. },
  125. undefinedFunction() {
  126. this.$message.info("敬请期待!");
  127. }
  128. }
  129. };
  130. </script>
  131. <style lang="less" scoped>
  132. // 主题
  133. .ComprehensiveDisplayMain {
  134. display: flex;
  135. flex-direction: column;
  136. align-items: center;
  137. // 第一层:新闻中心、平台介绍
  138. &_IntroductionOfNewsCenterAndPlatform {
  139. width: 100%;
  140. display: flex;
  141. justify-content: space-between;
  142. align-items: center;
  143. align-content: center;
  144. flex-wrap: wrap;
  145. margin-bottom: 15px;
  146. // 新闻中心
  147. .Newscenter {
  148. width: calc(50% - 15px);
  149. height: 300px;
  150. &_main {
  151. display: flex;
  152. justify-content: space-between;
  153. align-items: center;
  154. align-content: center;
  155. &_byArea {
  156. width: 360px;
  157. height: 200px;
  158. // 轮播组件指示器样式
  159. /deep/ .el-carousel__button {
  160. width: 15px;
  161. }
  162. /deep/ .el-carousel__arrow {
  163. background: rgba(0, 0, 0, 0.75);
  164. box-shadow: 0px 0px 5px 1px #ffffff, 0px 0px 10px 2px #000000;
  165. }
  166. &_alt {
  167. width: 100%;
  168. position: absolute;
  169. bottom: 20px;
  170. background: linear-gradient(90deg, #409eff, #409eff64);
  171. span {
  172. color: #ffffff;
  173. margin: 5px 10px;
  174. font-size: 14px;
  175. overflow: hidden;
  176. text-overflow: ellipsis;
  177. display: -webkit-box;
  178. -webkit-box-orient: vertical;
  179. -webkit-line-clamp: 1;
  180. }
  181. }
  182. }
  183. &_content {
  184. width: 321px;
  185. height: 200px;
  186. overflow: hidden;
  187. text-overflow: ellipsis;
  188. .title {
  189. font-size: 22px;
  190. font-family: Microsoft YaHei;
  191. font-weight: 400;
  192. color: #409eff;
  193. line-height: 24px;
  194. overflow: hidden;
  195. text-overflow: ellipsis;
  196. white-space: nowrap;
  197. &:hover {
  198. cursor: pointer;
  199. color: #409eff;
  200. text-decoration: underline #409eff;
  201. }
  202. }
  203. .content {
  204. margin: 18px 0 27px 0;
  205. font-size: 18px;
  206. font-family: Microsoft YaHei;
  207. font-weight: 400;
  208. color: #808080;
  209. line-height: 24px;
  210. overflow: hidden;
  211. text-overflow: ellipsis;
  212. display: -webkit-box;
  213. -webkit-box-orient: vertical;
  214. -webkit-line-clamp: 2;
  215. }
  216. /deep/ .el-carousel__button {
  217. height: 15px;
  218. background-color: #303133;
  219. }
  220. .titles {
  221. width: 300px;
  222. margin-bottom: 22px;
  223. font-size: 18px;
  224. font-family: Microsoft YaHei;
  225. font-weight: 400;
  226. text-shadow: 0 0 1px #4c4c4c;
  227. color: #4c4c4c;
  228. line-height: 24px;
  229. overflow: hidden;
  230. text-overflow: ellipsis;
  231. white-space: nowrap;
  232. &:hover {
  233. cursor: pointer;
  234. color: #409eff;
  235. text-decoration: underline #409eff;
  236. }
  237. }
  238. }
  239. }
  240. }
  241. // 平台介绍
  242. .PlatformIsIntroduced {
  243. width: calc(50% - 15px);
  244. height: 300px;
  245. &_main {
  246. height: 190px;
  247. text-indent: 36px;
  248. font-size: 18px;
  249. font-family: Microsoft YaHei;
  250. font-weight: 400;
  251. color: #808080;
  252. line-height: 32px;
  253. overflow-y: scroll;
  254. }
  255. }
  256. }
  257. // 第二层:中国地理信息平台
  258. &_ChinaGeographicInformationCenter {
  259. width: 100%;
  260. height: 90px;
  261. display: flex;
  262. align-content: center;
  263. flex-direction: row-reverse;
  264. align-items: center;
  265. margin: 10px 0px;
  266. background-image: url(~@/assets/images/ChinaGeographicInformationCenterTitleImage.png);
  267. .ChinaGeographicInformationCenterTitle {
  268. font-size: 30px;
  269. font-family: Microsoft YaHei;
  270. font-weight: bold;
  271. color: #ffffff;
  272. line-height: 40px;
  273. text-shadow: 2px 2px 5px #000, 2px 2px 10px white;
  274. transition: all 0.3s;
  275. padding-right: 20px;
  276. &:hover {
  277. cursor: pointer;
  278. text-shadow: 2px 2px 5px #000, 1px 1px 15px white;
  279. }
  280. }
  281. }
  282. // 第三层:服务中心
  283. &_ServiceCenter {
  284. width: 100%;
  285. margin: 15px 0px;
  286. .ServiceCenter_main {
  287. display: flex;
  288. justify-content: space-around;
  289. align-items: center;
  290. align-content: center;
  291. flex-wrap: nowrap;
  292. div {
  293. display: flex;
  294. justify-content: center;
  295. align-items: center;
  296. align-content: center;
  297. flex-wrap: nowrap;
  298. width: calc(33% - 40px);
  299. height: 90px;
  300. background: #0589ff;
  301. border-radius: 3px;
  302. font-size: 40px;
  303. font-family: YouSheBiaoTiHei;
  304. font-weight: 400;
  305. color: #d9f1ff;
  306. line-height: 40px;
  307. transition: all 0.3s;
  308. &:hover {
  309. cursor: pointer;
  310. color: #ffffff;
  311. background: #05a3ff;
  312. text-shadow: 1px 1px 2px #0589ff, 1px 1px 4px white;
  313. box-shadow: 1px 1px 5px 0px #ffffff, 1px 1px 10px 0px #0589ff;
  314. }
  315. }
  316. }
  317. }
  318. // 公共属性
  319. // icon公用样式
  320. .elIcon {
  321. margin-right: 19px;
  322. }
  323. // 卡片头部样式
  324. /deep/ .el-card__header {
  325. padding: 15px 20px !important;
  326. }
  327. .clearfix {
  328. height: 30px;
  329. &_title {
  330. font-size: 30px;
  331. font-family: Microsoft YaHei;
  332. font-weight: bold;
  333. color: #258df5;
  334. line-height: 40px;
  335. }
  336. &_titleEn {
  337. float: right;
  338. padding-right: 19px;
  339. font-size: 20px;
  340. font-family: YouSheBiaoTiHei;
  341. font-weight: 400;
  342. color: #258df5;
  343. line-height: 40px;
  344. }
  345. }
  346. // 文字禁止选中
  347. .userSelect_None {
  348. -webkit-user-select: none;
  349. -moz-user-select: none;
  350. -ms-user-select: none;
  351. user-select: none;
  352. }
  353. }
  354. </style>