direct.vue 46 KB

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