FinancialServiceInvestmentGuide.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508
  1. <template>
  2. <div>
  3. <div class="autoBox box">
  4. <div class="crumbs">
  5. <el-breadcrumb separator="/">
  6. <el-breadcrumb-item :to="{ path: 'home' }">{{$t('common.Home')}}</el-breadcrumb-item>
  7. <el-breadcrumb-item :to="{ path: 'financialServices' }">{{$t('common.FinancialServices')}}</el-breadcrumb-item>
  8. <el-breadcrumb-item>{{$t('common.InvestmentGuide')}}</el-breadcrumb-item>
  9. </el-breadcrumb>
  10. </div>
  11. <div style="padding: 0 20px">
  12. <div style="background:#fff;margin-top: 14px;">
  13. <div style="width: 100%;height:50px;color: #fff;background: #2C558A;text-align: center;font-size: 28px;font-weight: 700;line-height: 50px;border-radius: 6px;">{{$t('common.InvestmentGuidelines')}}</div>
  14. </div>
  15. <div style="margin-top: 20px;">
  16. <div style="width: 100%;padding:20px 0;border-bottom: 2px solid rgba(151,151,151,.5);color: #666666" v-for="(item,index) in initData">
  17. <div style="width: 180px;height:254px;float: left;" v-if="item.photo && item.photo != null" @click="toView('FinancialServicesGuideDetails',item.baseEntityId)">
  18. <img :src="'api/file/pub/'+ item.photo" alt="" style="width: 100%;height: 100%;">
  19. </div>
  20. <div style="width: 180px;height:254px;float: left;position: relative;text-align: center" v-if="!item.photo || item.photo==null" >
  21. <img src="@/assets/img/financialService/investmentlogo.png" alt="" style="width: 100%;height: 100%;">
  22. <div style="position: absolute;top: 50px;color: #fff; padding: 0 10px;font-size: 10px;width: 89%">
  23. {{item.name}}
  24. </div>
  25. <div style="color: #173F79;font-size: 12px;position: absolute;bottom: 50px;padding: 0 10px;font-size: 10px;width: 89%">
  26. {{$t('common.TitleBottom')}}
  27. </div>
  28. </div>
  29. <div style="width:79.5%;height:254px;float: right;margin-left: 10px;position: relative">
  30. <span style="font-size: 20px;font-weight: 700;cursor: pointer;" >{{item.name}}</span>
  31. <div v-html="item.introduction" style="width: 100%;font-size:16px;text-align: justify;line-height: 20px;overflow: hidden;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 5;"></div>
  32. <div v-if="item.countries" style="width: 100%;font-size: 16px;position: absolute;bottom: 30px">{{$t('common.FocusCountry')}}:
  33. <span v-for="count in changeStr(item.countries).split('、')">
  34. <el-button type="text" @click="unitCountryFour(count)"> {{count}}</el-button>
  35. </span>
  36. <!-- <span style="color: #0091FF">{{changeStr(item.countries)}}</span>-->
  37. </div>
  38. <!--语言版本-->
  39. <div style="margin-top: 54px;font-size: 16px;position:absolute;bottom: 0" v-if="languageList[item.baseEntityId]">
  40. <span>
  41. <span v-show="languageList[item.baseEntityId].entityZh == 1">{{$t('common.Chinese')}}</span>
  42. <span v-show="languageList[item.baseEntityId].entityEn == 1"> | {{$t('common.English')}}</span>
  43. <span v-show="languageList[item.baseEntityId].entityFr == 1"> | {{$t('common.French')}}</span>
  44. <span v-show="languageList[item.baseEntityId].entityDe == 1"> | {{$t('common.German')}}</span>
  45. <span v-show="languageList[item.baseEntityId].entityEs == 1"> | {{$t('common.Spanish')}}</span>
  46. <span v-show="languageList[item.baseEntityId].entityJa == 1"> | {{$t('common.Japanese')}}</span>
  47. <span v-show="languageList[item.baseEntityId].entityAr == 1"> | {{$t('common.Arabic')}}</span>
  48. <span v-show="languageList[item.baseEntityId].entityRu == 1"> | {{$t('common.Russian')}}</span>
  49. </span>
  50. <span style="margin-left: 95px">{{formatDate(item.publishDate)}}</span>
  51. </div>
  52. </div>
  53. <div style="clear: both"></div>
  54. </div>
  55. <div style="width: 100%;position: relative;height: 100px;">
  56. <el-pagination
  57. type="index"
  58. style="height: 80px;position: absolute;left: 50%;top: 100px;transform: translate(-50%,-50%);"
  59. background
  60. :index="indexMethod"
  61. layout="prev, pager, next"
  62. :page-size="5"
  63. :total="num-0"
  64. @current-change="handleCurrentChange"
  65. ></el-pagination>
  66. </div>
  67. </div>
  68. <!-- <div style="clear: both"></div>-->
  69. <!-- <div style="width:28%;height:100px;float: right;margin: 40px 0;">-->
  70. <!--其他机构相关研究报告-->
  71. <!-- <div class="relevanInformation">-->
  72. <!-- <div class="informationTitle">{{$t('common.RelatedResearch')}}</div>-->
  73. <!-- <div class="informationList">-->
  74. <!-- <ul>-->
  75. <!-- <li style="list-style: disc;margin-left: 20px;" v-for="reportIltem in reportList" @click="toInformationList1(reportIltem)">-->
  76. <!-- <div class="list">-->
  77. <!-- {{reportIltem.name}}-->
  78. <!-- </div>-->
  79. <!-- </li>-->
  80. <!-- </ul>-->
  81. <!-- </div>-->
  82. <!-- </div>-->
  83. <!--投融资会议及活动-->
  84. <!-- <div class="relevanInformation">-->
  85. <!-- <div class="informationTitle">{{$t('common.InvestmentAndFinancing')}}</div>-->
  86. <!-- <div class="informationList">-->
  87. <!-- <ul>-->
  88. <!-- <li style="list-style: disc;margin-left: 20px" v-for="(InvestItem,index) in InvestmentList" @click="toDetails('ConferenceResult',InvestItem.id)">-->
  89. <!-- <div class="list">-->
  90. <!-- {{$i18n.locale=='en'?InvestItem.meetingNameEn: InvestItem.meetingName}}-->
  91. <!-- </div>-->
  92. <!-- </li>-->
  93. <!-- <li style="list-style: disc;margin-left: 20px" v-for="(activeItem,index) in activityList" @click="toDetails('cooperationExchangeListDetails',activeItem.baseActivityEntityId)">-->
  94. <!-- <div class="list">-->
  95. <!-- {{activeItem.activityName}}-->
  96. <!-- </div>-->
  97. <!-- </li>-->
  98. <!-- </ul>-->
  99. <!-- </div>-->
  100. <!-- </div>-->
  101. </div>
  102. <div
  103. style="margin: 0 20px; margin-top: 20px; min-height: 200px"
  104. class="continents2"
  105. >
  106. <div style="border-bottom: 1px solid #0079ef; padding-bottom: 5px">
  107. <img
  108. src="@/assets/img/cooperationExchange/20200608_03.gif"
  109. alt=""
  110. style="height: 20px; vertical-align: middle"
  111. />
  112. <span style="margin-left: 5px">{{
  113. $t('common.EnterpriseShow')
  114. }}</span>
  115. <span
  116. style="color: #333; font-size: 12px; float: right; cursor: pointer"
  117. @click="ChangeUnitBatch"
  118. >{{ $t('common.NextBatch') }}</span
  119. >
  120. </div>
  121. <ul>
  122. <li
  123. v-for="(item, index) in initData3"
  124. :key="index"
  125. @click="toViewTargtBack('enterpriseDetails',item)"
  126. class="LiActive cursor"
  127. >
  128. <div style="position: relative; margin: 0 22px" class="border">
  129. <div style="width: 100%; text-align: center; padding-top: 30px">
  130. <div>
  131. <img
  132. :src="'/api/file/pub/' + item.photo"
  133. alt=""
  134. style="width: 100%; height: 160px"
  135. v-if="item.photo"
  136. />
  137. <img
  138. :src="'api/file/pub/' + '/def/projectdefault.png'"
  139. alt=""
  140. style="width: 100%; height: 160px"
  141. v-if="!item.photo"
  142. />
  143. </div>
  144. <div style="color: rgba(51, 51, 51, 1); font-weight: 700">
  145. {{ item.unitName }}
  146. </div>
  147. </div>
  148. </div>
  149. </li>
  150. </ul>
  151. </div>
  152. </div>
  153. </div>
  154. </template>
  155. <script>
  156. import {getBaseInvestmentGuidelinesInfos} from '@/api/financialService/baseInvestmentGuidelinesInfo';
  157. import { getDicts } from "@/api/dict";
  158. import {getConfrences} from "../../api/meeting/meetingOutInfo";
  159. import {activityInfos} from "../../api/cooperation/baseCooperationUnit";
  160. import {getBaseResearchResultViews} from "../../api/research/baseResearchResultView";
  161. import {getCountryByName} from '@/api/country/countryList';
  162. import { getBaseUnitViews } from '@/api/baseUnitView';
  163. export default{
  164. name:'FinancialServiceInvestmentGuide',
  165. data(){
  166. return{
  167. initData:[],
  168. num:0,
  169. params:{
  170. pageSize:"5",
  171. pageNo:"1",
  172. language:'',
  173. statusDict:'2'
  174. },
  175. unitPage: {
  176. pageSize: "4",
  177. pageNo: "1",
  178. areDict: '',
  179. language: '',
  180. },
  181. unitNum: 0,
  182. initData3: [],
  183. reportList:[],
  184. InvestmentList:[],
  185. activityList:[],
  186. dictList:[],
  187. languageList:'',
  188. }
  189. },
  190. computed:{
  191. countryDictsMap: function () {
  192. return this.dictList.array2Obj('value', 'label');
  193. },
  194. changeStr(){
  195. return function (str) {
  196. let newStr = '';
  197. str.split(',').forEach(item =>{
  198. newStr = newStr + this.countryDictsMap[item] + '、'
  199. });
  200. newStr = newStr.substring(0, newStr.lastIndexOf("、"));
  201. return newStr ;
  202. }
  203. }
  204. },
  205. mounted() {
  206. this.getData();
  207. this.getDict();
  208. this.getMeetingAndActive();
  209. this.getactivityStatusDict();
  210. this.getreportList();
  211. this.getRecommended();
  212. },
  213. watch: {
  214. '$i18n.locale'(){
  215. this.getData();
  216. this.getDict();
  217. this.getMeetingAndActive();
  218. this.getactivityStatusDict();
  219. this.getreportList()
  220. },
  221. },
  222. methods:{
  223. getDict() {
  224. const that = this;
  225. if(this.$i18n.locale=='zh'){
  226. getDicts(
  227. "UNIT_COUNTRY_DICT"
  228. ).then((res) => {
  229. this.dictList = res.data[0];
  230. });
  231. }else if(this.$i18n.locale=='en'){
  232. getDicts(
  233. "unit_country_dict_en"
  234. ).then((res) => {
  235. this.dictList = res.data[0];
  236. });
  237. }
  238. },
  239. getData(dict){
  240. const that =this;
  241. this.params.language = this.$i18n.locale.toUpperCase();
  242. getBaseInvestmentGuidelinesInfos(this.params).then((res)=>{
  243. this.initData = res.data.baseInvestmentGuidelinesInfos;
  244. this.languageList = res.data.investmentGuidelinesEntitiesMap;
  245. console.log(this.languageList)
  246. if (this.initData){
  247. this.num = res.data.page.totalCount;
  248. }else{
  249. this.num = '';
  250. }
  251. this.loading = false;
  252. })
  253. },
  254. toInformationList1(ele){
  255. let params = {
  256. entityId:ele.entityId,
  257. // researchResultFileId:ele.researchResultFileId,
  258. }
  259. this.toViewInformationList('resourceSharingDetails',params)
  260. },
  261. toViewInformationList(router, json) {
  262. clearInterval(this.timer);
  263. const {href} = this.$router.resolve({
  264. name: router,
  265. query: {
  266. key:JSON.stringify(json),
  267. }
  268. });
  269. window.open(href, '_blank');
  270. },
  271. toView(router,json){
  272. this.$router.push({
  273. name:router,
  274. query:{key:json}
  275. })
  276. },
  277. toDetails(router,json){
  278. // this.$store.commit('modify', router);
  279. window.localStorage.setItem('router', router);
  280. localStorage.setItem('conferenceId', json);
  281. const {href} = this.$router.resolve({
  282. name: router,
  283. query: {
  284. key: json
  285. }
  286. });
  287. window.open(href, '_blank');
  288. },
  289. getMeetingAndActive(){
  290. // 获取会议
  291. getConfrences().then((res)=>{
  292. if(res.data.meetingBasicInfos){
  293. let meetingLength = res.data.meetingBasicInfos.length;
  294. this.InvestmentList = [];
  295. for(let i=0;i<meetingLength;i++){
  296. if(i<3){
  297. this.InvestmentList.push(res.data.meetingBasicInfos[i])
  298. }
  299. }
  300. }
  301. });
  302. },
  303. getactivityStatusDict(){
  304. let list={
  305. pageSize:9,
  306. pageNo:1,
  307. language:this.$i18n.locale.toUpperCase(),
  308. activityStatusDict:1, // 活动类型
  309. activityArea:"",// 大洲
  310. }
  311. activityInfos(list).then(res=>{
  312. if(JSON.stringify(res.data)!=='{}'){
  313. let activityLength = res.data.activityInfos.length;
  314. this.activityList = [];
  315. for(let i=0;i<activityLength;i++){
  316. if(i<2){
  317. this.activityList.push(res.data.activityInfos[i])
  318. }
  319. }
  320. }
  321. })
  322. },
  323. getreportList(){
  324. const that = this;
  325. let reportParams = {
  326. pageSize: 5,
  327. pageNo: 1,
  328. language:this.$i18n.locale.toUpperCase(),
  329. totalPage:'',
  330. descStatus:'0'
  331. };
  332. getBaseResearchResultViews(reportParams).then((res)=>{
  333. this.reportList = res.data.baseResearchResultViews;
  334. console.log(this.reportList,'-----------------------------研究报告')
  335. })
  336. },
  337. //分页索引接着上一页的索引
  338. indexMethod(index){
  339. return (this.page-1)*10+index+1;
  340. },
  341. handleCurrentChange(val) {
  342. this.params.pageNo = val;
  343. this.loading = true;
  344. this.getData();
  345. },
  346. unitCountryFour:function (unitCountry){
  347. getCountryByName(unitCountry).then(res=>{
  348. console.log("请求返回的值",res.data)
  349. if (res.data.countryById != null ){
  350. this.$store.commit('modify', 'countryNationalSpace')
  351. window.localStorage.setItem('router', 'countryNationalSpace')
  352. const { href } = this.$router.resolve({
  353. name: 'countryNationalSpace',
  354. query: {
  355. key: res.data.countryById,
  356. },
  357. })
  358. window.open(href, '_blank')
  359. }else{
  360. alert("国别信息库中未维护该国别");
  361. }
  362. })
  363. console.log("当前语言版本",this.language);
  364. console.log("显示选中的国别信息",unitCountry);
  365. },
  366. //获取企业展示信息
  367. getRecommended(){
  368. const that =this;
  369. console.log("这是进入的数据内容了")
  370. /* let unitPage={
  371. recommendFlag:'y',
  372. pageSize: "4",
  373. pageNo: "1",
  374. areDict: that.initData.areDict,
  375. language:this.$i18n.locale.toUpperCase(),
  376. descStatus:'0',
  377. }*/
  378. /* this.unitPage.areDict = that.initData.areDict;*/
  379. this.unitPage.language = this.$i18n.locale.toUpperCase();
  380. getBaseUnitViews(this.unitPage).then((res) => {
  381. if (res.data.baseUnitViews) {
  382. this.uniNum = res.data.page.totalCount;
  383. that.initData3 = res.data.baseUnitViews;
  384. console.log(res.data.baseUnitViews,that.init);
  385. } else {
  386. this.initData3 = []
  387. this.uniNum = ''
  388. // this.$message("当前推荐企业暂无信息");
  389. }
  390. this.loading = false;
  391. });
  392. },
  393. ChangeUnitBatch() {
  394. if (this.unitPage.pageNo * 5 <= this.uniNum) {
  395. //this.$message(this.$t('common.Nodataavailable'));
  396. this.unitPage.pageNo++
  397. this.getRecommended()
  398. }
  399. },
  400. }
  401. }
  402. </script>
  403. <style scoped>
  404. .box {
  405. margin-top: 10px;
  406. background: #fff;
  407. /* height: 500px; */
  408. padding: 20px 0;
  409. }
  410. .crumbs {
  411. margin-left: 20px;
  412. }
  413. body {
  414. margin: 0;
  415. }
  416. p{
  417. margin: 0;
  418. padding: 0;
  419. }
  420. .relevanInformation{
  421. min-height: 200px;
  422. padding: 0 0 0 20px;
  423. overflow: hidden;
  424. }
  425. .informationTitle{
  426. border-bottom: 1px solid #2C558A;
  427. padding: 0 0 10px 0;
  428. font-weight: 600;
  429. font-size: 20px;
  430. color: #666666;
  431. opacity: 0.9;
  432. color: #2C558A;
  433. }
  434. .informationList ul{
  435. margin-top: 14px;
  436. font-size: 14px;
  437. list-style-type:disc;
  438. padding: 0 30px 0 0;
  439. box-sizing: border-box;
  440. }
  441. .informationList ul li{
  442. width: 100%;
  443. /*height: 34px;*/
  444. line-height: 34px;
  445. margin-bottom: 12px;
  446. color: #666666;
  447. cursor: pointer;
  448. list-style-type: disc;
  449. }
  450. .informationList ul li .list{
  451. width: 100%;
  452. overflow: hidden;
  453. text-overflow: ellipsis;
  454. display:-webkit-box;
  455. -webkit-box-orient:vertical;
  456. -webkit-line-clamp:3;
  457. }
  458. .continents2 ul {
  459. display: flex;
  460. flex-wrap: wrap;
  461. text-align: center;
  462. }
  463. .continents2 ul li {
  464. width: 24%;
  465. /* padding: 18px 30px; */
  466. background: #fff;
  467. margin-bottom: 20px;
  468. color: #999;
  469. /* height: 384px; */
  470. /* border-right: 1px solid #EAEAEA; */
  471. border: 3px solid transparent;
  472. box-shadow: 5px 5px 5px #fafafa;
  473. }
  474. .continents2 ul li:nth-of-type(5) {
  475. border-right: none;
  476. }
  477. </style>