indedxSearch.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731
  1. <template>
  2. <block>
  3. <view class="container search-container">
  4. <view class="sticky-content">
  5. <view class="searchTarget-header">
  6. <input type="text" :placeholder="searchPlaceholderList.TabSearch" placeholder-class="sea_ipt_placeholder" class="sea_ipt" v-model="searchTxt" confirm-type="search" @confirm="searchHandle" />
  7. <icon type="search" size="15" class="sea_ico" />
  8. <view class="ipt-right">
  9. <icon type="clear" size="16" color="#E0E0E0" v-show="searchTxt" @click="clearIpt" />
  10. <text class="line">|</text>
  11. <text @click="searchHandle" style="color: #376cbb">搜索</text>
  12. </view>
  13. </view>
  14. <!-- // 综合及各种类型的的tabs -->
  15. <view class="search-tabs" v-if="isResult">
  16. <view :class="['tabs-item', tabsActive == item.id && 'active']" v-for="item in tabsList" :key="item.id" @click="tabsHandel(item)">
  17. {{ item.title }}
  18. <view class="item-act" v-if="tabsActive == item.id"></view>
  19. </view>
  20. </view>
  21. <!-- // 活动微路演的筛选 -->
  22. <block v-if="isResult">
  23. <view class="activity-select" style="display: flex; align-items: center; justify-content: flex-end" v-if="tabsActive == 4 || tabsActive == 5">
  24. <block v-for="item in activitySelect" :key="item.type">
  25. <view :class="['summary-select', item.type == 5 && 'select-roadshow']" v-if="tabsActive == item.type">
  26. <text @click="summarySelectHandler(key, item.name)" :class="['select-item', activitySelectActive == key.value && 'active-item']" v-for="key in item.list" :key="key.value">
  27. {{ key.name }}
  28. </text>
  29. </view>
  30. </block>
  31. </view>
  32. </block>
  33. </view>
  34. <view class="search-cont" v-if="!isResult">
  35. <block v-for="key in keywordList" :key="key.title">
  36. <view class="history" v-if="key.title !== '搜索历史' || (key.title == '搜索历史' && historySearchList.length)">
  37. <view class="history-title title">
  38. <text>{{ key.title }}</text>
  39. <image v-if="key.imgShown" @click="clearHistory" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/empty_ico.png" class="empty_ico"></image>
  40. </view>
  41. <view class="history-item">
  42. <block v-for="(item, index) in relyOn(key.title)" :key="item">
  43. <block v-if="key.title == '搜索历史'">
  44. <view v-if="index < 8" class="item" @click="chooseTarget(item)">{{ item }}</view>
  45. </block>
  46. <view v-else class="item" @click="chooseTarget(item)">{{ item }}</view>
  47. </block>
  48. </view>
  49. </view>
  50. </block>
  51. </view>
  52. <view v-else class="content">
  53. <block v-if="haveResult">
  54. <block v-if="tabsActive == 1">
  55. <synthetical :searchTxt="searchTxt" :isSyntheticalShow="isSyntheticalShow" :pageNumSynthetical="pageNumSynthetical" />
  56. </block>
  57. <view v-else>
  58. <summary-chart :resultList="tabsActive == 1 ? resultList.slice(0, 10) : resultList" :tabsActiveChild="tabsActive" v-if="resultList.length && (tabsActive == 2 || tabsActive == 1)" />
  59. <reportPage @updateFllow="updateFllow" :reportPageData="reportPageData" id="container-report-page" v-if="Object.keys(reportPageData).length && (tabsActive == 3 || tabsActive == 1)" />
  60. <activityBack :collectLists="collectList" :tabsActiveSearch="tabsActive" v-if="collectList.length && (tabsActive == 4 || tabsActive == 1)" />
  61. <roadshowPage :roadshowPageList="roadshowPageList" :tabsRoadshowSearch="tabsActive" v-if="roadshowPageList.length && (tabsActive == 5 || tabsActive == 1)" />
  62. </view>
  63. </block>
  64. <view class="nodata" v-else>
  65. <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/act_search.png" mode="" class="nodata_ico"></image>
  66. <text>未找到您想搜索的内容</text>
  67. </view>
  68. </view>
  69. </view>
  70. <Loading />
  71. </block>
  72. </template>
  73. <script>
  74. import { KeywordList, TabsList, SummarySelect, ActivitySelect } from "./searchList";
  75. import { Search, activity, Report, Home, User } from "@/config/api";
  76. import { Debounce, Throttle } from "@/config/util.js";
  77. import summaryChart from "../components/summaryChart.vue";
  78. import activityBack from "../components/activityBack.vue";
  79. import reportPage from "../components/report.vue";
  80. import roadshowPage from "../components/roadshow.vue";
  81. import NotHaveLogin from "../../components/notHaveLogin.vue";
  82. import Synthetical from "../components/synthetical.vue";
  83. export default {
  84. components: { summaryChart, activityBack, reportPage, roadshowPage, NotHaveLogin, Synthetical },
  85. data() {
  86. return {
  87. searchTxt: "",
  88. isResult: false,
  89. historySearchList: [], //历史搜索
  90. hotKeyWord: [], //热搜关键词
  91. wordList: [], //推荐关键词
  92. tabsActive: 1, //搜索的筛选条件
  93. resultList: [], //纪要与图表
  94. resultDataList: [], ////纪要与图表
  95. collectList: [], //活动的数据
  96. reportPageData: {}, //报告的数据
  97. roadshowPageList: [], //微路演的数据
  98. // haveResult: true, //是否有搜索数据
  99. haveResultSummary: true, //是否有搜索数据 纪要
  100. haveResultActivity: true, //是否有搜索数据 活动
  101. haveResultReport: true, //是否有搜索数据 报告
  102. haveResultRoadshow: true, //是否有搜索数据 微路演
  103. summarySelectActive: "Matching",
  104. activitySelectActive: "0",
  105. refresh: false, //正在下拉
  106. pageNum: 1,
  107. pageNumSynthetical: 0,
  108. pageSize: 10,
  109. totalPage: 0,
  110. status: "loadmore",
  111. loadText: {
  112. loadmore: "上拉加载更多",
  113. loading: "加载中",
  114. nomore: "已经到底了",
  115. },
  116. isSearchKeyWord: [],
  117. isSyntheticalShow: false,
  118. timerOut: null,
  119. };
  120. },
  121. computed: {
  122. keywordList() {
  123. return KeywordList;
  124. },
  125. tabsList() {
  126. return TabsList;
  127. },
  128. summarySelect() {
  129. return SummarySelect;
  130. },
  131. activitySelect() {
  132. return ActivitySelect;
  133. },
  134. haveResult() {
  135. let all = this.haveResultSummary || this.haveResultActivity || this.haveResultReport || this.haveResultRoadshow;
  136. return this.tabsActive == 1
  137. ? all
  138. : this.tabsActive == 2
  139. ? this.haveResultSummary
  140. : this.tabsActive == 3
  141. ? this.haveResultReport
  142. : this.tabsActive == 4
  143. ? this.haveResultActivity
  144. : this.haveResultRoadshow;
  145. },
  146. },
  147. watch: {},
  148. methods: {
  149. //搜索事件
  150. searchHandle() {
  151. if (this.searchTxt) {
  152. if (!this.historySearchList.includes(this.searchTxt)) {
  153. this.historySearchList.unshift(this.searchTxt);
  154. this.$db.set("historySearchList", JSON.stringify(this.historySearchList));
  155. }
  156. this.getListInit();
  157. this.getDataList();
  158. } else {
  159. this.$util.toast("请输入关键字");
  160. }
  161. },
  162. //清除搜索关键字
  163. clearIpt() {
  164. this.searchTxt = "";
  165. this.tabsActive = 1;
  166. this.isResult = false;
  167. this.getListInit();
  168. },
  169. //关键词 遍历的依赖
  170. relyOn(val) {
  171. return val == "搜索历史" ? this.historySearchList : val == "热搜关键词" ? this.hotKeyWord : this.wordList;
  172. },
  173. //点击了筛选项目
  174. tabsHandel(item) {
  175. this.tabsActive = item.id;
  176. this.getListInit();
  177. this.getDataList();
  178. },
  179. //获取热搜关键词的请求
  180. async researchHotKeyWord() {
  181. const res = await Search.getKeys();
  182. if (res.Ret === 200) {
  183. this.hotKeyWord = res.Data.ListHot ? res.Data.ListHot.map((key) => key.KeyWord) : [];
  184. this.wordList = res.Data.Item ? res.Data.Item.ConfigValue.split(",") : [];
  185. }
  186. },
  187. // 选择历史搜索
  188. chooseTarget(item) {
  189. this.searchTxt = item;
  190. if (!this.historySearchList.includes(item)) {
  191. this.historySearchList.unshift(item);
  192. this.$db.set("historySearchList", JSON.stringify(this.historySearchList));
  193. }
  194. this.getListInit();
  195. this.getDataList();
  196. },
  197. //搜索
  198. async getDataList() {
  199. this.pageNumSynthetical = 0;
  200. this.isResult = true;
  201. this.isSyntheticalShow = false;
  202. if (!this.isSearchKeyWord.includes(this.searchTxt)) {
  203. this.isSearchKeyWord.push(this.searchTxt);
  204. await User.userSearchKeyWordLog({ KeyWord: this.searchTxt });
  205. }
  206. this.timerOut = setInterval(() => {
  207. this.$store.commit("requestShowLoading");
  208. }, 300);
  209. if (this.tabsActive == 1) {
  210. this.isSyntheticalShow = true;
  211. this.pageNumSynthetical = 1;
  212. } else if (this.tabsActive == 2) {
  213. this.synthesiz();
  214. } else if (this.tabsActive == 3) {
  215. this.getReportList();
  216. } else if (this.tabsActive == 4) {
  217. this.getActivityBackList();
  218. } else if (this.tabsActive == 5) {
  219. this.getRoadshowList();
  220. }
  221. },
  222. //纪要 图表的搜索
  223. async synthesiz() {
  224. const res = await Search.getArtAndChartList({
  225. KeyWord: this.searchTxt.replace(/^\s+|\s+$/g, ""),
  226. OrderColumn: this.summarySelectActive,
  227. PageSize: this.pageSize,
  228. CurrentIndex: this.pageNum,
  229. ListType: 1,
  230. });
  231. if (res.Ret === 200) {
  232. this.status = this.pageNum < res.Data.Paging.Pages ? "loadmore" : "nomore";
  233. this.totalPage = res.Data.Paging.Totals;
  234. if (this.pageNum == 1) {
  235. this.haveResultSummary = res.Data.List.length || res.Data.ChartList.length ? true : false;
  236. }
  237. if (res.Data.List.length && res.Data.ChartList.length) {
  238. if (this.pageNum == 1) {
  239. this.resultDataList.push(res.Data.List.shift());
  240. if (this.refresh) {
  241. uni.stopPullDownRefresh();
  242. this.refresh = false;
  243. }
  244. }
  245. let newArr = [];
  246. let newArrTwo = [];
  247. for (let i = 0; i < res.Data.List.length; i += 2) {
  248. newArr.push(res.Data.List.slice(i, i + 2));
  249. }
  250. for (let i = 0; i < res.Data.ChartList.length; i += 2) {
  251. newArrTwo.push(res.Data.ChartList.slice(i, i + 2));
  252. }
  253. let arr = [];
  254. newArr.forEach((item, index) => {
  255. if (newArrTwo[index]) {
  256. arr.push(newArrTwo[index], item);
  257. } else {
  258. arr.push(item);
  259. }
  260. });
  261. this.resultDataList = this.resultDataList.concat(arr.flat(Infinity));
  262. } else if (!res.Data.List.length) {
  263. res.Data.ChartList.length && this.resultDataList.push(...res.Data.ChartList);
  264. } else if (!res.Data.ChartList.length) {
  265. res.Data.List.length && this.resultDataList.push(...res.Data.List);
  266. }
  267. this.resultList = this.resultDataList;
  268. clearInterval(this.timerOut);
  269. this.$store.commit("requestHideLoading");
  270. }
  271. },
  272. //活动回放的接口获取列表
  273. async getActivityBackList() {
  274. const res =
  275. this.tabsActive === 1 || this.activitySelectActive == 0
  276. ? await activity.getActivityListSearch({
  277. PageSize: this.pageSize,
  278. CurrentIndex: this.pageNum,
  279. KeyWord: this.searchTxt,
  280. ActiveState: "1,2,3", //活动进行状态
  281. PlayBack: Number(this.activitySelectActive),
  282. })
  283. : await activity.getActivityListNew({
  284. PageSize: this.pageSize,
  285. CurrentIndex: this.pageNum,
  286. KeyWord: this.searchTxt,
  287. ActiveState: "1,2,3", //活动进行状态
  288. PlayBack: Number(this.activitySelectActive),
  289. });
  290. if (res.Ret !== 200) return;
  291. this.status = this.pageNum < res.Data.Paging.Pages ? "loadmore" : "nomore";
  292. this.totalPage = res.Data.Paging.Pages; //总页数
  293. if (this.pageNum === 1) {
  294. this.collectList = res.Data.List || [];
  295. this.haveResultActivity = this.collectList.length ? true : false;
  296. if (this.refresh) {
  297. uni.stopPullDownRefresh();
  298. this.refresh = false;
  299. }
  300. } else {
  301. this.collectList.push(...res.Data.List);
  302. }
  303. clearInterval(this.timerOut);
  304. this.$store.commit("requestHideLoading");
  305. },
  306. //获取报告的
  307. async getReportList() {
  308. const res = await Report.getSearchReportAndResource({
  309. KeyWord: this.searchTxt.replace(/^\s+|\s+$/g, ""),
  310. PageSize: "",
  311. });
  312. if (res.Ret === 200) {
  313. if (this.refresh) {
  314. uni.stopPullDownRefresh();
  315. this.refresh = false;
  316. }
  317. this.reportPageData = res.Data || {};
  318. if (res.Data.ListHzReport.length || res.Data.ListHzResource.length || res.Data.ListYxReport.length || res.Data.ListYxResource.length) {
  319. this.haveResultReport = true;
  320. } else {
  321. this.haveResultReport = false;
  322. }
  323. clearInterval(this.timerOut);
  324. this.$store.commit("requestHideLoading");
  325. }
  326. },
  327. //获取微路演
  328. async getRoadshowList() {
  329. const res = await Home.microRoadshowList({
  330. PageSize: this.pageSize,
  331. CurrentIndex: this.pageNum,
  332. KeyWord: this.searchTxt.replace(/^\s+|\s+$/g, ""),
  333. Filter: Number(this.activitySelectActive),
  334. });
  335. if (res.Ret === 200) {
  336. this.status = this.pageNum < res.Data.Paging.Pages ? "loadmore" : "nomore";
  337. this.totalPage = res.Data.Paging.Pages; //总页数
  338. if (this.pageNum == 1) {
  339. this.roadshowPageList = res.Data.List || [];
  340. this.haveResultRoadshow = this.roadshowPageList.length > 0 ? true : false;
  341. if (this.refresh) {
  342. uni.stopPullDownRefresh();
  343. this.refresh = false;
  344. }
  345. } else {
  346. this.roadshowPageList = this.roadshowPageList.concat(res.Data.List);
  347. }
  348. clearInterval(this.timerOut);
  349. this.$store.commit("requestHideLoading");
  350. }
  351. },
  352. //点击了更多
  353. tabsActiveMore(val) {
  354. this.tabsActive = val;
  355. this.getListInit();
  356. this.getDataList();
  357. },
  358. //纪要、图标的筛选
  359. summarySelectHandler(item, type) {
  360. this.pageNum = 1;
  361. if (type == "纪要") {
  362. this.summarySelectActive = item.value;
  363. this.resultList = [];
  364. this.resultDataList = [];
  365. this.synthesiz();
  366. } else if (type == "活动") {
  367. this.activitySelectActive = item.value;
  368. this.collectList = [];
  369. this.getActivityBackList();
  370. } else if (type == "微路演") {
  371. this.activitySelectActive = item.value;
  372. this.roadshowPageList = [];
  373. this.getRoadshowList();
  374. }
  375. },
  376. /* 历史搜索清空 */
  377. clearHistory() {
  378. this.getRecordTracking("清空搜索历史");
  379. this.historySearchList = [];
  380. this.$db.del("historySearchList");
  381. },
  382. // 数据 初始化
  383. getListInit() {
  384. uni.pageScrollTo({
  385. scrollTop: 0,
  386. duration: 300,
  387. });
  388. this.pageNum = 1;
  389. this.pageNumSynthetical = 0;
  390. this.totalPage = 0;
  391. this.summarySelectActive = "Matching";
  392. this.activitySelectActive = "0";
  393. this.status = "loadmore";
  394. this.resultList = [];
  395. this.resultDataList = [];
  396. this.collectList = [];
  397. this.reportPageData = {};
  398. this.roadshowPageList = [];
  399. },
  400. // 进入页面 load的事件
  401. laodInit(options) {
  402. if (Object.keys(options).length && options.searchTxt) {
  403. this.searchTxt = options.searchTxt;
  404. this.tabsActive = options.tabsActive;
  405. this.summarySelectActive = options.summaryActive;
  406. this.activitySelectActive = options.activityActive;
  407. this.searchTxt && this.getDataList();
  408. }
  409. },
  410. // 报告、资源包的关注 改变状态
  411. updateFllow(id, type) {
  412. let typeName = type == "弘则" ? "ListHzResource" : "ListYxResource";
  413. this.reportPageData[typeName].forEach((key) => {
  414. if (key.IndustrialManagementId == id) {
  415. if (key.IsFollw) {
  416. uni.showToast({
  417. title: "已取消关注",
  418. icon: "none",
  419. duration: 2000,
  420. });
  421. }
  422. key.IsFollw = !key.IsFollw;
  423. }
  424. });
  425. },
  426. },
  427. onLoad(options) {
  428. this.getRecordTracking("搜索入口:" + options.source);
  429. this.researchHotKeyWord();
  430. this.laodInit(options);
  431. if (this.$db.get("historySearchList")) {
  432. this.historySearchList = JSON.parse(this.$db.get("historySearchList"));
  433. }
  434. },
  435. onShow() {
  436. this.$store.commit("setRouterActivity", "搜索");
  437. this.$store.commit("setRouterReport", "搜索");
  438. },
  439. /* 下拉刷新 */
  440. onPullDownRefresh: Throttle(function () {
  441. this.page_no = 1;
  442. this.refresh = true;
  443. this.getDataList();
  444. }),
  445. // 上拉加载this.resultList
  446. onReachBottom: Throttle(function () {
  447. if (this.tabsActive == 3) return;
  448. if (this.status === "nomore") return;
  449. this.status = "loading";
  450. if (this.tabsActive == 1) {
  451. this.pageNumSynthetical++;
  452. return;
  453. }
  454. this.pageNum++;
  455. this.getDataList();
  456. }),
  457. // 分享
  458. onShareAppMessage({ from, target }) {
  459. if (from === "button") {
  460. let item = target.dataset.item;
  461. let audio_id = item.Type == 1 || item.AudioType == 1 ? item.Id : "";
  462. // type=2 -- 活动视频 type=3 -- 产业视频
  463. let video_id = item.Type == 2 || item.Type == 3 ? item.Id : "";
  464. let activity_id = item.Type == 2 && item.ActivityId > 0 ? item.ActivityId : "";
  465. let title_share = item.AudioTitle || item.Title;
  466. this.getRecordTracking("搜索转发", { ActivityId: item.ActivityId, Id: item.Id, Type: item.Type });
  467. return {
  468. title: this.isHorzMobile ? "好友向您推荐此内容,上传名片享查研观向免费月卡!" : title_share,
  469. path: "/pages/material/material?topTabsActive=4" + "&audioShareId=" + audio_id + "&videoShareId=" + video_id + "&activityId=" + activity_id,
  470. imageUrl: item.AudioShareImg || item.ShareImg,
  471. };
  472. } else {
  473. return {
  474. title: this.searchTxt || "搜索",
  475. path:
  476. "/pages-search/indedxSearch/indedxSearch?searchTxt=" +
  477. this.searchTxt +
  478. "&tabsActive=" +
  479. this.tabsActive +
  480. "&summaryActive=" +
  481. this.summarySelectActive +
  482. "&activityActive=" +
  483. this.activitySelectActive,
  484. };
  485. }
  486. },
  487. };
  488. </script>
  489. <style lang="scss" scoped>
  490. .search-container {
  491. background-color: $uni-bg-color;
  492. padding: 200rpx 0 0rpx;
  493. min-height: 100vh;
  494. box-sizing: border-box;
  495. .sticky-content {
  496. position: fixed;
  497. top: 0;
  498. left: 0;
  499. width: 100%;
  500. z-index: 99;
  501. background-color: #fff;
  502. }
  503. .searchTarget-header {
  504. padding: 0 34rpx;
  505. width: 100%;
  506. position: relative;
  507. padding: 30rpx 0;
  508. display: flex;
  509. justify-content: center;
  510. align-items: center;
  511. .sea_ipt_placeholder {
  512. color: #8d8d8d;
  513. }
  514. .sea_ipt {
  515. width: 682rpx;
  516. height: 70rpx;
  517. line-height: 70rpx;
  518. box-sizing: border-box;
  519. background: #f9f9f9;
  520. font-size: 26rpx;
  521. color: #4a4a4a;
  522. padding: 0 180rpx 0 78rpx;
  523. border-radius: 70rpx;
  524. }
  525. .sea_ico {
  526. width: 31rpx;
  527. height: 31rpx;
  528. position: absolute;
  529. left: 68rpx;
  530. top: 50%;
  531. transform: translateY(-50%);
  532. }
  533. .ipt-right {
  534. display: flex;
  535. align-items: center;
  536. position: absolute;
  537. right: 59rpx;
  538. top: 50%;
  539. transform: translateY(-50%);
  540. color: #376cbb;
  541. .line {
  542. margin: 0 21rpx;
  543. color: #e0e0e0;
  544. }
  545. }
  546. }
  547. .search-cont {
  548. padding: 32rpx;
  549. font-size: 24rpx;
  550. margin-top: -80rpx;
  551. color: #666666;
  552. background-color: #fff;
  553. height: calc(100vh - 135rpx);
  554. overflow: hidden;
  555. .title {
  556. font-size: 32rpx;
  557. font-weight: 500;
  558. color: #333333;
  559. }
  560. .history {
  561. height: 270rpx;
  562. overflow: hidden;
  563. .history-title {
  564. display: flex;
  565. align-items: center;
  566. justify-content: space-between;
  567. .empty_ico {
  568. width: 36rpx;
  569. height: 36rpx;
  570. }
  571. }
  572. .history-item {
  573. width: 100%;
  574. overflow: hidden;
  575. display: flex;
  576. flex-wrap: wrap;
  577. .item {
  578. background-color: #f9f9f9;
  579. padding: 10rpx 20rpx;
  580. margin: 20rpx 20rpx 0 0;
  581. border-radius: 4rpx;
  582. }
  583. }
  584. }
  585. }
  586. .search-tabs {
  587. display: flex;
  588. align-items: center;
  589. width: 100%;
  590. font-size: 28rpx;
  591. color: #333333;
  592. padding-left: 35rpx;
  593. overflow: hidden;
  594. overflow-x: auto;
  595. background-color: #fff;
  596. margin-bottom: 10rpx;
  597. .tabs-item {
  598. margin-right: 50rpx;
  599. flex-shrink: 0;
  600. padding-bottom: 10rpx;
  601. position: relative;
  602. .item-act {
  603. width: 80%;
  604. position: absolute;
  605. bottom: 0;
  606. left: 50%;
  607. transform: translateX(-50%);
  608. height: 4rpx;
  609. border-radius: 21px;
  610. background: $uni-color-new;
  611. }
  612. }
  613. .active {
  614. color: $uni-color-new;
  615. font-weight: 600;
  616. }
  617. }
  618. .content {
  619. width: 100%;
  620. background-color: $uni-bg-color;
  621. }
  622. .nodata {
  623. font-size: 40rpx;
  624. .bind-mobile {
  625. width: 244rpx;
  626. height: 58rpx;
  627. background: #376cbb;
  628. border-radius: 8rpx;
  629. font-size: 28rpx;
  630. line-height: 58rpx;
  631. text-align: center;
  632. color: #fff;
  633. margin: 50rpx auto;
  634. }
  635. }
  636. .more-box {
  637. display: flex;
  638. height: 88rpx;
  639. padding: 0 30rpx;
  640. align-items: center;
  641. justify-content: space-between;
  642. font-size: 28rpx;
  643. background-color: $uni-bg-color;
  644. position: sticky;
  645. left: 0;
  646. z-index: 99;
  647. .more-text {
  648. font-weight: 500;
  649. color: #333333;
  650. &::before {
  651. content: "";
  652. display: inline-block;
  653. height: 20rpx;
  654. width: 4rpx;
  655. background-color: #3189ff;
  656. margin-right: 20rpx;
  657. }
  658. }
  659. .more-rivet {
  660. color: #376cbb;
  661. margin-left: 20rpx;
  662. }
  663. }
  664. .summary-select {
  665. display: flex;
  666. align-items: center;
  667. width: 252rpx;
  668. background-color: #fff;
  669. color: #999999;
  670. font-size: 24rpx;
  671. height: 51rpx;
  672. border-radius: 47rpx;
  673. box-shadow: 0rpx 0rpx 4rpx 0rpx rgba(0, 0, 0, 0.09);
  674. overflow: hidden;
  675. .select-item {
  676. display: flex;
  677. align-items: center;
  678. justify-content: center;
  679. width: 50%;
  680. height: 100%;
  681. border-radius: 47rpx;
  682. }
  683. .active-item {
  684. background-color: #376cbb;
  685. color: #fff;
  686. }
  687. }
  688. .activity-select {
  689. padding-right: 34rpx;
  690. height: 88rpx;
  691. position: sticky;
  692. top: 184rpx;
  693. left: 0;
  694. z-index: 99;
  695. background-color: $uni-bg-color;
  696. }
  697. .select-roadshow {
  698. width: 345rpx !important;
  699. }
  700. .more-summary {
  701. top: 184rpx;
  702. }
  703. .more-report {
  704. top: 184rpx;
  705. z-index: 100;
  706. }
  707. .more-activity {
  708. top: 184rpx;
  709. z-index: 101;
  710. }
  711. }
  712. </style>
  713. <style lang="scss">
  714. #container-report-page {
  715. .industry-video-module {
  716. .global-video-box {
  717. .video-content {
  718. top: 400rpx !important;
  719. }
  720. .close-icon {
  721. top: 330rpx !important;
  722. }
  723. }
  724. }
  725. }
  726. </style>