countryInformation.vue 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858
  1. <template>
  2. <!-- 这是我的页面 -->
  3. <div>
  4. <div class="autoBox box countryBox">
  5. <div class="crumbs">
  6. <el-breadcrumb separator="/">
  7. <el-breadcrumb-item :to="{ path: 'home' }">{{
  8. $t('common.Home')
  9. }}</el-breadcrumb-item>
  10. <el-breadcrumb-item>{{
  11. $t('common.CountryInformation')
  12. }}</el-breadcrumb-item>
  13. </el-breadcrumb>
  14. </div>
  15. <!-- 查询 -->
  16. <div>
  17. <div style="float: left; margin-top: 35px; margin-left: 140px">
  18. <span
  19. style="
  20. font-family: Microsoft YaHei, Arial, helvetica, neue, sans-serif;
  21. color: rgb(58, 98, 149);
  22. font-size: 24px;
  23. "
  24. >{{ $t('common.CountrySearch') }}</span
  25. >
  26. </div>
  27. <div style="margin-top: 15px; margin-left: 270px">
  28. <el-select
  29. v-model="input3"
  30. :no-match-text="$i18n.locale == 'zh' ? '无匹配数据' : 'No Data'"
  31. filterable
  32. :placeholder="$t('common.PleaseEnter') + $t('common.Nameofcountry')"
  33. style="width: 800px; height: 60px; margin-top: 20px"
  34. >
  35. <el-option
  36. v-for="item in options"
  37. :key="item.baseEntityId"
  38. :label="$i18n.locale == 'en' ? item.enName : item.zhName"
  39. :value="item.baseEntityId"
  40. @click.native="toViewDetail('countryNationalSpace', input3)"
  41. >
  42. </el-option>
  43. </el-select>
  44. </div>
  45. </div>
  46. <!-- 地图区域 -->
  47. <!-- <div style="height: 620px;width:100%;margin-top: 40px;position: relative;" class="map">
  48. <div class='chart' id='chart'></div>
  49. </div> -->
  50. <div>
  51. <div class="countryTitle" style="position: relative">
  52. <div
  53. style="
  54. position: absolute;
  55. left: 50%;
  56. top: 50%;
  57. transform: translate(-50%, -50%);
  58. color: #fafafa;
  59. font-weight: 600;
  60. font-size: 20px;
  61. "
  62. >
  63. <img
  64. :src="getIcons(screen1s[screen1sIndex].value, index)"
  65. alt=""
  66. style="margin-right: 10px; vertical-align: middle"
  67. />
  68. {{ screen1s[screen1sIndex].label }}
  69. </div>
  70. </div>
  71. <div
  72. class="message"
  73. id="message"
  74. style="width: 100%; min-height: 420px"
  75. >
  76. <div
  77. style="
  78. display: inline-block;
  79. height: 355px;
  80. width: 258px;
  81. border-radius: 10px;
  82. overflow: hidden;
  83. vertical-align: top;
  84. margin-right: 20px;
  85. border: 1px solid #d8d8d8;
  86. "
  87. >
  88. <ul>
  89. <li
  90. style="
  91. background: #2c558a;
  92. color: #ffffff;
  93. height: 50px;
  94. line-height: 50px;
  95. font-size: 20px;
  96. text-align: center;
  97. "
  98. v-if="this.$i18n.locale == 'zh'"
  99. >
  100. 国别总数 {{ options.length }}
  101. </li>
  102. <li
  103. style="
  104. background: #2c558a;
  105. color: #ffffff;
  106. height: 50px;
  107. line-height: 50px;
  108. font-size: 20px;
  109. text-align: center;
  110. "
  111. v-if="this.$i18n.locale == 'en'"
  112. >
  113. {{ options.length }} Countries
  114. </li>
  115. <li
  116. v-for="(item, index) in screen1s"
  117. class="li"
  118. :class="
  119. index == screen1sIndex ? 'color1 cursor' : 'color2 cursor'
  120. "
  121. @click="screen1sIndexChange(index)"
  122. >
  123. <img
  124. :src="getIcon(item.value, index)"
  125. alt=""
  126. style="width: 20px; height: 16px; margin-right: 10px"
  127. />
  128. <span>{{ item.label }}</span>
  129. </li>
  130. </ul>
  131. </div>
  132. <div
  133. style="
  134. width: 920px;
  135. min-height: 400px;
  136. display: inline-block;
  137. background: #f6fbff;
  138. color: #333333;
  139. "
  140. >
  141. <span
  142. :class="
  143. $i18n.locale == 'zh' ? 'countryListItem1' : 'countryListItem2'
  144. "
  145. class="countryActive cursor"
  146. @click="toView('countryNationalSpace', item.baseEntityId)"
  147. v-for="(item, index) in initData[screen1s[screen1sIndex].value]"
  148. >
  149. <span>{{
  150. $i18n.locale == 'zh' ? item.zhName : item.enName
  151. }}</span>
  152. </span>
  153. </div>
  154. </div>
  155. </div>
  156. <!-- 项目信息展示-->
  157. <div
  158. style="
  159. display: flex;
  160. justify-content: space-between;
  161. border-bottom: 2px solid #c9c6c6;
  162. padding: 0 30px;
  163. margin-top: 20px;
  164. "
  165. >
  166. <!-- 左侧信息-->
  167. <div style="display: inline-block; width: 46%">
  168. <div
  169. style="
  170. width: 100%;
  171. padding: 10px 0;
  172. border-bottom: 2px solid #2c558a;
  173. line-height: 50px;
  174. margin-left: 20px;
  175. "
  176. >
  177. {{ $t('common.ProjectTrends') }}
  178. <span
  179. @click="changeBatchToInfoData()"
  180. style="float: right; cursor: pointer"
  181. >
  182. <div style="width: 12px; height: 12px; float: left">
  183. <img
  184. src="@/assets/img/helpCenter/change1.png"
  185. alt=""
  186. style="width: 100%"
  187. />
  188. </div>
  189. <div
  190. style="
  191. float: left;
  192. margin-left: 5px;
  193. font-size: 16px;
  194. color: #778aa4;
  195. "
  196. >
  197. {{ $t('common.ChangeTheBatch') }}
  198. </div>
  199. </span>
  200. </div>
  201. <ul class="item messageList">
  202. <li
  203. v-for="item in infoData"
  204. @click="
  205. toViewDetail('projectPresentationDetails', item.projectId)
  206. "
  207. class="cursor list"
  208. >
  209. <div class="square"></div>
  210. <span class="title" v-text="item.projectName"></span>
  211. <span
  212. style="margin-left: 30px"
  213. v-text="formatDate(item.createDate)"
  214. ></span>
  215. </li>
  216. </ul>
  217. </div>
  218. <!-- 右侧信息-->
  219. <div style="display: inline-block; width: 46%; margin-right: 35px">
  220. <div
  221. style="
  222. padding: 10px 0;
  223. width: 100%;
  224. border-bottom: 2px solid #2c558a;
  225. line-height: 50px;
  226. margin-left: 20px;
  227. "
  228. >
  229. {{ $t('common.LatestDevelopment') }}
  230. <span
  231. @click="getInformation(listInformation.pageNo + 1)"
  232. style="float: right; cursor: pointer"
  233. >
  234. <div style="width: 12px; height: 12px; float: left">
  235. <img
  236. src="@/assets/img/helpCenter/change1.png"
  237. alt=""
  238. style="width: 100%"
  239. />
  240. </div>
  241. <div
  242. style="
  243. float: left;
  244. margin-left: 5px;
  245. font-size: 16px;
  246. color: #778aa4;
  247. "
  248. >
  249. {{ $t('common.ChangeTheBatch') }}
  250. </div>
  251. </span>
  252. </div>
  253. <ul class="item messageList">
  254. <li
  255. v-for="item in countryLastestInfos"
  256. @click="
  257. toViewDetail('countryInformationDetails', item.baseEntityId)
  258. "
  259. class="cursor list"
  260. >
  261. <div class="square"></div>
  262. <span class="title" v-text="item.title"></span>
  263. <span
  264. style="margin-left: 30px"
  265. v-text="formatDate(item.publishDate)"
  266. ></span>
  267. </li>
  268. </ul>
  269. </div>
  270. </div>
  271. <!-- 项目图片展示 -->
  272. <div
  273. style="
  274. width: 100%;
  275. display: flex;
  276. justify-content: space-between;
  277. margin-top: 30px;
  278. "
  279. >
  280. <div
  281. style="width: 22%; height: 150px"
  282. v-for="(item, index) in photo"
  283. :key="'img' + index"
  284. >
  285. <template v-if="index < 4">
  286. <img
  287. :src="'api/file/pub/' + item"
  288. alt=""
  289. style="width: 100%; height: 100%"
  290. />
  291. </template>
  292. </div>
  293. </div>
  294. </div>
  295. </div>
  296. </template>
  297. <script>
  298. import HeaderItem from '@/components/headerItem'
  299. import tabers from '@/components/taber'
  300. import footers from '@/components/footers'
  301. import Screen from '@/components/screen'
  302. import {
  303. getCountryMap,
  304. getCountry,
  305. getCountryDynamicInfos,
  306. } from '@/api/country/countryList'
  307. import { getBaseProjectViews } from '@/api/project/baseProjectView'
  308. import echarts from 'echarts'
  309. import { getDicts } from '@/api/dict'
  310. export default {
  311. name: 'countryInformation',
  312. components: { tabers, HeaderItem, footers, Screen },
  313. data() {
  314. return {
  315. allDataList: [],
  316. pageChangeInformation: 0,
  317. listInformation: {
  318. pageNo: 1,
  319. pageSize: 5,
  320. language: '',
  321. },
  322. pageChange: 1,
  323. list: {
  324. pageNo: 1,
  325. pageSize: 5,
  326. language: '',
  327. continentCountry: '',
  328. technicalCategories: '',
  329. //0为默认排序,1为关注排序
  330. descStatus: 0,
  331. status: 1,
  332. },
  333. index: 1,
  334. input3: '',
  335. infoData: [],
  336. screen1sIndex: 0,
  337. countryList: [],
  338. initData: [],
  339. options: [],
  340. photo: [],
  341. screen1s: [],
  342. world: {
  343. nameMap: {},
  344. dataArr: [],
  345. },
  346. countryLastestInfos: [],
  347. shouldGetBegin: false,
  348. }
  349. },
  350. mounted() {
  351. this.setCountry()
  352. this.getInformation(1)
  353. this.getCountryKey()
  354. this.getInfor()
  355. let page = {
  356. language: this.$i18n.locale.toUpperCase(),
  357. }
  358. this.getCountryList(page)
  359. },
  360. watch: {
  361. '$i18n.locale'() {
  362. this.setCountry()
  363. this.getInformation(1)
  364. this.getInfor()
  365. this.getCountryKey()
  366. let page = {
  367. language: this.$i18n.locale.toUpperCase(),
  368. }
  369. this.getCountryList(page)
  370. },
  371. },
  372. methods: {
  373. getCountryKey() {
  374. getDicts(
  375. this.$i18n.locale == 'zh'
  376. ? 'CONTINENT_CODE_DICT,PROJECT_CATEGORIES_DICT,TECHNICAL_SCOPE_DICT'
  377. : 'CONTINENT_CODE_DICT_EN,PROJECT_CATEGORIES_DICT_EN,TECHNICAL_SCOPE_DICT_EN'
  378. ).then((result) => {
  379. var data = result.data
  380. if (data) {
  381. this.screen1s = result.data[0] || []
  382. }
  383. })
  384. },
  385. screen1sIndexChange(index) {
  386. this.screen1sIndex = index
  387. },
  388. getCountryList(page) {
  389. getCountry(page).then((res) => {
  390. console.log(res, '__________________________________________')
  391. if (res.data) {
  392. this.initData = res.data.areMap
  393. this.options = res.data.baseCountryViews
  394. } else {
  395. this.initData = []
  396. }
  397. })
  398. },
  399. getInformation(pageNo) {
  400. this.listInformation.language = this.$i18n.locale.toUpperCase()
  401. if (this.shouldGetBegin) {
  402. pageNo = 1
  403. }
  404. this.listInformation.pageNo = pageNo
  405. getCountryDynamicInfos(this.listInformation).then((res) => {
  406. var data = res.data
  407. if (data) {
  408. this.countryLastestInfos = data || []
  409. this.shouldGetBegin =
  410. this.countryLastestInfos.length < 5 ? true : false
  411. }
  412. })
  413. },
  414. changeBatchToInfoData() {
  415. this.pageChange += 1
  416. this.list.pageNo = this.pageChange + ''
  417. this.getInfor()
  418. },
  419. getInfor() {
  420. this.list.language = this.$i18n.locale.toUpperCase()
  421. getBaseProjectViews(this.list).then((res) => {
  422. if (res.data) {
  423. this.infoData = res.data.baseProjectViews
  424. res.data.allDataList.forEach((item) => {
  425. if (item.pictureUrl) {
  426. this.photo.push(item.pictureUrl)
  427. }
  428. })
  429. if (res.data.baseProjectViews.length < 5) {
  430. this.pageChange = 0
  431. }
  432. }
  433. })
  434. },
  435. showCountry(continent) {
  436. this.countryList = this.initData[continent] || []
  437. },
  438. getIconUrl(url) {
  439. return require('@/assets/img/home/' + url + '.png')
  440. },
  441. toViewDetail(router, json) {
  442. this.$store.commit('modify', router)
  443. window.localStorage.setItem('router', router)
  444. const { href } = this.$router.resolve({
  445. name: router,
  446. query: {
  447. key: json,
  448. },
  449. })
  450. window.open(href, '_blank')
  451. },
  452. toView(router, json) {
  453. // this.$router.push({name:router,query:{key:json}});
  454. this.$store.commit('modify', router)
  455. window.localStorage.setItem('router', router)
  456. const { href } = this.$router.resolve({
  457. name: router,
  458. query: {
  459. key: json,
  460. },
  461. })
  462. window.open(href, '_blank')
  463. },
  464. screenBack(data) {
  465. console.log(data, 'screenBackscreenBackscreenBackscreenBack')
  466. },
  467. screen(i) {
  468. this.index = i
  469. },
  470. setCountry() {
  471. let currentlang = this.$i18n.locale == 'zh' ? 'ZH' : 'EN'
  472. getCountryMap(currentlang).then((res) => {
  473. if (res.data) {
  474. this.world = res.data
  475. this.getWorldMap(res.data)
  476. }
  477. })
  478. },
  479. getWorldMap(data) {
  480. console.log(data, '地图数据')
  481. var namemap = data.nameMap
  482. var dataArr = data.dataArr
  483. console.log(namemap, dataArr, '自定义地图')
  484. for (let i = 0; i < dataArr.length; i++) {
  485. if (dataArr[i].id == '') {
  486. dataArr[i].value = 0
  487. } else {
  488. dataArr[i].value = 10
  489. }
  490. }
  491. this.drawChart(namemap, dataArr)
  492. },
  493. //获取对应的国家id
  494. getWorldByName(countryName) {
  495. for (let index in this.world.dataArr) {
  496. if (
  497. this.world.dataArr[index].name == countryName ||
  498. this.world.dataArr[index].countryNameEn == countryName
  499. ) {
  500. return this.world.dataArr[index].id
  501. }
  502. }
  503. },
  504. getIcon(value, index) {
  505. // return require("@/assets/img/country/countryIcon/" + value +'1.png');
  506. if (index == this.screen1sIndex) {
  507. return require('@/assets/img/country/countryIcon/' + value + '.png')
  508. } else {
  509. return require('@/assets/img/country/countryIcon/' + value + '1.png')
  510. }
  511. },
  512. getIcons(value, index) {
  513. return require('@/assets/img/country/countryIcon/' + value + '1.png')
  514. },
  515. drawChart(namemap, dataa) {
  516. console.log(dataa, '所有的地图数据,对应当前语言')
  517. // 基于准备好的dom,初始化echarts实例
  518. let chart = echarts.init(document.getElementById('chart'))
  519. let _this = this
  520. // 监听屏幕变化自动缩放图表
  521. // window.addEventListener('resize', function () {
  522. // chart.resize()
  523. // })
  524. // 绘制图表
  525. chart.setOption({
  526. // 提示框组件
  527. tooltip: {
  528. trigger: 'item',
  529. formatter: function (params) {
  530. if (_this.$i18n.locale == 'zh') {
  531. var res = params.name + '<br/>'
  532. for (var i = 0; i < 1; i++) {
  533. for (var j = 0; j < dataa.length; j++) {
  534. if (dataa[j].name == params.name) {
  535. res += '洲' + ': ' + dataa[j].continent
  536. }
  537. }
  538. }
  539. } else {
  540. var res = params.name + '<br/>'
  541. for (var i = 0; i < 1; i++) {
  542. for (var j = 0; j < dataa.length; j++) {
  543. if (dataa[j].name == params.name) {
  544. res += 'Continent' + ':' + dataa[j].continent
  545. }
  546. }
  547. }
  548. }
  549. return res
  550. },
  551. },
  552. visualMap: {
  553. min: 0,
  554. max: 10,
  555. text: ['min', 'max'],
  556. realtime: false,
  557. calculable: true,
  558. show: false,
  559. inRange: {
  560. color: ['#F0F0F0', '#318ed1'],
  561. },
  562. // data的值里有value时根据value有颜色变化,key只能是value,带不带引号都可以
  563. },
  564. series: [
  565. {
  566. // 系列名称,用于tooltip的显示,legend 的图例筛选 在 setOption 更新数据和配置项时用于指定对应的系列
  567. name: 'worldMap',
  568. // 类型
  569. type: 'map',
  570. // 地图类型
  571. mapType: 'world',
  572. // 是否开启鼠标缩放和平移漫游 默认不开启 如果只想要开启缩放或者平移,可以设置成 'scale' 或者 'move' 设置成 true 为都开启
  573. roam: false,
  574. // 图形上的文本标签
  575. label: {
  576. show: false, // 是否显示对应地名
  577. },
  578. zoom: 1.2,
  579. // 地图区域的多边形 图形样式
  580. itemStyle: {
  581. areaColor: '#318ed1',
  582. borderWidth: 0.5, // 描边线宽 为 0 时无描边
  583. borderColor: '#005897', // 图形的描边颜色 支持的颜色格式同 color,不支持回调函数
  584. borderType: 'solid', // 描边类型,默认为实线,支持 'solid', 'dashed', 'dotted'
  585. },
  586. // 高亮状态下的多边形和标签样式
  587. emphasis: {
  588. label: {
  589. show: true, // 是否显示标签
  590. color: '#fff', // 文字的颜色 如果设置为 'auto',则为视觉映射得到的颜色,如系列色
  591. },
  592. itemStyle: {
  593. areaColor: '#FF6347', // 地图区域的颜色
  594. },
  595. },
  596. // 自定义地区的名称映射
  597. nameMap: namemap,
  598. // 地图系列中的数据内容数组 数组项可以为单个数值
  599. data: dataa,
  600. },
  601. ],
  602. })
  603. chart.on('click', { seriesName: 'worldMap' }, function (even) {
  604. console.log(even.data, 'even.data当前一条地图数据')
  605. let countryId = ''
  606. let countryName = even.data.name
  607. let id = _this.getWorldByName(countryName)
  608. if (id) {
  609. countryId = id
  610. }
  611. if (countryId !== '') {
  612. _this.$router.push({
  613. name: 'countryNationalSpace',
  614. query: { key: countryId },
  615. })
  616. } else {
  617. if (_this.$i18n.locale == 'en') {
  618. alert('No data available.')
  619. } else {
  620. alert('当前暂无数据。')
  621. }
  622. }
  623. })
  624. },
  625. },
  626. }
  627. </script>
  628. <style scoped>
  629. .whiteBox {
  630. position: absolute;
  631. left: 121px;
  632. height: 200px;
  633. background: #fff;
  634. width: 80px;
  635. bottom: 23px;
  636. }
  637. .box {
  638. margin-top: 10px;
  639. background: #fff;
  640. /* height: 500px; */
  641. padding: 20px 0;
  642. }
  643. .crumbs {
  644. margin-left: 20px;
  645. }
  646. body {
  647. margin: 0;
  648. }
  649. .countryInformation {
  650. width: 100%;
  651. height: 524px;
  652. margin-top: 10px;
  653. background-image: linear-gradient(#396db1, #4586da, #2c558a);
  654. /* background: url('../../assets/img/country/newMap.png') no-repeat; */
  655. /* background-size: 100%,100%; */
  656. position: relative;
  657. }
  658. .text {
  659. line-height: 35px;
  660. cursor: pointer;
  661. background-color: transparent;
  662. }
  663. #el-popover-4638 {
  664. background: #fff0;
  665. }
  666. .countryBox >>> .el-input__inner {
  667. height: 60px;
  668. }
  669. .countryBox >>> .el-input-group__append,
  670. .el-input-group__prepend {
  671. background: #2c558a;
  672. border-color: #2c558a;
  673. color: #fff;
  674. }
  675. .seamless-warp {
  676. height: 310px;
  677. overflow: hidden;
  678. }
  679. .el-button {
  680. background-color: transparent;
  681. border: 0;
  682. color: #fff;
  683. }
  684. .list {
  685. line-height: 45px;
  686. font-size: 14px;
  687. border-bottom: 2px dotted #d4d4d4;
  688. display: flex;
  689. align-items: center;
  690. }
  691. .list:hover {
  692. color: #ff0036;
  693. }
  694. .messageList {
  695. padding: 30px 20px;
  696. width: 100%;
  697. }
  698. .square {
  699. width: 8px;
  700. height: 8px;
  701. background: rgb(5, 91, 219);
  702. display: inline-block;
  703. margin-right: 10px;
  704. }
  705. .title {
  706. width: 390px;
  707. display: inline-block;
  708. height: 100%;
  709. overflow: hidden;
  710. white-space: nowrap;
  711. text-overflow: ellipsis;
  712. }
  713. .mapMessage {
  714. color: #fff;
  715. font-size: 14px;
  716. cursor: pointer;
  717. position: relative;
  718. }
  719. .mapMessage::before {
  720. display: block;
  721. content: '【';
  722. font-size: 40px;
  723. position: absolute;
  724. left: -60px;
  725. top: -4px;
  726. opacity: 0;
  727. transition: all 0.8s;
  728. }
  729. .mapMessage::after {
  730. display: block;
  731. font-size: 40px;
  732. content: '】';
  733. position: absolute;
  734. right: -60px;
  735. top: -4px;
  736. opacity: 0;
  737. transition: all 0.8s;
  738. }
  739. .mapMessage:hover::before {
  740. left: -40px;
  741. opacity: 1;
  742. }
  743. .mapMessage:hover::after {
  744. right: -40px;
  745. opacity: 1;
  746. }
  747. .countryList {
  748. width: 200px;
  749. position: absolute;
  750. top: 20%;
  751. right: 0;
  752. border: 1px solid #ffffff6b;
  753. }
  754. .countryList ul > li {
  755. height: 30px;
  756. line-height: 30px;
  757. padding: 0 10px;
  758. color: #fff;
  759. cursor: pointer;
  760. }
  761. .map {
  762. position: relative;
  763. font-weight: 600;
  764. }
  765. .map span {
  766. cursor: pointer;
  767. }
  768. .my-tooltip {
  769. border-radius: 50px;
  770. background-color: rgba(106, 237, 247, 0.7);
  771. border: none;
  772. padding: 15px;
  773. color: #fff;
  774. font-size: 16px;
  775. }
  776. .inner-tag {
  777. width: 20px;
  778. height: 20px;
  779. background: #fff;
  780. border-radius: 50%;
  781. position: absolute;
  782. left: 50%;
  783. top: 50%;
  784. transform: translate(-50%, -50%);
  785. transition: all 0.5s;
  786. }
  787. .outer-tag:hover .inner-tag {
  788. width: 80px;
  789. height: 80px;
  790. opacity: 0;
  791. }
  792. /* 世界地图 */
  793. /*.chart {*/
  794. /* width: 80%;
  795. margin:0 auto;
  796. height: 600px;
  797. border: 1px solid #eeeeee; */
  798. /* background: url(../../public/static/bg.png) no-repeat; 背景图设置*/
  799. /* background-size: 100% 100%; */
  800. /* background:#FDFEFF #E2F4FF; */
  801. /* background:linear-gradient(top, #FDFEFF 0%, #E2F4FF 100%); */
  802. /*}*/
  803. .countryTitle {
  804. margin-top: 20px;
  805. width: 100%;
  806. height: 100px;
  807. background: #2d568a;
  808. }
  809. .countryListItem1 {
  810. width: 200px;
  811. height: 50px;
  812. float: left;
  813. text-align: center;
  814. margin: 20px 20px 0 0;
  815. /* overflow: hidden;
  816. white-space: nowrap;
  817. text-overflow: ellipsis; */
  818. /* line-height: 50px; */
  819. }
  820. .countryListItem2 {
  821. width: 200px;
  822. height: 70px;
  823. float: left;
  824. text-align: center;
  825. margin: 20px 20px 0 0;
  826. /* overflow: hidden;
  827. white-space: nowrap;
  828. text-overflow: ellipsis; */
  829. /* line-height: 50px; */
  830. }
  831. .message {
  832. width: 188px;
  833. float: left;
  834. margin-top: 10px;
  835. }
  836. .message .li {
  837. height: 50px;
  838. line-height: 50px;
  839. font-size: 20px;
  840. padding-left: 60px;
  841. border-bottom: 1px solid #d8d8d8;
  842. }
  843. .color1 {
  844. color: #0091ff;
  845. letter-spacing: 1px;
  846. }
  847. .color2 {
  848. color: #333333;
  849. letter-spacing: 1px;
  850. }
  851. .countryActive:hover {
  852. color: #0091ff;
  853. }
  854. </style>