direct.vue 43 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439
  1. <template>
  2. <div id="hall" style="background-color: #fff">
  3. <el-row>
  4. <el-col :span="24">
  5. <div class="livetop">
  6. <div class="w_1200">
  7. <!-- <el-col v-if="">
  8. <el-col v-else-if="">
  9. <el-col else> -->
  10. <el-col :span="24" class="title">
  11. <!-- 吉林省计算中心对接直播大厅 -->
  12. {{ title }}
  13. </el-col>
  14. <el-col :span="24" class="zhuban">
  15. <span>主办方:</span>
  16. <span>吉林省计算中心直播大厅</span>
  17. </el-col>
  18. <el-col :span="24" class="num">
  19. <p>
  20. <span>同时在线</span>
  21. <span>1人</span>
  22. </p>
  23. <p>
  24. <span>特邀嘉宾</span>
  25. <span>{{ expertList.length }}人</span>
  26. </p>
  27. <p>
  28. <span>洽谈合作</span>
  29. <span>{{ qiatan }}项</span>
  30. </p>
  31. <p>
  32. <span>达成意愿</span>
  33. <span>{{ dacheng }}项</span>
  34. </p>
  35. <p>
  36. <span>交易完成</span>
  37. <span>{{ chengguo }}项</span>
  38. </p>
  39. <p>
  40. <span>参展项目</span>
  41. <span>{{ xuqiu }}项</span>
  42. </p>
  43. </el-col>
  44. </div>
  45. </div>
  46. <div class="w_1200">
  47. <el-col :span="24" class="livemain">
  48. <el-col :span="24" class="livevideo">
  49. <el-col :span="24" class="left">
  50. <el-col :span="24" class="title" @click.native="btnDirectDetail">
  51. <span style="color: rgb(255, 132, 0);">现场</span>
  52. <span>直播</span>
  53. </el-col>
  54. <el-col :span="24" class="video">
  55. <video :src="file_path" controls="controls" style="height: 395px; width: 100%;">
  56. 您的浏览器不支持 video 标签。
  57. </video>
  58. <!-- <videoPlayer ref="videoPlayer" :options="videoOptions" class="vjs-custom-skin videoPlayer" :playsinline="true" /> -->
  59. </el-col>
  60. </el-col>
  61. <el-col :span="24" class="right">
  62. <el-col :span="24">
  63. <!-- <span>交易实况</span> -->
  64. <el-tabs v-model="activeName" @tab-click="handleClicks">
  65. <el-tab-pane label="交易实况" name="first">
  66. <el-col :span="24">
  67. <ul>
  68. <li v-for="(item, index) in directlist" :key="index">
  69. <span> {{ item.time }}</span>
  70. <span>{{ item.market_username }}</span> <span>与</span><span>{{ item.username }}</span
  71. ><span>{{ item.status === '1' ? '达成意向' : item.status === '2' ? '合作成功' : 'underdind' }}</span>
  72. </li>
  73. </ul>
  74. </el-col>
  75. </el-tab-pane>
  76. <el-tab-pane label="达成意向" name="second">
  77. <el-col :span="24" class="yixiang">
  78. <ul>
  79. <li v-for="(item, index) in yixianglist" :key="index">
  80. <span> {{ item.time }}</span>
  81. <span>{{ item.market_username }}</span> <span>与</span><span>{{ item.username }}</span
  82. ><span>{{ item.status === '1' ? '达成意向' : item.status === '2' ? '合作成功' : 'underdind' }}</span>
  83. </li>
  84. </ul>
  85. </el-col>
  86. </el-tab-pane>
  87. <el-tab-pane label="合作成功" name="third">
  88. <el-col :span="24" class="yixiang">
  89. <ul>
  90. <li v-for="(item, index) in successlist" :key="index">
  91. <span> {{ item.time }}</span>
  92. <span>{{ item.market_username }}</span> <span>与</span><span>{{ item.username }}</span
  93. ><span>{{ item.status === '1' ? '达成意向' : item.status === '2' ? '合作成功' : 'underdind' }}</span>
  94. </li>
  95. </ul>
  96. </el-col>
  97. </el-tab-pane>
  98. <!-- <el-tab-pane label="推流测试" name="four"> </el-tab-pane>
  99. <el-tab-pane label="拉流测试" name="five"> </el-tab-pane>
  100. <el-tab-pane label="推流测试2" name="six"> </el-tab-pane> -->
  101. </el-tabs>
  102. </el-col>
  103. <!-- -->
  104. </el-col>
  105. </el-col>
  106. <el-col :span="24" class="newimage">
  107. <el-image :src="superOne" style="width:100%;height:100px;position:relative;"> </el-image>
  108. <el-link :underline="false" href="user.docx">
  109. 使用手册
  110. </el-link>
  111. </el-col>
  112. <el-col :span="24" class="tabsData">
  113. <el-tabs type="border-card" @tab-click="handleClick">
  114. <el-tab-pane label="找技术">
  115. <el-col :span="24" class="one">
  116. <el-row class="jishulist">
  117. <el-col :span="24" class="topList">
  118. <el-col :span="24" class="list" v-for="(item, index) in jishulist" :key="index">
  119. <el-col :span="16" class="name">
  120. <p>
  121. <span class="inname"> {{ item.name }}</span>
  122. </p>
  123. </el-col>
  124. <el-col :span="4" class="names">
  125. <p>
  126. <span>
  127. 合作方式:
  128. {{
  129. item.coopermode == '0'
  130. ? '技术转让'
  131. : item.coopermode == '1'
  132. ? '技术服务'
  133. : item.coopermode == '2'
  134. ? '技术许可'
  135. : item.coopermode == '3'
  136. ? '技术融资'
  137. : item.coopermode == '4'
  138. ? '其他'
  139. : '暂无'
  140. }}</span
  141. >
  142. </p>
  143. </el-col>
  144. <el-col :span="4" class="click">
  145. <el-button size="mini" type="primary" @click="oneBtnDetail(item)">详情</el-button>
  146. <el-button
  147. size="mini"
  148. type="success"
  149. @click="$router.push({ path: '/live/hall/dock/dockDetail', query: { id: item.id, dockid: id, user_id: user_id } })"
  150. >对接</el-button
  151. >
  152. </el-col>
  153. </el-col>
  154. </el-col>
  155. <el-col :span="24" class="btn">
  156. <el-button
  157. type="primary"
  158. size="mini"
  159. @click="$router.push({ path: '/hall/productList/technologyList', query: { column_name: '技术' } })"
  160. >查看所有项目</el-button
  161. >
  162. </el-col>
  163. </el-row>
  164. </el-col>
  165. </el-tab-pane>
  166. <el-tab-pane label="找产品">
  167. <el-col :span="24" class="one">
  168. <el-row>
  169. <el-col :span="24" class="demandList">
  170. <el-col :span="24" class="topList">
  171. <el-col :span="24" class="list" v-for="(item, index) in demandList" :key="index">
  172. <el-col :span="20" class="name">
  173. <p>{{ item.name }}</p>
  174. </el-col>
  175. <el-col :span="4" class="click">
  176. <el-button size="mini" type="primary" @click="oneBtnDetail(item)">详情</el-button>
  177. <el-button
  178. size="mini"
  179. type="success"
  180. @click="$router.push({ path: '/live/hall/dock/dockDetail', query: { id: item.id, dockid: id, user_id: user_id } })"
  181. >对接</el-button
  182. >
  183. </el-col>
  184. <el-col :span="16" class="otherInfo">
  185. <el-col :span="12">
  186. <p class="field">
  187. <span>所属领域:</span
  188. ><span>{{
  189. item.field == '0'
  190. ? '先进制造'
  191. : item.field == '1'
  192. ? '新材料'
  193. : item.field == '2'
  194. ? '光电子'
  195. : item.field == '3'
  196. ? '信息技术'
  197. : item.field == '4'
  198. ? '文化和科技融合'
  199. : '暂无'
  200. }}</span>
  201. </p>
  202. </el-col>
  203. <el-col :span="12">
  204. <p class="coopermode">
  205. <span>合作方式:</span
  206. ><span>
  207. {{
  208. item.coopermode == '0'
  209. ? '技术转让'
  210. : item.coopermode == '1'
  211. ? '技术服务'
  212. : item.coopermode == '2'
  213. ? '技术许可'
  214. : item.coopermode == '3'
  215. ? '技术融资'
  216. : item.coopermode == '4'
  217. ? '其他'
  218. : '暂无'
  219. }}
  220. </span>
  221. </p>
  222. </el-col>
  223. </el-col>
  224. <el-col :span="8" class="introduction">
  225. <p><span>简介:</span>{{ item.introduction }}</p>
  226. </el-col>
  227. </el-col>
  228. </el-col>
  229. <el-col :span="24" class="btn">
  230. <el-button
  231. type="primary"
  232. size="mini"
  233. @click="$router.push({ path: '/hall/productList/technologyList', query: { column_name: '产品' } })"
  234. >查看所有项目</el-button
  235. >
  236. </el-col>
  237. </el-col>
  238. </el-row>
  239. </el-col>
  240. </el-tab-pane>
  241. <el-tab-pane label="找服务">
  242. <el-col :span="24" class="one">
  243. <el-row>
  244. <el-col :span="24" class="serviceList">
  245. <el-col :span="24" class="topList">
  246. <el-col :span="24" class="list" v-for="(item, index) in serviceList" :key="index">
  247. <el-col :span="20" class="name">
  248. <p>{{ item.name }}</p>
  249. </el-col>
  250. <el-col :span="4" class="click">
  251. <el-button size="mini" type="primary" @click="oneBtnDetail(item)">详情</el-button>
  252. <el-button
  253. size="mini"
  254. type="success"
  255. @click="$router.push({ path: '/live/hall/dock/dockDetail', query: { id: item.id, dockid: id, user_id: user_id } })"
  256. >对接</el-button
  257. >
  258. </el-col>
  259. <el-col :span="16" class="otherInfo">
  260. <el-col :span="12">
  261. <p class="field">
  262. <span>所属领域:</span
  263. ><span>{{
  264. item.field == '0'
  265. ? '先进制造'
  266. : item.field == '1'
  267. ? '新材料'
  268. : item.field == '2'
  269. ? '光电子'
  270. : item.field == '3'
  271. ? '信息技术'
  272. : item.field == '4'
  273. ? '文化和科技融合'
  274. : '暂无'
  275. }}</span>
  276. </p>
  277. </el-col>
  278. </el-col>
  279. <el-col :span="8" class="introduction">
  280. <p><span>简介:</span>{{ item.introduction }}</p>
  281. </el-col>
  282. </el-col>
  283. </el-col>
  284. <el-col :span="24" class="btn">
  285. <el-button
  286. type="primary"
  287. size="mini"
  288. @click="$router.push({ path: '/hall/productList/technologyList', query: { column_name: '服务' } })"
  289. >查看所有项目</el-button
  290. >
  291. </el-col>
  292. </el-col>
  293. </el-row>
  294. </el-col>
  295. </el-tab-pane>
  296. <el-tab-pane label="找专家">
  297. <el-col :span="24" class="two">
  298. <el-col :span="12" class="twoList" v-for="(item, index) in expertList" :key="index">
  299. <el-col :span="4" class="image">
  300. <el-image
  301. :src="item.img_path"
  302. style="height: 92px;
  303. "
  304. ></el-image>
  305. </el-col>
  306. <el-col :span="20" class="info">
  307. <p>
  308. <span class="textOver">{{ item.name }}</span>
  309. <el-button size="mini" type="success" @click="zhuanjiaduijies(item)">对接</el-button>
  310. <el-button size="mini" type="primary" @click="twoBtnDetail(item)" style="margin:0 5px 0 5px">详情</el-button>
  311. </p>
  312. <p>
  313. <span>性别:{{ item.gender }}</span>
  314. <span>院校:{{ item.school }}</span>
  315. </p>
  316. <p>
  317. <span>职务:{{ item.position }}</span>
  318. <span>从事专业:{{ item.professional }}</span>
  319. </p>
  320. </el-col>
  321. </el-col>
  322. <el-col :span="24" class="onmore">
  323. <el-button
  324. type="primary"
  325. size="mini"
  326. @click="$router.push({ path: '/hall/productList/expertList', query: { dockid: id, user_id: user_id } })"
  327. >查看所有项目</el-button
  328. >
  329. </el-col>
  330. </el-col>
  331. </el-tab-pane>
  332. </el-tabs>
  333. <el-col :span="24" class="marketPublish">
  334. <el-col :span="18"> <el-input v-model="name" placeholder="请输入名称" style="height:30px" class="newinput"></el-input></el-col>
  335. <el-col :span="6"><el-button class="btnSearch" size="mini" @click="resetForm(name)">查询</el-button></el-col>
  336. </el-col>
  337. </el-col>
  338. <el-col :span="24" class="newimage2">
  339. <el-image :src="two" style="width:100%;height:100px;position:relative;"> </el-image>
  340. </el-col>
  341. <div class="fangtan">
  342. <el-col :span="7" class="jiabin">
  343. <p class="jiabintop">
  344. <span>嘉宾访谈</span>
  345. <el-link :underline="false">MORE</el-link>
  346. </p>
  347. <div class="jiabinlist">
  348. <ul>
  349. <li v-for="(ref, index) in jiabinlist" :key="index">
  350. <img :src="ref.url" />
  351. <p>
  352. <span class="textOver">{{ ref.title }}</span>
  353. <span>{{ ref.date }}</span>
  354. <span class="text">{{ ref.context }} </span>
  355. </p>
  356. </li>
  357. </ul>
  358. </div>
  359. </el-col>
  360. <el-col :span="7" class="jiabin luyan">
  361. <p class="jiabintop luyanTop">
  362. <span>项目路演</span>
  363. <el-link :underline="false">MORE</el-link>
  364. </p>
  365. <div class="luyanList">
  366. <ul>
  367. <li v-for="(item, index) in luyanList" :key="index">
  368. <p>
  369. <span>{{ item.title }}</span>
  370. <span>浏览:{{ item.num }}</span>
  371. </p>
  372. <p>
  373. <span>所在地区:{{ item.city }} | 所属行业:{{ item.hy }}</span>
  374. <span>项目融资方式:{{ item.xurz }}</span>
  375. </p>
  376. </li>
  377. </ul>
  378. </div>
  379. </el-col>
  380. <el-col :span="7" class="chat">
  381. <chat></chat>
  382. </el-col>
  383. </div>
  384. </el-col>
  385. </div>
  386. </el-col>
  387. <div class="pz_down">
  388. <live-foot></live-foot>
  389. </div>
  390. </el-row>
  391. <el-dialog title="信息详情" :visible.sync="dialogVisible" width="50%" :before-close="handleClose">
  392. <directDetail :directInfo="directInfo"></directDetail>
  393. </el-dialog>
  394. <el-dialog title="专家信息" :visible.sync="dialogExport" width="50%" :before-close="handleCloseExport">
  395. <exportDetail :exportInfo="exportInfo"></exportDetail>
  396. </el-dialog>
  397. </div>
  398. </template>
  399. <script>
  400. import 'video.js/dist/video-js.css';
  401. import 'vue-video-player/src/custom-theme.css';
  402. import { videoPlayer } from 'vue-video-player';
  403. import 'videojs-flash';
  404. import liveFoot from '@/layout/live/foot.vue';
  405. import chat from '@/components/parts/chat.vue';
  406. import directDetail from '@/layout/direct/directDetail.vue';
  407. import exportDetail from '@/layout/direct/exportDetail.vue';
  408. import { mapState, createNamespacedHelpers } from 'vuex';
  409. const { mapActions: transaction } = createNamespacedHelpers('transaction');
  410. const { mapActions: mapProduct } = createNamespacedHelpers('marketproduct');
  411. const { mapActions: market } = createNamespacedHelpers('market');
  412. const { mapActions: dock } = createNamespacedHelpers('dock');
  413. const { mapActions: expertsuser } = createNamespacedHelpers('expertsuser');
  414. import moment from 'moment';
  415. import _ from 'loadsh';
  416. export default {
  417. name: 'hall',
  418. props: {},
  419. filters: {
  420. getDate(meta) {
  421. let createdAt = _.get(meta, `createdAt`);
  422. let date = new Date(createdAt)
  423. .toLocaleDateString()
  424. .replace('/', '-')
  425. .replace('/', '-');
  426. return date;
  427. },
  428. },
  429. components: {
  430. chat,
  431. liveFoot,
  432. directDetail, //技术,产品,服务详情
  433. exportDetail, //专家详情
  434. // videoPlayer,
  435. },
  436. data: () => ({
  437. activeName: 'second',
  438. name: '',
  439. // 详情显示
  440. dialogVisible: false,
  441. // 技术,产品,服务详情
  442. directInfo: {},
  443. // 专家详情
  444. dialogExport: false,
  445. exportInfo: {},
  446. //搜索判断用
  447. panduan: '找技术',
  448. // 找技术
  449. jishulist: [],
  450. // 找产品
  451. demandList: [],
  452. // 找服务
  453. serviceList: [],
  454. // 找专家
  455. expertList: [],
  456. //对接会创建人id
  457. user_id: '',
  458. // 路演
  459. luyanList: [
  460. {
  461. title: '项目路演',
  462. num: '1234',
  463. city: '吉林省',
  464. hy: '所属行业',
  465. xurz: '股权融资',
  466. },
  467. {
  468. title: '项目路演',
  469. num: '1234',
  470. city: '吉林省',
  471. hy: '所属行业',
  472. xurz: '股权融资',
  473. },
  474. {
  475. title: '项目路演',
  476. num: '1234',
  477. city: '吉林省',
  478. hy: '所属行业',
  479. xurz: '股权融资',
  480. },
  481. {
  482. title: '项目路演',
  483. num: '1234',
  484. city: '吉林省',
  485. hy: '所属行业',
  486. xurz: '股权融资',
  487. },
  488. ],
  489. // 交易实况
  490. directlist: [
  491. {
  492. time: '2019-03-05',
  493. name1: '中科院宁波先进制造所',
  494. name2: '深圳市华尔威体育用品',
  495. },
  496. {
  497. time: '2019-03-05',
  498. name1: '中科院宁波先进制造所',
  499. name2: '深圳市华尔威体育用品',
  500. },
  501. {
  502. time: '2019-03-05',
  503. name1: '中科院宁波先进制造所',
  504. name2: '深圳市华尔威体育用品',
  505. },
  506. {
  507. time: '2019-03-05',
  508. name1: '中科院宁波先进制造所',
  509. name2: '深圳市华尔威体育用品',
  510. },
  511. {
  512. time: '2019-03-05',
  513. name1: '中科院宁波先进制造所',
  514. name2: '深圳市华尔威体育用品',
  515. },
  516. {
  517. time: '2019-03-05',
  518. name1: '中科院宁波先进制造所',
  519. name2: '深圳市华尔威体育用品',
  520. },
  521. {
  522. time: '2019-03-05',
  523. name1: '中科院宁波先进制造所',
  524. name2: '深圳市华尔威体育用品',
  525. },
  526. {
  527. time: '2019-03-05',
  528. name1: '中科院宁波先进制造所',
  529. name2: '深圳市华尔威体育用品',
  530. },
  531. {
  532. time: '2019-03-05',
  533. name1: '中科院宁波先进制造所',
  534. name2: '深圳市华尔威体育用品',
  535. },
  536. ],
  537. //达成意向
  538. yixianglist: [],
  539. //合作成功
  540. successlist: [],
  541. // 嘉宾访谈
  542. jiabinlist: [
  543. {
  544. url: require('@/assets/test.jpeg'),
  545. title: '测试title',
  546. date: '2017-03-04',
  547. context: '测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容',
  548. },
  549. {
  550. url: require('@/assets/test.jpeg'),
  551. title: '测试title',
  552. date: '2017-03-04',
  553. context: '测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容',
  554. },
  555. {
  556. url: require('@/assets/test.jpeg'),
  557. title: '测试title',
  558. date: '2017-03-04',
  559. context: '测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容',
  560. },
  561. {
  562. url: require('@/assets/test.jpeg'),
  563. title: '测试title',
  564. date: '2017-03-04',
  565. context: '测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容',
  566. },
  567. ],
  568. superOne: require('@/assets/live/main1.png'),
  569. two: require('@/assets/live/top_bg.png'),
  570. superOnes: require('@/assets/live/测试图片.jpg'),
  571. title: '',
  572. file_path: '',
  573. xuqiu: '',
  574. chengguo: '',
  575. qiatan: '',
  576. dacheng: '',
  577. videoSrc: '',
  578. videoOptions: {
  579. playbackRates: [0.7, 1.0, 1.5, 2.0], //播放速度
  580. autoplay: false, //如果true,浏览器准备好时开始回放。
  581. muted: false, // 默认情况下将会消除任何音频。
  582. loop: false, // 导致视频一结束就重新开始。
  583. preload: 'auto', // 建议浏览器在<video>加载元素后是否应该开始下载视频数据。auto浏览器选择最佳行为,立即开始加载视频(如果浏览器支持)
  584. language: 'zh-CN',
  585. aspectRatio: '16:9', // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3")
  586. techOrder: ['flash', 'html5'], // 兼容顺序
  587. fluid: true, // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。
  588. sources: [
  589. {
  590. // 流配置,数组形式,会根据兼容顺序自动切换
  591. type: 'rtmp/hls',
  592. src: 'rtmp://58.200.131.2:1935/livetv/hunantv',
  593. // src: 'rtmp://play.liaoningdoupo.com/live/1',
  594. },
  595. ],
  596. poster: '', //你的封面地址
  597. // width: document.documentElement.clientWidth,
  598. notSupportedMessage: '此视频暂无法播放,请稍后再试', // 允许覆盖Video.js无法播放媒体源时显示的默认信息。
  599. controlBar: {
  600. timeDivider: true,
  601. durationDisplay: true,
  602. remainingTimeDisplay: false,
  603. fullscreenToggle: true, //全屏按钮
  604. },
  605. },
  606. }),
  607. created() {
  608. this.searchInfo();
  609. this.searchzhanjia();
  610. this.searchchanpin();
  611. this.searchfuwu();
  612. this.searchdock();
  613. },
  614. methods: {
  615. ...mapProduct({ mapProductQuery: 'newquery' }),
  616. ...market({ marketFetch: 'fetch' }),
  617. ...dock({ dockQuery: 'query', dockFetch: 'fetch' }),
  618. ...expertsuser({ expertQuery: 'query' }),
  619. ...transaction({ tquery: 'query' }),
  620. async searchdock() {
  621. // 标题
  622. let res = await this.dockFetch(this.id);
  623. this.$set(this, `title`, res.data.title);
  624. this.$set(this, `file_path`, res.data.file_path);
  625. this.$set(this, `user_id`, res.data.user_id);
  626. console.log(res.data);
  627. // 交易实况
  628. let aaa = await this.tquery({ dockid: this.id });
  629. let newaaa = aaa.data.filter(f => f.status == '1' || f.status == '2');
  630. for (const val of newaaa) {
  631. var time = moment(val.meta.createdAt).format('YYYY-MM-DD hh:mm');
  632. val.time = time;
  633. }
  634. this.$set(this, `directlist`, newaaa);
  635. // 洽谈
  636. let abb = await this.tquery({ status: 0, dockid: this.id });
  637. this.$set(this, `qiatan`, abb.total);
  638. // 意向
  639. let acc = await this.tquery({ status: 1, dockid: this.id });
  640. for (const val of acc.data) {
  641. var time = moment(val.meta.createdAt).format('YYYY-MM-DD hh:mm');
  642. val.time = time;
  643. }
  644. this.$set(this, `dacheng`, acc.total);
  645. this.$set(this, `yixianglist`, acc.data);
  646. // 成果
  647. let aee = await this.tquery({ status: 2, dockid: this.id });
  648. for (const val of aee.data) {
  649. var time = moment(val.meta.createdAt).format('YYYY-MM-DD hh:mm');
  650. val.time = time;
  651. }
  652. this.$set(this, `chengguo`, aee.total);
  653. this.$set(this, `successlist`, aee.data);
  654. // 需求
  655. let aff = await this.mapProductQuery();
  656. this.$set(this, `xuqiu`, aff.total);
  657. },
  658. //技术
  659. async searchInfo(newname) {
  660. let res = await this.mapProductQuery({ skip: 0, limit: 10, totaltype: '0', name: newname });
  661. console.log(res);
  662. if (this.$checkRes(res)) this.$set(this, `jishulist`, res.data);
  663. },
  664. //产品
  665. async searchchanpin(newname) {
  666. let res = await this.mapProductQuery({ skip: 0, limit: 5, totaltype: '1', name: newname });
  667. if (this.$checkRes(res)) this.$set(this, `demandList`, res.data);
  668. },
  669. //服务
  670. async searchfuwu(newname) {
  671. let res = await this.mapProductQuery({ skip: 0, limit: 5, totaltype: '2', name: newname });
  672. if (this.$checkRes(res)) this.$set(this, `serviceList`, res.data);
  673. },
  674. //专家
  675. async searchzhanjia(newname) {
  676. let res = await this.expertQuery({ skip: 0, limit: 6, name: newname, role: 6 });
  677. if (this.$checkRes(res)) this.$set(this, `expertList`, res.data);
  678. },
  679. //tabs
  680. handleClick(tab, event) {
  681. if (event.target.getAttribute('id') == 'tab-0') {
  682. this.panduan = '找技术';
  683. if (this.name) {
  684. this.searchInfo();
  685. }
  686. } else if (event.target.getAttribute('id') == 'tab-1') {
  687. this.panduan = '找产品';
  688. if (this.name) {
  689. this.searchchanpin();
  690. }
  691. } else if (event.target.getAttribute('id') == 'tab-2') {
  692. this.panduan = '找服务';
  693. if (this.name) {
  694. this.searchfuwu();
  695. }
  696. } else if (event.target.getAttribute('id') == 'tab-3') {
  697. this.panduan = '找专家';
  698. if (this.name) {
  699. this.searchzhanjia();
  700. }
  701. }
  702. },
  703. // 点击查询
  704. resetForm(name) {
  705. if (this.panduan == '找技术') {
  706. if (name) {
  707. this.searchInfo(name);
  708. } else {
  709. this.searchInfo();
  710. }
  711. } else if (this.panduan == '找产品') {
  712. if (name) {
  713. this.searchchanpin(name);
  714. } else {
  715. this.searchchanpin();
  716. }
  717. } else if (this.panduan == '找服务') {
  718. if (name) {
  719. this.searchfuwu(name);
  720. } else {
  721. this.searchfuwu();
  722. }
  723. } else if (this.panduan == '找专家') {
  724. if (name) {
  725. this.searchzhanjia(name);
  726. } else {
  727. this.searchzhanjia();
  728. }
  729. }
  730. },
  731. // 直播详情
  732. btnDirectDetail() {
  733. this.$router.push({ path: '/live/hallDetail', query: { id: this.$route.query.id } });
  734. },
  735. // 技术,产品,服务详情
  736. oneBtnDetail(data) {
  737. this.dialogVisible = true;
  738. console.log(data);
  739. this.$set(this, `directInfo`, data);
  740. },
  741. // 关闭dialog
  742. handleClose(done) {
  743. done();
  744. },
  745. // 专家详情
  746. twoBtnDetail(data) {
  747. this.dialogExport = true;
  748. data.phone = this.phoneNumFilter(data.phone);
  749. data.cardnumber = this.cardnumberNumFilter(data.cardnumber);
  750. this.$set(this, `exportInfo`, data);
  751. },
  752. phoneNumFilter(phone) {
  753. let start = phone.slice(0, 3);
  754. let end = phone.slice(-4);
  755. return `${start}****${end}`;
  756. },
  757. cardnumberNumFilter(cardnumber) {
  758. let start = cardnumber.slice(0, 4);
  759. let end = cardnumber.slice(-3);
  760. return `${start}****${end}`;
  761. },
  762. zhuanjiaduijies(data) {
  763. this.$router.push({ path: '/live/hall/dock/zhanjiaduijie', query: { id: data.id, dockid: this.id } });
  764. },
  765. handleClicks(tab, event) {
  766. if (tab.name == 'four') {
  767. this.$router.push('/tltest');
  768. } else if (tab.name == 'five') {
  769. this.$router.push('/tllltest');
  770. } else if (tab.name == 'six') {
  771. this.$router.push('/tltest2');
  772. }
  773. },
  774. // 关闭专家详情
  775. handleCloseExport(done) {
  776. done();
  777. },
  778. },
  779. computed: {
  780. id() {
  781. return this.$route.query.id;
  782. },
  783. ...mapState(['user']),
  784. pageTitle() {
  785. return `${this.$route.meta.title}`;
  786. },
  787. },
  788. metaInfo() {
  789. return { title: this.$route.meta.title };
  790. },
  791. };
  792. </script>
  793. <style lang="less" scoped>
  794. .textOver {
  795. overflow: hidden;
  796. text-overflow: ellipsis;
  797. white-space: nowrap;
  798. }
  799. .w_1200 {
  800. margin: 0 auto;
  801. width: 1200px;
  802. }
  803. .livetop {
  804. width: 100%;
  805. height: 487px;
  806. overflow: hidden;
  807. background-image: url(../../assets/live/top_3.png);
  808. }
  809. .livetop .title {
  810. text-align: center;
  811. color: #fff;
  812. position: relative;
  813. width: 100%;
  814. font-size: 45px;
  815. top: 65px;
  816. }
  817. .livetop .zhuban {
  818. text-align: center;
  819. color: #fff;
  820. position: relative;
  821. width: 100%;
  822. font-size: 25px;
  823. top: 140px;
  824. }
  825. .livetop .zhuban span:first-child {
  826. font-weight: 700;
  827. }
  828. .livetop .num {
  829. position: relative;
  830. top: 190px;
  831. color: #fff;
  832. }
  833. .livetop .num p {
  834. float: left;
  835. width: 15%;
  836. background: #fff;
  837. margin: 0 14px 0 0 !important;
  838. color: #000;
  839. height: 50px;
  840. line-height: 50px;
  841. border-radius: 30px;
  842. }
  843. .livetop .num p span:first-child {
  844. display: inline-block;
  845. width: 56%;
  846. text-align: center;
  847. height: 50px;
  848. line-height: 50px;
  849. font-size: 16px;
  850. background: red;
  851. border-radius: 30px;
  852. color: #fff;
  853. font-weight: 700;
  854. }
  855. .livetop .num p span:last-child {
  856. display: inline-block;
  857. width: 42%;
  858. text-align: center;
  859. font-size: 15px;
  860. font-weight: 700;
  861. }
  862. .livemain {
  863. position: relative;
  864. top: -55px;
  865. z-index: 999;
  866. }
  867. .livemain .livevideo {
  868. height: 470px;
  869. overflow: hidden;
  870. }
  871. .livemain .livevideo .left {
  872. float: left;
  873. width: 50%;
  874. height: 460px;
  875. overflow: hidden;
  876. border: 5px solid #000;
  877. background: #fff;
  878. border-radius: 5px;
  879. }
  880. .livemain .livevideo .left .title {
  881. padding: 0 10px;
  882. height: 40px;
  883. line-height: 40px;
  884. font-size: 20px;
  885. font-weight: 700;
  886. }
  887. .livemain .livevideo .left .video {
  888. height: 400px;
  889. margin: 0 10px 10px 10px;
  890. border: 2px solid #ccc;
  891. width: 97%;
  892. }
  893. .livemain .livevideo .right {
  894. width: 50%;
  895. height: 460px;
  896. overflow: hidden;
  897. background-color: #6e042c;
  898. border-top-left-radius: 5px;
  899. border-bottom-left-radius: 5px;
  900. overflow: hidden;
  901. }
  902. /deep/.livemain .livevideo .right .el-tabs__nav-scroll {
  903. color: #fff;
  904. width: 97%;
  905. float: left;
  906. height: 40px;
  907. line-height: 40px;
  908. padding: 0 10px;
  909. background: #fe950e;
  910. }
  911. /deep/.livemain .livevideo .right .el-tabs__item {
  912. color: #fff;
  913. font-weight: bold;
  914. font-size: 16px;
  915. }
  916. /deep/.livemain .livevideo .right .el-tabs__item.is-active {
  917. color: red;
  918. }
  919. /deep/.livemain .livevideo .right .el-tabs__item:hover {
  920. color: red;
  921. }
  922. /deep/.livemain .livevideo .right .el-tabs__active-bar {
  923. position: absolute;
  924. bottom: 0;
  925. left: 0;
  926. height: 2px;
  927. background-color: transparent;
  928. z-index: 1;
  929. transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
  930. list-style: none;
  931. color: #fff;
  932. }
  933. /deep/.el-tabs__nav-wrap::after {
  934. background-color: transparent;
  935. }
  936. .right ul {
  937. padding: 0;
  938. margin: 0;
  939. }
  940. .right ul li {
  941. height: 43px;
  942. line-height: 40px;
  943. font-size: 14px;
  944. color: #fff;
  945. border-bottom: 1px solid #ff8500;
  946. padding: 0 0 0 10px;
  947. margin: 0 20px;
  948. overflow: hidden;
  949. white-space: nowrap;
  950. text-overflow: ellipsis;
  951. }
  952. .right ul li span:first-child {
  953. color: #ff8500;
  954. }
  955. .right ul li span {
  956. margin: 0 20px 0 0;
  957. }
  958. .yixiang ul {
  959. padding: 0;
  960. margin: 0;
  961. }
  962. .yixiang ul li {
  963. height: 43px;
  964. line-height: 40px;
  965. font-size: 14px;
  966. color: #fff;
  967. border-bottom: 1px solid #ff8500;
  968. padding: 0 0 0 10px;
  969. margin: 0 20px;
  970. overflow: hidden;
  971. white-space: nowrap;
  972. text-overflow: ellipsis;
  973. }
  974. .yixiang ul li span:first-child {
  975. color: #ff8500;
  976. }
  977. .yixiang ul li span {
  978. margin: 0 20px 0 0;
  979. }
  980. // 图片
  981. .newimage {
  982. margin: 20px 0 0 0;
  983. background-size: 100% * 80px;
  984. background-size: cover;
  985. height: 100px;
  986. width: 100%;
  987. margin-bottom: 5px;
  988. position: relative;
  989. }
  990. .newimage .el-link {
  991. position: absolute;
  992. top: 30px;
  993. left: 46%;
  994. color: #ffffff;
  995. font-size: 36px;
  996. z-index: 999;
  997. }
  998. .fangtan {
  999. float: left;
  1000. height: 525px;
  1001. overflow: hidden;
  1002. }
  1003. // 嘉宾
  1004. .fangtan .jiabin {
  1005. width: 31%;
  1006. border-radius: 5px;
  1007. box-shadow: 0 0 5px #c20808;
  1008. padding: 0 10px 0px 10px;
  1009. margin: 4px 15px 0 3px;
  1010. height: 515px;
  1011. }
  1012. .jiabin .jiabintop {
  1013. height: 30px;
  1014. line-height: 30px;
  1015. }
  1016. .jiabin .jiabintop span {
  1017. display: inline-block;
  1018. padding: 0 10px;
  1019. height: 30px;
  1020. color: #fff;
  1021. background-color: #ff8500;
  1022. border-bottom-left-radius: 10px;
  1023. border-bottom-right-radius: 10px;
  1024. }
  1025. .jiabin .jiabintop a {
  1026. float: right;
  1027. }
  1028. .jiabin .jiabinlist ul li {
  1029. float: left;
  1030. width: 100%;
  1031. border-bottom: 1px dashed #ff8500;
  1032. padding: 20px 0;
  1033. }
  1034. .jiabin .jiabinlist ul li:last-child {
  1035. border-bottom: none;
  1036. float: left;
  1037. width: 100%;
  1038. }
  1039. .jiabin .jiabinlist ul li:hover p span:first-child {
  1040. color: #0e90d2;
  1041. }
  1042. .jiabin .jiabinlist ul li img {
  1043. float: left;
  1044. width: 20%;
  1045. height: 80px;
  1046. }
  1047. .jiabin .jiabinlist ul li p {
  1048. float: left;
  1049. width: 71%;
  1050. padding: 0 0 0 10px;
  1051. }
  1052. .jiabin .jiabinlist ul li p span:first-child {
  1053. float: left;
  1054. width: 65%;
  1055. font-size: 18px;
  1056. }
  1057. .jiabin .jiabinlist ul li p span:nth-child(2n) {
  1058. float: left;
  1059. width: 35%;
  1060. font-size: 14px;
  1061. text-align: right;
  1062. padding: 2px 0 0 0;
  1063. }
  1064. .jiabin .jiabinlist ul li p span:last-child {
  1065. float: left;
  1066. width: 100%;
  1067. font-size: 14px;
  1068. color: #888;
  1069. overflow: hidden;
  1070. text-overflow: ellipsis;
  1071. -webkit-line-clamp: 2;
  1072. word-break: break-all;
  1073. display: -webkit-box;
  1074. -webkit-box-orient: vertical;
  1075. }
  1076. // 访谈
  1077. .fangtan .luyan {
  1078. width: 33%;
  1079. border-radius: 5px;
  1080. box-shadow: 0 0 5px #c20808;
  1081. padding: 0 10px 0px 10px;
  1082. margin: 4px 10px 0 3px;
  1083. height: 515px;
  1084. overflow: hidden;
  1085. }
  1086. .luyanList {
  1087. padding: 10px 0 0 0;
  1088. }
  1089. .luyanList ul {
  1090. margin: 0;
  1091. padding: 0;
  1092. list-style-type: none;
  1093. }
  1094. .luyanList ul li {
  1095. float: left;
  1096. border-radius: 10px;
  1097. padding: 5px 10px;
  1098. margin: 0 0 10px 0;
  1099. height: 95px;
  1100. border: 1px solid #ff8500;
  1101. }
  1102. .luyanList ul li:nth-child(5) {
  1103. border: 1px solid #ff8500;
  1104. float: left;
  1105. border-radius: 10px;
  1106. padding: 5px 10px;
  1107. margin: 0 0 22px 0;
  1108. height: 95px;
  1109. }
  1110. .luyanList ul li:hover {
  1111. box-shadow: 0 0 5px red;
  1112. }
  1113. .luyanList ul li p:first-child span:first-child {
  1114. font-size: 18px;
  1115. float: left;
  1116. width: 80%;
  1117. }
  1118. .luyanList ul li p:first-child span:last-child {
  1119. float: left;
  1120. width: 20%;
  1121. color: #c20808;
  1122. }
  1123. .luyanList ul li p:last-child span {
  1124. float: left;
  1125. width: 100%;
  1126. padding: 5px 0;
  1127. font-size: 14px;
  1128. color: #666;
  1129. }
  1130. // 聊天
  1131. .chat {
  1132. float: left;
  1133. width: 33%;
  1134. }
  1135. .tabsData {
  1136. position: relative;
  1137. height: 510px;
  1138. margin: 20px 0;
  1139. border: 1px solid red;
  1140. .one {
  1141. height: 468px;
  1142. padding: 0 15px;
  1143. overflow: auto;
  1144. .onnList {
  1145. border-bottom: 1px dashed red;
  1146. padding: 10px;
  1147. .oneName {
  1148. height: 30px;
  1149. line-height: 30px;
  1150. margin: 0 0 5px 0;
  1151. font-size: 16px;
  1152. overflow: hidden;
  1153. text-overflow: ellipsis;
  1154. white-space: nowrap;
  1155. }
  1156. .btn {
  1157. height: 30px;
  1158. line-height: 30px;
  1159. margin: 0 0 5px 0;
  1160. text-align: center;
  1161. }
  1162. .oneInfo {
  1163. .oneInfoLeft {
  1164. font-size: 14px;
  1165. p {
  1166. padding: 0 0 10px 0;
  1167. span {
  1168. display: inline-block;
  1169. width: 50%;
  1170. }
  1171. }
  1172. p:first-child span:first-child {
  1173. color: red;
  1174. font-weight: bold;
  1175. }
  1176. p:nth-child(2) span:nth-child(2) {
  1177. color: red;
  1178. font-weight: bold;
  1179. }
  1180. }
  1181. .oneInfoRight {
  1182. overflow: hidden;
  1183. text-overflow: ellipsis;
  1184. -webkit-line-clamp: 4;
  1185. word-break: break-all;
  1186. display: -webkit-box;
  1187. -webkit-box-orient: vertical;
  1188. }
  1189. }
  1190. }
  1191. }
  1192. .two {
  1193. padding: 15px 15px 0 15px;
  1194. height: 466px;
  1195. overflow: auto;
  1196. .twoList {
  1197. box-shadow: 0 0 3px red;
  1198. margin-bottom: 10px;
  1199. padding: 17px 6px;
  1200. .image {
  1201. border-radius: 90px;
  1202. .el-image {
  1203. border-radius: 90px;
  1204. }
  1205. }
  1206. .info {
  1207. font-size: 16px;
  1208. padding: 0 15px;
  1209. .el-button {
  1210. float: right;
  1211. }
  1212. p {
  1213. float: left;
  1214. width: 100%;
  1215. height: 30px;
  1216. line-height: 30px;
  1217. span {
  1218. display: inline-block;
  1219. width: 50%;
  1220. }
  1221. }
  1222. p:first-child {
  1223. font-size: 18px;
  1224. font-weight: bold;
  1225. }
  1226. }
  1227. }
  1228. }
  1229. }
  1230. /deep/.el-tabs--border-card > .el-tabs__content {
  1231. padding: 0;
  1232. }
  1233. /deep/.el-dialog__body {
  1234. padding: 20px;
  1235. }
  1236. .downLeftInfos {
  1237. height: 330px;
  1238. }
  1239. .marketPublish {
  1240. position: absolute;
  1241. top: 42.2%;
  1242. width: 286px;
  1243. z-index: 999;
  1244. left: 72%;
  1245. top: 1%;
  1246. text-align: center;
  1247. font-size: 18px;
  1248. color: #fff;
  1249. }
  1250. /deep/.el-input__inner {
  1251. -webkit-appearance: none;
  1252. background-color: #fff;
  1253. background-image: none;
  1254. border-radius: 4px;
  1255. border: 1px solid #dcdfe6;
  1256. box-sizing: border-box;
  1257. color: #606266;
  1258. display: inline-block;
  1259. font-size: inherit;
  1260. height: 30px;
  1261. line-height: 12px;
  1262. outline: 0;
  1263. padding: 0 15px;
  1264. transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
  1265. width: 100%;
  1266. }
  1267. /deep/.video-js {
  1268. height: 396px !important;
  1269. }
  1270. // 新增
  1271. // 产品
  1272. .jishulist {
  1273. .topList {
  1274. .list {
  1275. border-bottom: 1px dashed #ccc;
  1276. padding: 6px 0;
  1277. .name {
  1278. height: 30px;
  1279. line-height: 30px;
  1280. p:first-child {
  1281. font-size: 16px;
  1282. // display: inline-block;
  1283. width: 700px;
  1284. display: block;
  1285. overflow: hidden;
  1286. white-space: nowrap;
  1287. text-overflow: ellipsis;
  1288. }
  1289. }
  1290. .names {
  1291. height: 30px;
  1292. line-height: 30px;
  1293. p:first-child {
  1294. font-size: 14px;
  1295. display: inline-block;
  1296. width: 300px;
  1297. overflow: hidden;
  1298. text-overflow: ellipsis;
  1299. -o-text-overflow: ellipsis;
  1300. }
  1301. }
  1302. .click {
  1303. height: 30px;
  1304. line-height: 30px;
  1305. text-align: center;
  1306. }
  1307. }
  1308. }
  1309. .btn {
  1310. margin: 6px 0 0 0;
  1311. text-align: center;
  1312. }
  1313. }
  1314. .onmore {
  1315. text-align: center;
  1316. }
  1317. // 技术
  1318. .demandList {
  1319. .topList {
  1320. .list {
  1321. padding: 11px 0;
  1322. border-bottom: 1px dashed #ccc;
  1323. .name {
  1324. height: 30px;
  1325. line-height: 30px;
  1326. p {
  1327. font-size: 16px;
  1328. span:first-child {
  1329. display: inline-block;
  1330. width: 300px;
  1331. }
  1332. }
  1333. }
  1334. .click {
  1335. height: 30px;
  1336. line-height: 30px;
  1337. text-align: center;
  1338. }
  1339. .otherInfo {
  1340. .field {
  1341. font-size: 14px;
  1342. padding: 8px 0 0 0;
  1343. }
  1344. .coopermode {
  1345. font-size: 14px;
  1346. padding: 8px 0 0 0;
  1347. }
  1348. }
  1349. .introduction {
  1350. overflow: hidden;
  1351. text-overflow: ellipsis;
  1352. -webkit-line-clamp: 2;
  1353. word-break: break-all;
  1354. display: -webkit-box;
  1355. -webkit-box-orient: vertical;
  1356. }
  1357. }
  1358. }
  1359. .btn {
  1360. text-align: center;
  1361. margin: 6px 0 0 0;
  1362. }
  1363. }
  1364. // 服务
  1365. .serviceList {
  1366. .topList {
  1367. .list {
  1368. padding: 11px 0;
  1369. border-bottom: 1px dashed #ccc;
  1370. .name {
  1371. height: 30px;
  1372. line-height: 30px;
  1373. p {
  1374. font-size: 16px;
  1375. }
  1376. }
  1377. .click {
  1378. height: 30px;
  1379. line-height: 30px;
  1380. text-align: center;
  1381. }
  1382. .otherInfo {
  1383. .field {
  1384. font-size: 14px;
  1385. padding: 8px 0 0 0;
  1386. }
  1387. }
  1388. .introduction {
  1389. overflow: hidden;
  1390. text-overflow: ellipsis;
  1391. -webkit-line-clamp: 2;
  1392. word-break: break-all;
  1393. display: -webkit-box;
  1394. -webkit-box-orient: vertical;
  1395. }
  1396. }
  1397. }
  1398. .btn {
  1399. text-align: center;
  1400. margin: 6px 0 0 0;
  1401. }
  1402. }
  1403. </style>