direct.vue 46 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497
  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.type == '0' ? '欢迎' : '祝贺' }}</span>
  56. <span v-if="item.type == '0'">测试人</span>
  57. <span v-if="item.type == '1'">{{ item.market_username }}</span>
  58. <span>在</span>
  59. <span>{{ item.meta | getDate }}</span>
  60. <span v-if="item.type == '1'">和</span>
  61. <span v-if="item.type == '1'">{{ item.username }}</span>
  62. <span v-if="item.type == '1'">{{
  63. item.status == '0'
  64. ? '正在洽谈'
  65. : item.status == '1'
  66. ? '达成意向'
  67. : item.status == '2'
  68. ? '交易完成'
  69. : item.status == '3'
  70. ? '取消交易'
  71. : item.status == '4'
  72. ? '交易待确定'
  73. : '暂无'
  74. }}</span>
  75. <span v-if="item.type == '0'">位临现场</span>
  76. </p>
  77. </el-col>
  78. </div>
  79. </div>
  80. <!-- <video :src="dockInfo.file_path" controls="controls" style="height: 395px; width: 100%;">
  81. 您的浏览器不支持 video 标签。
  82. </video> -->
  83. <!-- <videoPlayer ref="videoPlayer" :options="videoOptions" class="vjs-custom-skin videoPlayer" :playsinline="true" /> -->
  84. </el-col>
  85. </el-col>
  86. <el-col :span="24" class="right">
  87. <el-col :span="24">
  88. <!-- <span>交易实况</span> -->
  89. <el-tabs v-model="activeName" @tab-click="handleClicks">
  90. <el-tab-pane label="交易实况" name="first">
  91. <el-col :span="24">
  92. <ul>
  93. <li v-for="(item, index) in directlist" :key="index">
  94. <span> {{ item.time }}</span>
  95. <span>{{ item.market_username }}</span> <span>与</span><span>{{ item.username }}</span
  96. ><span>{{ item.status === '1' ? '达成意向' : item.status === '2' ? '合作成功' : 'underdind' }}</span>
  97. </li>
  98. </ul>
  99. </el-col>
  100. </el-tab-pane>
  101. <el-tab-pane label="达成意向" name="second">
  102. <el-col :span="24" class="yixiang">
  103. <ul>
  104. <li v-for="(item, index) in yixianglist" :key="index">
  105. <span> {{ item.time }}</span>
  106. <span>{{ item.market_username }}</span> <span>与</span><span>{{ item.username }}</span
  107. ><span>{{ item.status === '1' ? '达成意向' : item.status === '2' ? '合作成功' : 'underdind' }}</span>
  108. </li>
  109. </ul>
  110. </el-col>
  111. </el-tab-pane>
  112. <el-tab-pane label="合作成功" name="third">
  113. <el-col :span="24" class="yixiang">
  114. <ul>
  115. <li v-for="(item, index) in successlist" :key="index">
  116. <span> {{ item.time }}</span>
  117. <span>{{ item.market_username }}</span> <span>与</span><span>{{ item.username }}</span
  118. ><span>{{ item.status === '1' ? '达成意向' : item.status === '2' ? '合作成功' : 'underdind' }}</span>
  119. </li>
  120. </ul>
  121. </el-col>
  122. </el-tab-pane>
  123. <!-- <el-tab-pane label="推流测试" name="four"> </el-tab-pane>
  124. <el-tab-pane label="拉流测试" name="five"> </el-tab-pane>
  125. <el-tab-pane label="推流测试2" name="six"> </el-tab-pane> -->
  126. </el-tabs>
  127. </el-col>
  128. <!-- -->
  129. </el-col>
  130. </el-col>
  131. <el-col :span="24" class="newimage">
  132. <el-image :src="superOne" style="width:100%;height:100px;position:relative;"> </el-image>
  133. <el-link :underline="false" href="user.docx">
  134. 使用手册
  135. </el-link>
  136. </el-col>
  137. <el-col :span="24" class="tabsData">
  138. <el-tabs type="border-card" @tab-click="handleClick">
  139. <el-tab-pane label="找技术">
  140. <el-col :span="24" class="one">
  141. <el-row class="jishulist">
  142. <el-col :span="24" class="topList">
  143. <el-col :span="24" class="list" v-for="(item, index) in jishulist" :key="index">
  144. <el-col :span="16" class="name">
  145. <p>
  146. <span class="inname"> {{ item.name }}</span>
  147. </p>
  148. </el-col>
  149. <el-col :span="4" class="names">
  150. <p>
  151. <span>
  152. 合作方式:
  153. {{
  154. item.coopermode == '0'
  155. ? '技术转让'
  156. : item.coopermode == '1'
  157. ? '技术服务'
  158. : item.coopermode == '2'
  159. ? '技术许可'
  160. : item.coopermode == '3'
  161. ? '技术融资'
  162. : item.coopermode == '4'
  163. ? '其他'
  164. : '暂无'
  165. }}</span
  166. >
  167. </p>
  168. </el-col>
  169. <el-col :span="4" class="click">
  170. <el-button size="mini" type="primary" @click="oneBtnDetail(item)">详情</el-button>
  171. <el-button
  172. size="mini"
  173. type="success"
  174. @click="$router.push({ path: '/live/hall/dock/dockDetail', query: { id: item._id, dockid: dock_id, user_id: user_id } })"
  175. >对接</el-button
  176. >
  177. </el-col>
  178. </el-col>
  179. </el-col>
  180. <el-col :span="24" class="btn">
  181. <el-button
  182. type="primary"
  183. size="mini"
  184. @click="$router.push({ path: '/hall/productList/technologyList', query: { column_name: '技术', dockid: dock_id } })"
  185. v-if="jishulist.length > 5"
  186. >查看所有项目</el-button
  187. >
  188. </el-col>
  189. </el-row>
  190. </el-col>
  191. </el-tab-pane>
  192. <el-tab-pane label="找产品">
  193. <el-col :span="24" class="one">
  194. <el-row>
  195. <el-col :span="24" class="demandList">
  196. <el-col :span="24" class="topList">
  197. <el-col :span="24" class="list" v-for="(item, index) in demandList" :key="index">
  198. <el-col :span="20" class="name">
  199. <p>{{ item.name }}</p>
  200. </el-col>
  201. <el-col :span="4" class="click">
  202. <el-button size="mini" type="primary" @click="oneBtnDetail(item)">详情</el-button>
  203. <el-button
  204. size="mini"
  205. type="success"
  206. @click="$router.push({ path: '/live/hall/dock/dockDetail', query: { id: item.id, dockid: this.id, user_id: this.user_id } })"
  207. >对接</el-button
  208. >
  209. </el-col>
  210. <el-col :span="16" class="otherInfo">
  211. <el-col :span="12">
  212. <p class="field">
  213. <span>所属领域:</span
  214. ><span>{{
  215. item.field == '0'
  216. ? '先进制造'
  217. : item.field == '1'
  218. ? '新材料'
  219. : item.field == '2'
  220. ? '光电子'
  221. : item.field == '3'
  222. ? '信息技术'
  223. : item.field == '4'
  224. ? '文化和科技融合'
  225. : '暂无'
  226. }}</span>
  227. </p>
  228. </el-col>
  229. <el-col :span="12">
  230. <p class="coopermode">
  231. <span>合作方式:</span
  232. ><span>
  233. {{
  234. item.coopermode == '0'
  235. ? '技术转让'
  236. : item.coopermode == '1'
  237. ? '技术服务'
  238. : item.coopermode == '2'
  239. ? '技术许可'
  240. : item.coopermode == '3'
  241. ? '技术融资'
  242. : item.coopermode == '4'
  243. ? '其他'
  244. : '暂无'
  245. }}
  246. </span>
  247. </p>
  248. </el-col>
  249. </el-col>
  250. <el-col :span="8" class="introduction">
  251. <p><span>简介:</span>{{ item.introduction }}</p>
  252. </el-col>
  253. </el-col>
  254. </el-col>
  255. <el-col :span="24" class="btn">
  256. <el-button
  257. type="primary"
  258. size="mini"
  259. @click="$router.push({ path: '/hall/productList/technologyList', query: { column_name: '产品', dockid: dock_id } })"
  260. v-if="demandList.length > 5"
  261. >查看所有项目</el-button
  262. >
  263. </el-col>
  264. </el-col>
  265. </el-row>
  266. </el-col>
  267. </el-tab-pane>
  268. <el-tab-pane label="找服务">
  269. <el-col :span="24" class="one">
  270. <el-row>
  271. <el-col :span="24" class="serviceList">
  272. <el-col :span="24" class="topList">
  273. <el-col :span="24" class="list" v-for="(item, index) in serviceList" :key="index">
  274. <el-col :span="20" class="name">
  275. <p>{{ item.name }}</p>
  276. </el-col>
  277. <el-col :span="4" class="click">
  278. <el-button size="mini" type="primary" @click="oneBtnDetail(item)">详情</el-button>
  279. <el-button
  280. size="mini"
  281. type="success"
  282. @click="$router.push({ path: '/live/hall/dock/dockDetail', query: { id: item._id, dockid: dock_id, user_id: user_id } })"
  283. >对接</el-button
  284. >
  285. </el-col>
  286. <el-col :span="16" class="otherInfo">
  287. <el-col :span="12">
  288. <p class="field">
  289. <span>所属领域:</span
  290. ><span>{{
  291. item.field == '0'
  292. ? '先进制造'
  293. : item.field == '1'
  294. ? '新材料'
  295. : item.field == '2'
  296. ? '光电子'
  297. : item.field == '3'
  298. ? '信息技术'
  299. : item.field == '4'
  300. ? '文化和科技融合'
  301. : '暂无'
  302. }}</span>
  303. </p>
  304. </el-col>
  305. </el-col>
  306. <el-col :span="8" class="introduction">
  307. <p><span>简介:</span>{{ item.introduction }}</p>
  308. </el-col>
  309. </el-col>
  310. </el-col>
  311. <el-col :span="24" class="btn">
  312. <el-button
  313. type="primary"
  314. size="mini"
  315. @click="$router.push({ path: '/hall/productList/technologyList', query: { column_name: '服务', dockid: dock_id } })"
  316. v-if="serviceList.length > 10"
  317. >查看所有项目</el-button
  318. >
  319. </el-col>
  320. </el-col>
  321. </el-row>
  322. </el-col>
  323. </el-tab-pane>
  324. <el-tab-pane label="找专家">
  325. <el-col :span="24" class="two">
  326. <el-col :span="12" class="twoList" v-for="(item, index) in expertList" :key="index">
  327. <el-col :span="4" class="image">
  328. <el-image :src="item.img_path" style="height: 92px;"></el-image>
  329. </el-col>
  330. <el-col :span="20" class="info">
  331. <p>
  332. <span class="textOver">{{ item.name }}</span>
  333. <el-button
  334. size="mini"
  335. type="success"
  336. @click="$router.push({ path: '/live/hall/dock/zhanjiaduijie', query: { id: item._id, dockid: dock_id, user_id: user_id } })"
  337. >对接</el-button
  338. >
  339. <el-button size="mini" type="primary" @click="twoBtnDetail(item)" style="margin:0 5px 0 5px">详情</el-button>
  340. </p>
  341. <p>
  342. <span>性别:{{ item.gender }}</span>
  343. <span>院校:{{ item.school }}</span>
  344. </p>
  345. <p>
  346. <span>职务:{{ item.position }}</span>
  347. <span>从事专业:{{ item.professional }}</span>
  348. </p>
  349. </el-col>
  350. </el-col>
  351. <el-col :span="24" class="onmore">
  352. <el-button
  353. type="primary"
  354. size="mini"
  355. @click="$router.push({ path: '/hall/productList/expertList', query: { dockid: dock_id, user_id: user_id } })"
  356. v-if="expertList.length > 1"
  357. >查看所有项目</el-button
  358. >
  359. </el-col>
  360. </el-col>
  361. </el-tab-pane>
  362. </el-tabs>
  363. <el-col :span="24" class="marketPublish">
  364. <el-col :span="18"> <el-input v-model="name" placeholder="请输入名称" style="height:30px" class="newinput"></el-input></el-col>
  365. <el-col :span="6"><el-button class="btnSearch" size="mini" @click="resetForm(name)">查询</el-button></el-col>
  366. </el-col>
  367. </el-col>
  368. <el-col :span="24" class="newimage2">
  369. <el-image :src="two" style="width:100%;height:100px;position:relative;"> </el-image>
  370. </el-col>
  371. <div class="fangtan">
  372. <el-col :span="7" class="jiabin">
  373. <p class="jiabintop">
  374. <span>在线指导</span>
  375. <!-- <el-link :underline="false">MORE</el-link> -->
  376. </p>
  377. <div class="jiabinlist">
  378. <ul>
  379. <li v-for="(ref, index) in zxzdlist" :key="index">
  380. <img :src="ref.picture" />
  381. <p>
  382. <span class="textOver" @click="$router.push({ path: '/hall/zxzdxmly/zxzdDetail', query: { id: ref.id } })">{{ ref.title }}</span>
  383. <span>{{ ref.publish_time }}</span>
  384. <span class="text">{{ ref.titlejj }} </span>
  385. </p>
  386. </li>
  387. </ul>
  388. </div>
  389. </el-col>
  390. <el-col :span="7" class="jiabin luyan">
  391. <p class="jiabintop luyanTop">
  392. <span>项目路演</span>
  393. <!-- <el-link :underline="false">MORE</el-link> -->
  394. </p>
  395. <div class="luyanList">
  396. <ul>
  397. <li v-for="(item, index) in xmlylist" :key="index">
  398. <p>
  399. <span class="textOver" @click="$router.push({ path: '/hall/zxzdxmly/xmlyDetail', query: { id: item.id } })">{{ item.title }}</span>
  400. <span>时间:{{ item.publish_time }}</span>
  401. </p>
  402. <p>
  403. {{ item.titlejj }}
  404. </p>
  405. </li>
  406. </ul>
  407. </div>
  408. </el-col>
  409. <el-col :span="7" class="chat">
  410. <chat></chat>
  411. </el-col>
  412. </div>
  413. </el-col>
  414. </div>
  415. </el-col>
  416. <div class="pz_down">
  417. <live-foot></live-foot>
  418. </div>
  419. <el-col :span="24" class="nameShow">
  420. <div class="w_1200">
  421. <el-col :span="24" v-if="this.user.uid">
  422. <span>{{ user.name }}</span>
  423. <el-button
  424. type="info"
  425. size="mini"
  426. v-if="this.user.role == '4' || this.user.role == '5' || this.user.role == '6' || this.user.role == '7'"
  427. @click="$router.push({ path: '/userCenter/index', query: { num: 1 } })"
  428. >个人中心</el-button
  429. >
  430. <el-button type="info" size="mini" v-else-if="this.user.role == '3'" @click="$router.push({ path: '/adminCenter/index', query: { num: 1 } })"
  431. >管理中心</el-button
  432. >
  433. <el-button type="info" size="mini" v-else-if="this.user.role == '8'" @click="$router.push({ path: '/vipCenter/index', query: { num: 1 } })"
  434. >管理中心</el-button
  435. >
  436. </el-col>
  437. </div>
  438. </el-col>
  439. </el-row>
  440. <el-dialog title="信息详情" :visible.sync="dialogVisible" width="50%" :before-close="handleClose">
  441. <directDetail :directInfo="directInfo"></directDetail>
  442. </el-dialog>
  443. <el-dialog title="专家信息" :visible.sync="dialogExport" width="50%" :before-close="handleCloseExport">
  444. <exportDetail :exportInfo="exportInfo"></exportDetail>
  445. </el-dialog>
  446. </div>
  447. </template>
  448. <script>
  449. import 'video.js/dist/video-js.css';
  450. import 'vue-video-player/src/custom-theme.css';
  451. import { videoPlayer } from 'vue-video-player';
  452. import 'videojs-flash';
  453. import liveFoot from '@/layout/live/foot.vue';
  454. import chat from '@/components/parts/chat.vue';
  455. import directDetail from '@/layout/direct/directDetail.vue';
  456. import exportDetail from '@/layout/direct/exportDetail.vue';
  457. import { mapState, createNamespacedHelpers } from 'vuex';
  458. const { mapActions: transaction } = createNamespacedHelpers('transaction');
  459. const { mapActions: mapProduct } = createNamespacedHelpers('marketproduct');
  460. const { mapActions: market } = createNamespacedHelpers('market');
  461. const { mapActions: dock } = createNamespacedHelpers('dock');
  462. const { mapActions: expertsuser } = createNamespacedHelpers('expertsuser');
  463. const { mapActions: newsguidance } = createNamespacedHelpers('newsguidance');
  464. const { mapActions: newsroadshow } = createNamespacedHelpers('newsroadshow');
  465. import moment from 'moment';
  466. import _ from 'loadsh';
  467. export default {
  468. name: 'hall',
  469. props: {},
  470. filters: {
  471. getDate(meta) {
  472. let createdAt = _.get(meta, `createdAt`);
  473. let date = new Date(createdAt)
  474. .toLocaleDateString()
  475. .replace('/', '-')
  476. .replace('/', '-');
  477. return date;
  478. },
  479. },
  480. components: {
  481. chat,
  482. liveFoot,
  483. directDetail, //技术,产品,服务详情
  484. exportDetail, //专家详情
  485. // videoPlayer,
  486. },
  487. data: () => ({
  488. activeName: 'second',
  489. //搜索判断用
  490. panduan: '找技术',
  491. // 找技术
  492. jishulist: [],
  493. // 找产品
  494. demandList: [],
  495. // 找服务
  496. serviceList: [],
  497. // 找专家
  498. expertList: [],
  499. // 详情显示
  500. dialogVisible: false,
  501. // 技术,产品,服务详情
  502. directInfo: {},
  503. // 专家详情
  504. dialogExport: false,
  505. exportInfo: {},
  506. // 交易实况
  507. directlist: [],
  508. //达成意向
  509. yixianglist: [],
  510. //合作成功
  511. successlist: [],
  512. // 在线指导
  513. zxzdlist: [],
  514. // 路演
  515. xmlylist: [],
  516. // 使用手册开始
  517. superOne: require('@/assets/live/main1.png'),
  518. two: require('@/assets/live/top_bg.png'),
  519. superOnes: require('@/assets/live/测试图片.jpg'),
  520. // 使用手册结束
  521. // 统计数字
  522. statNum: {
  523. tszx: 0,
  524. tyjb: 0,
  525. qthz: 0,
  526. dcyx: 0,
  527. jywc: 0,
  528. czxm: 0,
  529. },
  530. // 对接会详情
  531. dockInfo: {
  532. title: '',
  533. file_path: '',
  534. },
  535. //对接会创建人id
  536. user_id: '',
  537. videoSrc: '',
  538. videoOptions: {
  539. playbackRates: [0.7, 1.0, 1.5, 2.0], //播放速度
  540. autoplay: false, //如果true,浏览器准备好时开始回放。
  541. muted: false, // 默认情况下将会消除任何音频。
  542. loop: false, // 导致视频一结束就重新开始。
  543. preload: 'auto', // 建议浏览器在<video>加载元素后是否应该开始下载视频数据。auto浏览器选择最佳行为,立即开始加载视频(如果浏览器支持)
  544. language: 'zh-CN',
  545. aspectRatio: '16:9', // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3")
  546. techOrder: ['flash', 'html5'], // 兼容顺序
  547. fluid: true, // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。
  548. sources: [
  549. {
  550. // 流配置,数组形式,会根据兼容顺序自动切换
  551. type: 'rtmp/hls',
  552. src: 'rtmp://58.200.131.2:1935/livetv/hunantv',
  553. // src: 'rtmp://play.liaoningdoupo.com/live/1',
  554. },
  555. ],
  556. poster: '', //你的封面地址
  557. // width: document.documentElement.clientWidth,
  558. notSupportedMessage: '此视频暂无法播放,请稍后再试', // 允许覆盖Video.js无法播放媒体源时显示的默认信息。
  559. controlBar: {
  560. timeDivider: true,
  561. durationDisplay: true,
  562. remainingTimeDisplay: false,
  563. fullscreenToggle: true, //全屏按钮
  564. },
  565. },
  566. name: '',
  567. dock_id: '',
  568. // 测试轮播
  569. lunboList: [],
  570. animate: false,
  571. }),
  572. created() {
  573. this.$set(this, `dock_id`, this.$route.query.id);
  574. // 对接会详情
  575. this.searchdock();
  576. },
  577. methods: {
  578. ...mapProduct({ mapProductQuery: 'newquery' }),
  579. ...market({ marketFetch: 'fetch', operaFetch: 'operaFetch' }),
  580. ...dock({ dockQuery: 'query', dockFetch: 'fetch', goodsquery: 'goodsquery' }),
  581. ...expertsuser({ expertQuery: 'query' }),
  582. ...transaction({ tquery: 'query' }),
  583. ...newsguidance({ danceQuery: 'query' }),
  584. ...newsroadshow({ adshowQuery: 'query' }),
  585. // 查询详情
  586. async searchdock() {
  587. // 标题
  588. let res = await this.dockFetch(this.dock_id);
  589. if (this.$checkRes(res)) {
  590. // 对接会标题
  591. this.$set(this.dockInfo, `title`, res.data.title);
  592. // 对接会视频
  593. this.$set(this.dockInfo, `file_path`, res.data.file_path);
  594. // 对接会创建人id
  595. this.$set(this, `user_id`, res.data.user_id);
  596. // 参展项目
  597. let czxm = res.data.apply.map(item => item.goodsList);
  598. // let czxm = res.data.map(item => item.apply.map(apply => apply.goodsList));
  599. czxm = _.flattenDeep(czxm);
  600. this.$set(this.statNum, `czxm`, czxm.length);
  601. // 找技术
  602. var jishuData = czxm.filter(item => item.totaltype === '0');
  603. this.$set(this, `jishulist`, jishuData);
  604. // 找产品
  605. var chanpinData = czxm.filter(item => item.totaltype === '1');
  606. this.$set(this, `demandList`, chanpinData);
  607. // 找服务
  608. var fuwuData = czxm.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: 468px;
  1175. padding: 0 15px;
  1176. overflow: auto;
  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. .list {
  1308. border-bottom: 1px dashed #ccc;
  1309. padding: 6px 0;
  1310. .name {
  1311. height: 30px;
  1312. line-height: 30px;
  1313. p:first-child {
  1314. font-size: 16px;
  1315. // display: inline-block;
  1316. width: 700px;
  1317. display: block;
  1318. overflow: hidden;
  1319. white-space: nowrap;
  1320. text-overflow: ellipsis;
  1321. }
  1322. }
  1323. .names {
  1324. height: 30px;
  1325. line-height: 30px;
  1326. p:first-child {
  1327. font-size: 14px;
  1328. display: inline-block;
  1329. width: 300px;
  1330. overflow: hidden;
  1331. text-overflow: ellipsis;
  1332. -o-text-overflow: ellipsis;
  1333. }
  1334. }
  1335. .click {
  1336. height: 30px;
  1337. line-height: 30px;
  1338. text-align: center;
  1339. }
  1340. }
  1341. }
  1342. .btn {
  1343. margin: 6px 0 0 0;
  1344. text-align: center;
  1345. }
  1346. }
  1347. .onmore {
  1348. text-align: center;
  1349. }
  1350. // 技术
  1351. .demandList {
  1352. .topList {
  1353. height: 430px;
  1354. overflow: hidden;
  1355. .list {
  1356. padding: 6px 0;
  1357. border-bottom: 1px dashed #ccc;
  1358. .name {
  1359. height: 30px;
  1360. line-height: 30px;
  1361. p {
  1362. font-size: 16px;
  1363. span:first-child {
  1364. display: inline-block;
  1365. width: 300px;
  1366. }
  1367. }
  1368. }
  1369. .click {
  1370. height: 30px;
  1371. line-height: 30px;
  1372. text-align: center;
  1373. }
  1374. .otherInfo {
  1375. .field {
  1376. font-size: 14px;
  1377. padding: 8px 0 0 0;
  1378. }
  1379. .coopermode {
  1380. font-size: 14px;
  1381. padding: 8px 0 0 0;
  1382. }
  1383. }
  1384. .introduction {
  1385. overflow: hidden;
  1386. text-overflow: ellipsis;
  1387. -webkit-line-clamp: 2;
  1388. word-break: break-all;
  1389. display: -webkit-box;
  1390. -webkit-box-orient: vertical;
  1391. }
  1392. }
  1393. }
  1394. .btn {
  1395. text-align: center;
  1396. margin: 6px 0 0 0;
  1397. }
  1398. }
  1399. // 服务
  1400. .serviceList {
  1401. .topList {
  1402. height: 430px;
  1403. overflow: hidden;
  1404. .list {
  1405. padding: 11px 0;
  1406. border-bottom: 1px dashed #ccc;
  1407. .name {
  1408. height: 30px;
  1409. line-height: 30px;
  1410. p {
  1411. font-size: 16px;
  1412. }
  1413. }
  1414. .click {
  1415. height: 30px;
  1416. line-height: 30px;
  1417. text-align: center;
  1418. }
  1419. .otherInfo {
  1420. .field {
  1421. font-size: 14px;
  1422. padding: 8px 0 0 0;
  1423. }
  1424. }
  1425. .introduction {
  1426. overflow: hidden;
  1427. text-overflow: ellipsis;
  1428. -webkit-line-clamp: 2;
  1429. word-break: break-all;
  1430. display: -webkit-box;
  1431. -webkit-box-orient: vertical;
  1432. }
  1433. }
  1434. }
  1435. .btn {
  1436. text-align: center;
  1437. margin: 6px 0 0 0;
  1438. }
  1439. }
  1440. .nameShow {
  1441. position: fixed;
  1442. top: 15px;
  1443. text-align: right;
  1444. z-index: 999;
  1445. span {
  1446. color: #fff;
  1447. font-weight: bold;
  1448. font-size: 16px;
  1449. padding: 0 10px;
  1450. }
  1451. }
  1452. .box {
  1453. width: 100%;
  1454. height: 400px;
  1455. overflow: hidden;
  1456. .lunboList {
  1457. height: 30px;
  1458. line-height: 30px;
  1459. padding: 0 10px;
  1460. p {
  1461. font-size: 16px;
  1462. }
  1463. }
  1464. }
  1465. .anim {
  1466. transition: all 0.5s;
  1467. }
  1468. </style>