EnterpriseDetails.vue 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308
  1. <template>
  2. <div>
  3. <div class="autoBox box">
  4. <div class="crumbs">
  5. <el-breadcrumb separator="/">
  6. <el-breadcrumb-item :to="{ path: 'home' }"
  7. >{{ $t('common.Home') }}
  8. </el-breadcrumb-item>
  9. <el-breadcrumb-item :to="{ path: 'enterprise' }"
  10. >{{ $t('common.EnterpriseShow') }}
  11. </el-breadcrumb-item>
  12. <el-breadcrumb-item>{{ enterpriseDetails }}</el-breadcrumb-item>
  13. </el-breadcrumb>
  14. </div>
  15. <div
  16. style="
  17. width: 100%;
  18. height: 450px;
  19. position: relative;
  20. border-bottom: 1px solid #ccc;
  21. "
  22. >
  23. <div class="swipers">
  24. <div class="swiper-container gallery-top">
  25. <div class="swiper-wrapper">
  26. <div
  27. class="swiper-slide"
  28. v-for="(i, index) in img"
  29. v-if="img.length > 0"
  30. >
  31. <img
  32. :src="'api/file/pub/' + i"
  33. alt
  34. style="width: 100%; height: 100%"
  35. />
  36. </div>
  37. <div class="swiper-slide" v-if="img.length == 0">
  38. <img
  39. :src="'api/file/pub/' + '/def/def1.png'"
  40. alt
  41. style="width: 100%; height: 100%"
  42. />
  43. </div>
  44. </div>
  45. <div class="swiper-button-next swiper-button-white"></div>
  46. <div class="swiper-button-prev swiper-button-white"></div>
  47. </div>
  48. <div class="swiper-container gallery-thumbs">
  49. <div class="swiper-wrapper">
  50. <div
  51. class="swiper-slide"
  52. v-for="(i, index) in img"
  53. v-if="img.length > 0"
  54. >
  55. <img
  56. :src="'api/file/pub/' + i"
  57. alt
  58. style="width: 100%; height: 100%"
  59. />
  60. </div>
  61. <div class="swiper-slide" v-if="img.length == 0">
  62. <img
  63. :src="'api/file/pub/' + '/def/def1.png'"
  64. alt
  65. style="width: 100%; height: 100%"
  66. />
  67. </div>
  68. </div>
  69. </div>
  70. <div
  71. style="
  72. float: right;
  73. color: #666;
  74. font-size: 14px;
  75. margin-right: 20px;
  76. "
  77. >
  78. <!-- <span class="share cursor" :style="ifcommon?'color: #66b1ff;':''"-->
  79. <!-- style="margin-right: 20px;" @click="shareChange()">-->
  80. <!-- <i class="el-icon-star-off" :style="ifcommon?'color: #66b1ff;':''"> </i>-->
  81. <!-- {{ifcommon?$t('common.companyAttentioned'):$t('common.Focusonthecompany')}}-->
  82. <!-- </span>-->
  83. <!-- <span class="share cursor btn" :data-clipboard-text="url" @click="copy">
  84. <i class="el-icon-share"> </i>
  85. {{$t('common.ShareProject')}}
  86. </span> -->
  87. </div>
  88. </div>
  89. <div class="details">
  90. <div
  91. style="width: 100%; font-size: 16px"
  92. @click="toView('enterpriseDetails', item.label)"
  93. >
  94. <div>
  95. <span class="initData_label cursor">{{ initData.unitName }}</span>
  96. <span
  97. style="
  98. margin-left: 150px;
  99. padding: 10px;
  100. background: #ff0033;
  101. color: #fff;
  102. font-weight: 700;
  103. "
  104. v-if="initData.recommendFlag == 1"
  105. >{{ $t('common.RecommendedEnterprise') }}
  106. </span>
  107. </div>
  108. <div style="line-height: 40px">
  109. <div>
  110. <span>
  111. <i class="el-icon-location-outline"></i>
  112. {{
  113. $i18n.locale === 'zh'
  114. ? initData.unitCountry
  115. : initData.unitCountryDict.charAt(0).toUpperCase() +
  116. initData.unitCountryDict.slice(1)
  117. }}
  118. <span v-show="initData.unitRegion">-</span
  119. >{{ initData.unitRegion }}
  120. </span>
  121. </div>
  122. <!-- <div>-->
  123. <!-- &lt;!&ndash; <span>-->
  124. <!-- <i class="fa fa-jpy" aria-hidden="true"></i>-->
  125. <!-- {{$t('common.RegisteredCapital')}}:{{initData.registerMoney}}-->
  126. <!-- </span> &ndash;&gt;-->
  127. <!-- <i class="el-icon-time"></i>-->
  128. <!-- <span >-->
  129. <!-- {{$t('common.DateOfEstablishment')}}:{{formatDate(initData.setUpDate) }}-->
  130. <!-- </span>-->
  131. <!-- </div>-->
  132. </div>
  133. <div style="line-height: 40px">
  134. <span>
  135. <i class="fa fa-envelope-open-o" aria-hidden="true"></i>
  136. {{ $t('common.ProductInformation') }}
  137. <span style="color: #0099ff; padding: 0 3px"
  138. >(
  139. <a href="#unitScope">{{
  140. UnitTypeNumber[1] ? UnitTypeNumber[1] : '0'
  141. }}</a>
  142. )</span
  143. >
  144. {{ $t('common.CoreTechnology') }}
  145. <span style="color: #0099ff; padding: 0 3px"
  146. >(
  147. <a href="#information02">{{
  148. UnitTypeNumber[2] ? UnitTypeNumber[2] : '0'
  149. }}</a>
  150. )</span
  151. >
  152. {{ $t('common.ProjectPerformance') }}
  153. <span style="color: #0099ff; padding: 0 3px"
  154. >(
  155. <a href="#information03">{{
  156. UnitTypeNumber[3] ? UnitTypeNumber[3] : '0'
  157. }}</a>
  158. )</span
  159. >
  160. {{ $t('common.ScopeBusiness') }}
  161. <span style="color: #0099ff; padding: 0 3px"
  162. >(
  163. <a href="#information04">{{
  164. UnitTypeNumber[4] ? UnitTypeNumber[4] : '0'
  165. }}</a>
  166. )</span
  167. >
  168. </span>
  169. </div>
  170. <div
  171. style="
  172. -webkit-box-orient: vertical;
  173. position: relative;
  174. line-height: 1.4em;
  175. overflow: hidden;
  176. height: 7.1em;
  177. cursor: pointer;
  178. "
  179. class="plate"
  180. @click="dialogVisibleChange"
  181. >
  182. <span style="line-height: 30px">
  183. <i class="el-icon-tickets"></i>
  184. {{ $t('common.CompanyProfile') }}:
  185. <span v-html="initData.unitIntrodutionMin"></span>
  186. </span>
  187. </div>
  188. <div style="margin-top: 10px">
  189. <el-tag
  190. v-if="0 < initData.unitLabel.size"
  191. style="margin: 10px 10px 0 0"
  192. v-for="unitLabel in initData.unitLabel"
  193. >{{ unitLabel }}
  194. </el-tag>
  195. </div>
  196. <div
  197. style="
  198. float: right;
  199. color: #666;
  200. font-size: 14px;
  201. margin-right: 20px;
  202. "
  203. >
  204. <!-- <span class="share cursor" :style="ifcommon?'color: #66b1ff;':''"-->
  205. <!-- style="margin-right: 20px;" @click="shareChange()">-->
  206. <!-- <i class="el-icon-star-off" :style="ifcommon?'color: #66b1ff;':''"> </i>-->
  207. <!-- {{ifcommon?$t('common.companyAttentioned'):$t('common.Focusonthecompany')}}-->
  208. <!-- </span>-->
  209. <div>
  210. <!-- <el-button type="" style="margin-left: 10px;margin-top: 10px;height: 40px;width: 170px;" icon="el-icon-star-off" :style="ifcommon?'color: #66b1ff;':''" @click="shareChange()">-->
  211. <span
  212. class="share cursor"
  213. :style="ifcommon ? 'color: #66b1ff;' : ''"
  214. style="margin-right: 380px"
  215. @click="shareChange()"
  216. >
  217. <i
  218. class="el-icon-star-off"
  219. :style="ifcommon ? 'color: #66b1ff;' : ''"
  220. ></i>
  221. {{
  222. ifcommon
  223. ? $t('common.companyAttentioned')
  224. : $t('common.Focusonthecompany')
  225. }}
  226. </span>
  227. <!-- </el-button>-->
  228. </div>
  229. <!-- <span class="share cursor btn" :data-clipboard-text="url" @click="copy">
  230. <i class="el-icon-share"> </i>
  231. {{$t('common.ShareProject')}}
  232. </span> -->
  233. </div>
  234. </div>
  235. </div>
  236. </div>
  237. <!-- 企业介绍 -->
  238. <!-- <div style="width: 100%;border-bottom: 1px solid #ccc;" v-if="enterprise.label1.label">
  239. <div class="enterprise_style">
  240. <span class="enterprise_style_span">{{$t('common.EnterpriseIntroduction')}}</span>
  241. </div>
  242. <div
  243. style="margin-top: 15px;color: #2c3e50;margin:0 100px;"
  244. v-html="enterprise.label1.label"
  245. ></div>
  246. </div> -->
  247. <div
  248. style="width: 100%; height: 320px; border-bottom: 1px solid #ccc"
  249. id="unitScope"
  250. v-if="enterprise1.length > 0"
  251. >
  252. <!-- -->
  253. <div class="enterprise_style">
  254. <span class="enterprise_style_span">{{
  255. $t('common.ProductInformation')
  256. }}</span>
  257. </div>
  258. <div
  259. v-if="enterprise1.length > 6"
  260. style="
  261. float: right;
  262. transform: translateY(-7px);
  263. margin-right: 61px;
  264. font-size: 14px;
  265. color: #2c558a;
  266. "
  267. @click="
  268. toViewMore(
  269. 'EnterPriseMoreInformationList',
  270. initData.baseEntityId,
  271. '1'
  272. )
  273. "
  274. class="cursor"
  275. >
  276. {{ $t('common.ViewMore') }}
  277. </div>
  278. <div
  279. style="
  280. float: left;
  281. margin-top: 15px;
  282. margin-left: 100px;
  283. width: 400px;
  284. height: 230px;
  285. "
  286. >
  287. <img
  288. :src="'api/file/pub/' + enterprise.label2.src"
  289. alt
  290. style="width: 100%; height: 100%"
  291. v-if="enterprise.label2.src"
  292. />
  293. <img
  294. :src="'api/file/pub/' + '/def/def2.png'"
  295. alt
  296. style="width: 100%; height: 100%"
  297. v-if="!enterprise.label2.src"
  298. />
  299. </div>
  300. <div
  301. style="float: left; margin-top: 15px; margin-left: 20px; width: 620px"
  302. class="enterprise_style_product"
  303. >
  304. <tr
  305. v-for="(item, index) in enterprise1"
  306. v-if="index < 6"
  307. class="cursor"
  308. @click="
  309. toViewDetail(
  310. 'enterpriseInformationDetails',
  311. item.baseEntityId,
  312. 'common.ProductInformation'
  313. )
  314. "
  315. >
  316. <td
  317. style="
  318. float: left;
  319. width: 500px;
  320. display: inline-block;
  321. overflow: hidden;
  322. text-overflow: ellipsis;
  323. white-space: nowrap;
  324. "
  325. >
  326. {{ item.title }}
  327. </td>
  328. <td style="float: right">{{ formatDate(item.createDate) }}</td>
  329. <td style="clear: both"></td>
  330. </tr>
  331. </div>
  332. </div>
  333. <div
  334. style="width: 100%; height: 320px; border-bottom: 1px solid #ccc"
  335. id="information03"
  336. v-if="enterprise3.length > 0"
  337. >
  338. <!-- -->
  339. <div class="enterprise_style">
  340. <span class="enterprise_style_span">{{
  341. $t('common.ProjectPerformance')
  342. }}</span>
  343. </div>
  344. <div
  345. v-if="enterprise3.length > 6"
  346. style="
  347. float: right;
  348. transform: translateY(-7px);
  349. margin-right: 61px;
  350. font-size: 14px;
  351. color: #2c558a;
  352. "
  353. @click="
  354. toViewMore(
  355. 'EnterPriseMoreInformationList',
  356. initData.baseEntityId,
  357. '3'
  358. )
  359. "
  360. class="cursor"
  361. >
  362. {{ $t('common.ViewMore') }}
  363. </div>
  364. <div
  365. style="
  366. float: left;
  367. margin-top: 15px;
  368. margin-left: 100px;
  369. width: 400px;
  370. height: 230px;
  371. "
  372. >
  373. <img
  374. :src="'api/file/pub/' + enterprise.label4.src"
  375. alt
  376. style="width: 100%; height: 100%"
  377. v-if="enterprise.label4.src"
  378. />
  379. <img
  380. :src="'api/file/pub/' + '/def/def4.png'"
  381. alt
  382. style="width: 100%; height: 100%"
  383. v-if="!enterprise.label4.src"
  384. />
  385. </div>
  386. <div
  387. style="float: left; margin-top: 15px; margin-left: 20px; width: 620px"
  388. class="enterprise_style_product"
  389. >
  390. <tr
  391. v-for="(item, index) in enterprise3"
  392. v-if="index < 5"
  393. class="cursor"
  394. @click="
  395. toViewDetail(
  396. 'enterpriseInformationDetails',
  397. item.baseEntityId,
  398. 'common.ProjectPerformance'
  399. )
  400. "
  401. >
  402. <td
  403. style="
  404. float: left;
  405. width: 500px;
  406. display: inline-block;
  407. overflow: hidden;
  408. text-overflow: ellipsis;
  409. white-space: nowrap;
  410. "
  411. >
  412. {{ item.title }}
  413. </td>
  414. <td style="float: right">{{ formatDate(item.createDate) }}</td>
  415. <td style="clear: both"></td>
  416. </tr>
  417. </div>
  418. </div>
  419. <div
  420. style="width: 100%; height: 320px; border-bottom: 1px solid #ccc"
  421. id="information02"
  422. v-if="enterprise2.length > 0"
  423. >
  424. <div class="enterprise_style">
  425. <span class="enterprise_style_span">{{
  426. $t('common.CoreTechnology')
  427. }}</span>
  428. </div>
  429. <div
  430. v-if="enterprise2.length > 6"
  431. style="
  432. float: right;
  433. transform: translateY(-7px);
  434. margin-right: 61px;
  435. font-size: 14px;
  436. color: #2c558a;
  437. "
  438. @click="
  439. toViewMore(
  440. 'EnterPriseMoreInformationList',
  441. initData.baseEntityId,
  442. '2'
  443. )
  444. "
  445. class="cursor"
  446. >
  447. {{ $t('common.ViewMore') }}
  448. </div>
  449. <div
  450. style="
  451. float: left;
  452. margin-top: 15px;
  453. margin-left: 100px;
  454. width: 400px;
  455. height: 230px;
  456. "
  457. >
  458. <img
  459. :src="'api/file/pub/' + enterprise.label3.src"
  460. alt
  461. style="width: 100%; height: 100%"
  462. v-if="enterprise.label3.src"
  463. />
  464. <img
  465. :src="'api/file/pub/' + '/def/def3.png'"
  466. alt
  467. style="width: 100%; height: 100%"
  468. v-if="!enterprise.label3.src"
  469. />
  470. </div>
  471. <div
  472. style="float: left; margin-top: 15px; margin-left: 20px; width: 620px"
  473. class="enterprise_style_product"
  474. >
  475. <tr
  476. v-for="(item, index) in enterprise2"
  477. v-if="index < 6"
  478. class="cursor"
  479. @click="
  480. toViewDetail(
  481. 'enterpriseInformationDetails',
  482. item.baseEntityId,
  483. 'common.CoreTechnology'
  484. )
  485. "
  486. >
  487. <td
  488. style="
  489. float: left;
  490. width: 500px;
  491. display: inline-block;
  492. overflow: hidden;
  493. text-overflow: ellipsis;
  494. white-space: nowrap;
  495. "
  496. >
  497. {{ item.title }}
  498. </td>
  499. <!-- <td style="float: right;margin-left: 10px;">{{item.updateDate}}</td> -->
  500. <td style="float: right">{{ formatDate(item.createDate) }}</td>
  501. <td style="clear: both"></td>
  502. </tr>
  503. </div>
  504. </div>
  505. <div
  506. style="width: 100%; height: 320px; border-bottom: 1px solid #ccc"
  507. id="information04"
  508. v-if="enterprise4.length > 0"
  509. >
  510. <!-- -->
  511. <div class="enterprise_style">
  512. <span class="enterprise_style_span">{{
  513. $t('common.ScopeBusiness')
  514. }}</span>
  515. </div>
  516. <div
  517. v-if="enterprise4.length > 6"
  518. style="
  519. float: right;
  520. transform: translateY(-7px);
  521. margin-right: 61px;
  522. font-size: 14px;
  523. color: #2c558a;
  524. "
  525. @click="
  526. toViewMore(
  527. 'EnterPriseMoreInformationList',
  528. initData.baseEntityId,
  529. '4'
  530. )
  531. "
  532. class="cursor"
  533. >
  534. {{ $t('common.ViewMore') }}
  535. </div>
  536. <div
  537. style="
  538. float: left;
  539. margin-top: 15px;
  540. margin-left: 100px;
  541. width: 400px;
  542. height: 230px;
  543. "
  544. >
  545. <img
  546. :src="'api/file/pub/' + enterprise.label5.src"
  547. alt
  548. style="width: 100%; height: 100%"
  549. v-if="enterprise.label5.src"
  550. />
  551. <img
  552. :src="'api/file/pub/' + '/def/def2.png'"
  553. alt
  554. style="width: 100%; height: 100%"
  555. v-if="!enterprise.label5.src"
  556. />
  557. </div>
  558. <div
  559. style="float: left; margin-top: 15px; margin-left: 20px; width: 620px"
  560. class="enterprise_style_product"
  561. >
  562. <tr
  563. v-for="(item, index) in enterprise4"
  564. v-if="index < 5"
  565. class="cursor"
  566. @click="
  567. toViewDetail(
  568. 'enterpriseInformationDetails',
  569. item.baseEntityId,
  570. 'common.ProjectPerformance'
  571. )
  572. "
  573. >
  574. <td
  575. style="
  576. float: left;
  577. width: 500px;
  578. display: inline-block;
  579. overflow: hidden;
  580. text-overflow: ellipsis;
  581. white-space: nowrap;
  582. "
  583. >
  584. {{ item.title }}
  585. </td>
  586. <td style="float: right">{{ formatDate(item.createDate) }}</td>
  587. <td style="clear: both"></td>
  588. </tr>
  589. </div>
  590. </div>
  591. <!--<div style="width: 100%;height: 250px;display:none;">
  592. <div class="enterprise_style">
  593. <span class="enterprise_style_span">{{$t('common.RecommendedEnterprise')}}</span>
  594. </div>
  595. <div class="recommend">
  596. <ul>
  597. <li v-for="(item,index) in recommend" key="index">
  598. <img :src="'api/file/pub/' + item.photo" alt style="width: 100%;height: 115px;" />
  599. <div style="color: #bcbcbc;font-size: 14px;">{{item.num?item.num:0}}{{$t('common.Browse')}}</div>
  600. </li>
  601. </ul>
  602. </div>
  603. </div>-->
  604. </div>
  605. <!-- <el-dialog
  606. :title="$t('common.CompanyProfile')"
  607. :visible.sync="dialogVisible"
  608. width="60%">
  609. <span style="line-height: 29px;font-size: 18px;" v-html="initData.unitIntrodution"></span>
  610. </el-dialog> -->
  611. <FrameTemplate
  612. :dialogVisible="dialogVisible"
  613. width="60%"
  614. :title="$t('common.CompanyProfile')"
  615. @FrameBack="dialogVisible = false"
  616. >
  617. <span
  618. slot="center"
  619. style="line-height: 29px; font-size: 18px"
  620. v-html="initData.unitIntrodution"
  621. >
  622. </span>
  623. </FrameTemplate>
  624. <el-dialog
  625. :title="$i18n.locale == 'zh' ? '提示' : 'Reminder'"
  626. :visible.sync="toViewLogin"
  627. :width="$i18n.locale == 'zh' ? '500px' : '750px'"
  628. :height="$i18n.locale == 'zh' ? '300px' : '386px'"
  629. :before-close="toViewLoginChange"
  630. >
  631. <div style="width: 100%; height: 100%">
  632. <img
  633. src="@/assets/img/loginTips.png"
  634. alt=""
  635. style="width: 180px; height: 180px; margin-left: 20px"
  636. />
  637. <div
  638. style="float: right; margin-right: 20px"
  639. :style="
  640. $i18n.locale == 'zh'
  641. ? 'width: 49%;margin-top: 10px;'
  642. : 'width: 453px;margin-top: -25px;'
  643. "
  644. >
  645. <div
  646. style="
  647. font-size: 20px;
  648. font-weight: normal;
  649. color: #333333;
  650. font-family: HiraginoSansGB-W3, HiraginoSansGB;
  651. line-height: 40px;
  652. "
  653. >
  654. {{ $t('common.ReminderFirst') }}
  655. </div>
  656. <div
  657. style="
  658. font-size: 16px;
  659. font-family: HiraginoSansGB-W3, HiraginoSansGB;
  660. font-weight: normal;
  661. color: #666666;
  662. line-height: 30px;
  663. "
  664. >
  665. {{ $t('common.ReminderSecond') }}
  666. <span style="color: #0091ff; font-size: 18px">{{ num }}</span>
  667. {{ $t('common.ReminderThird') }}
  668. </div>
  669. <div
  670. style="
  671. font-size: 14px;
  672. font-family: HiraginoSansGB-W3, HiraginoSansGB;
  673. font-weight: normal;
  674. color: #666666;
  675. line-height: 30px;
  676. "
  677. >
  678. {{ $t('common.ReminderForth') }}
  679. </div>
  680. <div
  681. style="
  682. font-size: 14px;
  683. font-family: HiraginoSansGB-W3, HiraginoSansGB;
  684. height: 33px;
  685. line-height: 60px;
  686. font-weight: normal;
  687. color: #0091ff;
  688. "
  689. >
  690. <span
  691. style="margin-left: 40px"
  692. class="cursor"
  693. @click="toView('login')"
  694. >
  695. {{ $t('common.ReminderFifth') }}
  696. </span>
  697. <span
  698. style="margin-left: 10px"
  699. class="cursor"
  700. @click="toView('Register')"
  701. >
  702. {{ $t('common.ReminderSixth') }}
  703. </span>
  704. </div>
  705. </div>
  706. </div>
  707. </el-dialog>
  708. </div>
  709. </template>
  710. <script>
  711. import { Swiper, SwiperSlide, directive } from 'vue-awesome-swiper'
  712. // import 'swiper/dist/css/swiper.css'
  713. import 'vue-awesome-swiper/node_modules/swiper/dist/css/swiper.css'
  714. import Base from '@/views/base/Base'
  715. import {
  716. getBaseUnitViews,
  717. get,
  718. saveOrUpdate,
  719. del,
  720. cmsInformationViews,
  721. getUnit,
  722. gateGetUnitViewById,
  723. } from '@/api/baseUnitView'
  724. import moment from 'moment'
  725. import Clipboard from 'clipboard'
  726. import FrameTemplate from '@/components/FrameTemplate'
  727. import { formatDate } from '@/utils/formatUtils'
  728. import { saveFollowModelLanguage } from '@/api/operation/basePortalModelFollowInfo'
  729. import { getToken } from '@/utils/auth'
  730. import { getFollowModeNumlByModelIdAndUserId } from '@/api/operation/basePortalModelFollowInfo'
  731. import { addIntegral, addGrowth } from '@/utils/toCompleteTask'
  732. import { getUserPointPage } from '@/api/user'
  733. import _ from 'lodash'
  734. export default {
  735. name: 'EnterpriseDetails',
  736. extends: Base,
  737. components: { FrameTemplate },
  738. data() {
  739. return {
  740. num: 5,
  741. language: this.$i18n.locale.toUpperCase(),
  742. toViewLogin: false,
  743. timer: '',
  744. dialogVisible: false,
  745. enterpriseDetails: '',
  746. img: [],
  747. key: this.$route.query.key,
  748. page: {
  749. businessType: 'unitShow',
  750. businessId: '',
  751. // typeDict:1,
  752. },
  753. ifcommon: false,
  754. initData: {},
  755. enterprise: {
  756. label1: {
  757. label: '',
  758. src: '',
  759. },
  760. label2: {
  761. src: '',
  762. },
  763. label3: {
  764. src: '',
  765. },
  766. label4: {
  767. src: '',
  768. },
  769. label5: {
  770. src: '',
  771. },
  772. },
  773. recommend: [],
  774. enterprise1: [],
  775. enterprise2: [],
  776. enterprise3: [],
  777. enterprise4: [],
  778. UnitTypeNumber: {},
  779. user: {
  780. umsUser: {},
  781. },
  782. pointStatus: null,
  783. isToken: null,
  784. }
  785. },
  786. updated() {
  787. this.Swiper()
  788. },
  789. mounted() {
  790. this.initData1()
  791. this.page.businessId = this.key
  792. this.$store.commit('modify', 'enterpriseDetails')
  793. window.localStorage.setItem('router', 'enterpriseDetails')
  794. this.getData()
  795. console.log(this.$store.state.routerItem)
  796. // window.sessionStorage.setItem('routerItem', 'enterprise');
  797. },
  798. watch: {
  799. '$i18n.locale'() {
  800. this.getData()
  801. this.language = this.$i18n.locale.toUpperCase()
  802. },
  803. toViewLogin() {
  804. if (this.toViewLogin == true) {
  805. this.loginTipsChange()
  806. }
  807. },
  808. },
  809. methods: {
  810. initData1() {
  811. this.isToken = getToken()
  812. if (this.isToken) {
  813. getUserPointPage().then((res) => {
  814. this.pointStatus = res.data.umsUserPoints[0].pointStatus
  815. })
  816. }
  817. },
  818. // 未登录跳转
  819. loginTipsChange() {
  820. const that = this
  821. this.num = 5
  822. // clearInterval(timer_interval);
  823. this.timer = setInterval(function () {
  824. if (that.num > 0) {
  825. that.num--
  826. } else {
  827. if (that.toViewLogin == true) {
  828. clearInterval(that.timer)
  829. that.toView('login')
  830. } else {
  831. clearInterval(that.timer)
  832. }
  833. }
  834. }, 1000)
  835. },
  836. // 判断未登录跳转是否关闭
  837. toViewLoginChange(done) {
  838. this.toViewLogin = false
  839. this.num = 5
  840. clearInterval(this.timer)
  841. },
  842. dialogVisibleChange() {
  843. this.dialogVisible = true
  844. },
  845. Swiper() {
  846. var galleryThumbs = new Swiper('.gallery-thumbs', {
  847. spaceBetween: 10,
  848. slidesPerView: 4,
  849. freeMode: true,
  850. watchSlidesVisibility: true,
  851. watchSlidesProgress: true,
  852. autoplay: {
  853. //自动播放
  854. delay: 4000,
  855. disableOnInteraction: false, //用户操作后是否停止 默认停止(true)
  856. },
  857. })
  858. var galleryTop = new Swiper('.gallery-top', {
  859. spaceBetween: 10,
  860. navigation: {
  861. nextEl: '.swiper-button-next',
  862. prevEl: '.swiper-button-prev',
  863. },
  864. autoplay: {
  865. //自动播放
  866. delay: 4000,
  867. disableOnInteraction: false, //用户操作后是否停止 默认停止(true)
  868. },
  869. thumbs: {
  870. swiper: galleryThumbs,
  871. },
  872. })
  873. },
  874. getData() {
  875. const that = this
  876. gateGetUnitViewById(this.key, this.$i18n.locale.toUpperCase()).then(
  877. (res) => {
  878. that.initData = res.data.baseUnitView
  879. that.initData.unitIntrodutionMin = that.initData.unitIntrodution
  880. ? that.initData.unitIntrodution
  881. .replace(/<[^>]+>/g, '')
  882. .replace(/&nbsp;/gi, '')
  883. : ''
  884. that.enterpriseDetails = that.initData.unitName
  885. that.initData.unitLabel = that.initData.unitLabel
  886. ? that.initData.unitLabel.split(',')
  887. : ''
  888. that.enterprise.label1.label = res.data.baseUnitView.unitIntrodution
  889. let user = window.localStorage.getItem('user')
  890. if (user) {
  891. var users = JSON.parse(user)
  892. var token = '' + getToken()
  893. var projectId = this.initData.baseEntityId
  894. let userId = users.userId
  895. getFollowModeNumlByModelIdAndUserId(
  896. projectId,
  897. 'enterprise',
  898. this.userId
  899. ).then((res) => {
  900. this.ifcommon = res.data
  901. console.log(
  902. res.data,
  903. '---------------------------------------------------------------------------'
  904. )
  905. })
  906. }
  907. }
  908. )
  909. // // 获取企业信息数量
  910. getUnit(this.key, this.$i18n.locale.toUpperCase()).then((res) => {
  911. this.UnitTypeNumber = res.data
  912. })
  913. // 获取企业详情信息
  914. this.getDataList(3)
  915. // 获取推荐企业
  916. // this.getRecommended();
  917. },
  918. getDataList(num) {
  919. // this.page.typeDict=num;
  920. this.img = []
  921. const that = this
  922. this.page.language = this.$i18n.locale.toUpperCase()
  923. cmsInformationViews(this.page).then((res) => {
  924. if (res.data[1]) {
  925. this.enterprise1 = res.data[1] || []
  926. let url = res.data[1].filter((item) => {
  927. return (
  928. item.pictureUrl !== undefined ||
  929. item.pictureUrl !== null ||
  930. item.pictureUrl !== ''
  931. )
  932. })
  933. if (url.length > 0) {
  934. that.enterprise.label2.src = url[0].pictureUrl
  935. } else {
  936. that.enterprise.label2.src = '/def/def2.png'
  937. }
  938. } else {
  939. this.enterprise1 = []
  940. that.$forceUpdate()
  941. }
  942. if (res.data[2]) {
  943. that.enterprise2 = res.data[2] || []
  944. let url = res.data[2].filter((item, index) => {
  945. return (
  946. item.pictureUrl !== undefined ||
  947. item.pictureUrl !== null ||
  948. item.pictureUrl !== ''
  949. )
  950. })
  951. if (url.length > 0) {
  952. that.enterprise.label3.src = url[0].pictureUrl
  953. } else {
  954. that.enterprise.label3.src = '/def/def3.png'
  955. }
  956. } else {
  957. that.enterprise2 = []
  958. that.$forceUpdate()
  959. // that.enterprise.label3.src="/def/def3.png";
  960. }
  961. if (res.data[3]) {
  962. that.enterprise3 = res.data[3] || []
  963. let url = res.data[3].filter((item, index) => {
  964. return (
  965. item.pictureUrl !== undefined ||
  966. item.pictureUrl !== null ||
  967. item.pictureUrl !== ''
  968. )
  969. })
  970. if (url.length > 0) {
  971. that.enterprise.label4.src = url[0].pictureUrl
  972. } else {
  973. that.enterprise.label4.src = '/def/def4.png'
  974. }
  975. } else {
  976. this.enterprise3 = []
  977. that.$forceUpdate()
  978. }
  979. if (res.data[4]) {
  980. that.enterprise4 = res.data[4] || []
  981. let url = res.data[4].filter((item, index) => {
  982. return (
  983. item.pictureUrl !== undefined ||
  984. item.pictureUrl !== null ||
  985. item.pictureUrl !== ''
  986. )
  987. })
  988. if (url.length > 0) {
  989. that.enterprise.label5.src = url[0].pictureUrl
  990. } else {
  991. that.enterprise.label5.src = '/def/def2.png'
  992. }
  993. } else {
  994. this.enterprise4 = []
  995. that.$forceUpdate()
  996. }
  997. that.img = []
  998. if (res.data[1]) {
  999. res.data[1].forEach((item, index) => {
  1000. if (item) {
  1001. if (item.pictureUrl) {
  1002. that.img.push(item.pictureUrl)
  1003. }
  1004. }
  1005. })
  1006. }
  1007. if (res.data[2]) {
  1008. res.data[2].forEach((item, index) => {
  1009. if (item) {
  1010. if (item.pictureUrl) {
  1011. that.img.push(item.pictureUrl)
  1012. }
  1013. }
  1014. })
  1015. }
  1016. if (res.data[3]) {
  1017. res.data[3].forEach((item, index) => {
  1018. if (item) {
  1019. if (item.pictureUrl) {
  1020. that.img.push(item.pictureUrl)
  1021. }
  1022. }
  1023. })
  1024. }
  1025. if (res.data[4]) {
  1026. res.data[4].forEach((item, index) => {
  1027. if (item) {
  1028. if (item.pictureUrl) {
  1029. that.img.push(item.pictureUrl)
  1030. }
  1031. }
  1032. })
  1033. }
  1034. })
  1035. this.getRecommended()
  1036. },
  1037. getRecommended() {
  1038. this.page.recommendFlag = 'y'
  1039. const that = this
  1040. getBaseUnitViews(this.page).then((res) => {
  1041. if (res.data.baseUnitViews) {
  1042. that.recommend = res.data.baseUnitViews
  1043. console.log(res.data.baseUnitViews, that.init)
  1044. }
  1045. this.loading = false
  1046. })
  1047. },
  1048. getIconUrls(url) {
  1049. return require('@/assets/img/realTimeInfo/' + url)
  1050. },
  1051. getIconUrl(url) {
  1052. return 'http://localhost:8080' + 'api/file/pub/' + url
  1053. },
  1054. toView(router, json) {
  1055. clearInterval(this.timer)
  1056. this.$router.push({ name: router, params: { key: json } })
  1057. },
  1058. screenBack(data) {
  1059. console.log(data, 'screenBackscreenBackscreenBackscreenBack')
  1060. },
  1061. toViewDetail(router, json, name) {
  1062. this.$store.commit('modify', router)
  1063. window.localStorage.setItem('router', router)
  1064. const { href } = this.$router.resolve({
  1065. name: router,
  1066. query: {
  1067. key: json,
  1068. name: name,
  1069. },
  1070. })
  1071. window.open(href, '_blank')
  1072. },
  1073. toViewMore(router, json, businessType) {
  1074. this.$store.commit('modify', router)
  1075. window.localStorage.setItem('router', router)
  1076. const { href } = this.$router.resolve({
  1077. name: 'EnterPriseMoreInformationList',
  1078. query: {
  1079. key: json,
  1080. businessType: businessType,
  1081. },
  1082. })
  1083. window.open(href, '_blank')
  1084. },
  1085. screen(i) {
  1086. this.index = i
  1087. },
  1088. // 项目收藏改变
  1089. // shareChange() {
  1090. // if (this.ifcommon) {
  1091. // this.saveFollowModelDo("unfollow");
  1092. // } else {
  1093. // this.saveFollowModelDo("follow");
  1094. // }
  1095. // },
  1096. shareChange: _.throttle(function () {
  1097. if (this.ifcommon) {
  1098. this.saveFollowModelDo('unfollow')
  1099. } else {
  1100. this.saveFollowModelDo('follow')
  1101. }
  1102. }, 3000),
  1103. saveFollowModelDo: function (followType) {
  1104. let user = window.localStorage.getItem('user')
  1105. let that = this
  1106. if (!this.$Cookies.get('token')) {
  1107. // this.$message.warning("请先登录");
  1108. // this.$confirm('检测到您未登录,是否登录')
  1109. // .then(_ => {
  1110. // this.toView('login');
  1111. // })
  1112. // .catch(_ => {});
  1113. this.toViewLogin = true
  1114. } else {
  1115. var users = JSON.parse(user)
  1116. var token = '' + getToken()
  1117. var projectId = this.initData.baseEntityId
  1118. var userId = users.userId
  1119. // 接口逻辑
  1120. this.submitHandler((token) => {
  1121. saveFollowModelLanguage(
  1122. that.language,
  1123. projectId,
  1124. 'enterprise',
  1125. userId,
  1126. followType,
  1127. token
  1128. )
  1129. .then((result) => {
  1130. if (followType == 'unfollow') {
  1131. if (this.$i18n.locale == 'zh') {
  1132. this.$message({
  1133. message: '取消关注成功',
  1134. type: 'success',
  1135. })
  1136. } else {
  1137. this.$message({
  1138. message: 'Cancel the follow successfully',
  1139. type: 'success',
  1140. })
  1141. }
  1142. } else {
  1143. if (
  1144. this.user.umsUser.userUsertypeDict !== '2' &&
  1145. this.pointStatus == 'y'
  1146. ) {
  1147. addIntegral('point_task_attention', '3')
  1148. }
  1149. if (this.$i18n.locale == 'zh') {
  1150. this.$message({
  1151. message: '关注成功',
  1152. type: 'success',
  1153. })
  1154. } else {
  1155. this.$message({
  1156. message: 'Follow of success',
  1157. type: 'success',
  1158. })
  1159. }
  1160. }
  1161. this.ifcommon = !this.ifcommon
  1162. this.resetToken()
  1163. })
  1164. .catch((error) => {
  1165. // 此处你的业务代码
  1166. })
  1167. })
  1168. }
  1169. },
  1170. },
  1171. }
  1172. </script>
  1173. <!-- Add "scoped" attribute to limit CSS to this component only -->
  1174. <style scoped>
  1175. .box {
  1176. margin-top: 10px;
  1177. background: #fff;
  1178. /* height: 500px; */
  1179. padding: 20px 0;
  1180. }
  1181. .crumbs {
  1182. margin-left: 20px;
  1183. }
  1184. body {
  1185. margin: 0;
  1186. }
  1187. .swipers {
  1188. position: absolute;
  1189. top: 30px;
  1190. left: 100px;
  1191. width: 460px;
  1192. height: 390px;
  1193. }
  1194. .details {
  1195. position: absolute;
  1196. top: 30px;
  1197. left: 600px;
  1198. width: 490px;
  1199. height: 390px;
  1200. }
  1201. .swiper-container {
  1202. width: 100%;
  1203. height: 300px;
  1204. margin-left: auto;
  1205. margin-right: auto;
  1206. }
  1207. .swiper-slide {
  1208. background-size: cover;
  1209. background-position: center;
  1210. }
  1211. .gallery-top {
  1212. height: 80%;
  1213. width: 100%;
  1214. }
  1215. .gallery-thumbs {
  1216. height: 20%;
  1217. box-sizing: border-box;
  1218. padding: 10px 0;
  1219. }
  1220. .gallery-thumbs .swiper-slide {
  1221. width: 25%;
  1222. height: 100%;
  1223. opacity: 0.4;
  1224. }
  1225. .gallery-thumbs .swiper-slide-thumb-active {
  1226. opacity: 1;
  1227. }
  1228. .initData_label {
  1229. color: #2c558a;
  1230. font-weight: 700;
  1231. font-size: 22px;
  1232. line-height: 42px;
  1233. }
  1234. .enterprise_style {
  1235. line-height: 50px;
  1236. color: #6c819d;
  1237. padding-left: 100px;
  1238. font-size: 18px;
  1239. font-weight: 700;
  1240. margin-top: 5px;
  1241. }
  1242. .enterprise_style_span {
  1243. display: inline-block;
  1244. padding: 0 10px;
  1245. text-align: center;
  1246. height: 50px;
  1247. border-bottom: 2px solid #6699ff;
  1248. }
  1249. .enterprise_style_product tr {
  1250. line-height: 30px;
  1251. width: 100%;
  1252. display: inline-block;
  1253. border-bottom: 1px dashed #ccc;
  1254. font-size: 14px;
  1255. color: #2c558a;
  1256. margin-bottom: 5px;
  1257. }
  1258. .recommend {
  1259. margin-top: 15px;
  1260. margin-left: 100px;
  1261. }
  1262. .recommend li {
  1263. display: inline-block;
  1264. width: 170px;
  1265. /* height: 130px; */
  1266. text-align: center;
  1267. margin-right: 15px;
  1268. }
  1269. .share:hover {
  1270. color: #2c558a;
  1271. }
  1272. >>> .el-dialog__body {
  1273. word-break: normal;
  1274. padding: 0px 20px 10px;
  1275. }
  1276. </style>