indedxSearch.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727
  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 title_share = item.AudioTitle || item.Title;
  462. this.getRecordTracking("搜索转发", { ActivityId: item.ActivityId, Id: item.Id, Type: item.Type });
  463. return {
  464. title: this.isHorzMobile ? "好友向您推荐此内容,上传名片享查研观向免费月卡!" : title_share,
  465. path: "/pages/material/material?topTabsActive=4" + "&SourceId=" + item.SourceId + "&SourceType=" + item.Type,
  466. imageUrl: item.AudioShareImg || item.ShareImg,
  467. };
  468. } else {
  469. return {
  470. title: this.searchTxt || "搜索",
  471. path:
  472. "/pages-search/indedxSearch/indedxSearch?searchTxt=" +
  473. this.searchTxt +
  474. "&tabsActive=" +
  475. this.tabsActive +
  476. "&summaryActive=" +
  477. this.summarySelectActive +
  478. "&activityActive=" +
  479. this.activitySelectActive,
  480. };
  481. }
  482. },
  483. };
  484. </script>
  485. <style lang="scss" scoped>
  486. .search-container {
  487. background-color: $uni-bg-color;
  488. padding: 200rpx 0 0rpx;
  489. min-height: 100vh;
  490. box-sizing: border-box;
  491. .sticky-content {
  492. position: fixed;
  493. top: 0;
  494. left: 0;
  495. width: 100%;
  496. z-index: 99;
  497. background-color: #fff;
  498. }
  499. .searchTarget-header {
  500. padding: 0 34rpx;
  501. width: 100%;
  502. position: relative;
  503. padding: 30rpx 0;
  504. display: flex;
  505. justify-content: center;
  506. align-items: center;
  507. .sea_ipt_placeholder {
  508. color: #8d8d8d;
  509. }
  510. .sea_ipt {
  511. width: 682rpx;
  512. height: 70rpx;
  513. line-height: 70rpx;
  514. box-sizing: border-box;
  515. background: #f9f9f9;
  516. font-size: 26rpx;
  517. color: #4a4a4a;
  518. padding: 0 180rpx 0 78rpx;
  519. border-radius: 70rpx;
  520. }
  521. .sea_ico {
  522. width: 31rpx;
  523. height: 31rpx;
  524. position: absolute;
  525. left: 68rpx;
  526. top: 50%;
  527. transform: translateY(-50%);
  528. }
  529. .ipt-right {
  530. display: flex;
  531. align-items: center;
  532. position: absolute;
  533. right: 59rpx;
  534. top: 50%;
  535. transform: translateY(-50%);
  536. color: #376cbb;
  537. .line {
  538. margin: 0 21rpx;
  539. color: #e0e0e0;
  540. }
  541. }
  542. }
  543. .search-cont {
  544. padding: 32rpx;
  545. font-size: 24rpx;
  546. margin-top: -80rpx;
  547. color: #666666;
  548. background-color: #fff;
  549. height: calc(100vh - 135rpx);
  550. overflow: hidden;
  551. .title {
  552. font-size: 32rpx;
  553. font-weight: 500;
  554. color: #333333;
  555. }
  556. .history {
  557. height: 270rpx;
  558. overflow: hidden;
  559. .history-title {
  560. display: flex;
  561. align-items: center;
  562. justify-content: space-between;
  563. .empty_ico {
  564. width: 36rpx;
  565. height: 36rpx;
  566. }
  567. }
  568. .history-item {
  569. width: 100%;
  570. overflow: hidden;
  571. display: flex;
  572. flex-wrap: wrap;
  573. .item {
  574. background-color: #f9f9f9;
  575. padding: 10rpx 20rpx;
  576. margin: 20rpx 20rpx 0 0;
  577. border-radius: 4rpx;
  578. }
  579. }
  580. }
  581. }
  582. .search-tabs {
  583. display: flex;
  584. align-items: center;
  585. width: 100%;
  586. font-size: 28rpx;
  587. color: #333333;
  588. padding-left: 35rpx;
  589. overflow: hidden;
  590. overflow-x: auto;
  591. background-color: #fff;
  592. margin-bottom: 10rpx;
  593. .tabs-item {
  594. margin-right: 50rpx;
  595. flex-shrink: 0;
  596. padding-bottom: 10rpx;
  597. position: relative;
  598. .item-act {
  599. width: 80%;
  600. position: absolute;
  601. bottom: 0;
  602. left: 50%;
  603. transform: translateX(-50%);
  604. height: 4rpx;
  605. border-radius: 21px;
  606. background: $uni-color-new;
  607. }
  608. }
  609. .active {
  610. color: $uni-color-new;
  611. font-weight: 600;
  612. }
  613. }
  614. .content {
  615. width: 100%;
  616. background-color: $uni-bg-color;
  617. }
  618. .nodata {
  619. font-size: 40rpx;
  620. .bind-mobile {
  621. width: 244rpx;
  622. height: 58rpx;
  623. background: #376cbb;
  624. border-radius: 8rpx;
  625. font-size: 28rpx;
  626. line-height: 58rpx;
  627. text-align: center;
  628. color: #fff;
  629. margin: 50rpx auto;
  630. }
  631. }
  632. .more-box {
  633. display: flex;
  634. height: 88rpx;
  635. padding: 0 30rpx;
  636. align-items: center;
  637. justify-content: space-between;
  638. font-size: 28rpx;
  639. background-color: $uni-bg-color;
  640. position: sticky;
  641. left: 0;
  642. z-index: 99;
  643. .more-text {
  644. font-weight: 500;
  645. color: #333333;
  646. &::before {
  647. content: "";
  648. display: inline-block;
  649. height: 20rpx;
  650. width: 4rpx;
  651. background-color: #3189ff;
  652. margin-right: 20rpx;
  653. }
  654. }
  655. .more-rivet {
  656. color: #376cbb;
  657. margin-left: 20rpx;
  658. }
  659. }
  660. .summary-select {
  661. display: flex;
  662. align-items: center;
  663. width: 252rpx;
  664. background-color: #fff;
  665. color: #999999;
  666. font-size: 24rpx;
  667. height: 51rpx;
  668. border-radius: 47rpx;
  669. box-shadow: 0rpx 0rpx 4rpx 0rpx rgba(0, 0, 0, 0.09);
  670. overflow: hidden;
  671. .select-item {
  672. display: flex;
  673. align-items: center;
  674. justify-content: center;
  675. width: 50%;
  676. height: 100%;
  677. border-radius: 47rpx;
  678. }
  679. .active-item {
  680. background-color: #376cbb;
  681. color: #fff;
  682. }
  683. }
  684. .activity-select {
  685. padding-right: 34rpx;
  686. height: 88rpx;
  687. position: sticky;
  688. top: 184rpx;
  689. left: 0;
  690. z-index: 99;
  691. background-color: $uni-bg-color;
  692. }
  693. .select-roadshow {
  694. width: 345rpx !important;
  695. }
  696. .more-summary {
  697. top: 184rpx;
  698. }
  699. .more-report {
  700. top: 184rpx;
  701. z-index: 100;
  702. }
  703. .more-activity {
  704. top: 184rpx;
  705. z-index: 101;
  706. }
  707. }
  708. </style>
  709. <style lang="scss">
  710. #container-report-page {
  711. .industry-video-module {
  712. .global-video-box {
  713. .video-content {
  714. top: 400rpx !important;
  715. }
  716. .close-icon {
  717. top: 330rpx !important;
  718. }
  719. }
  720. }
  721. }
  722. </style>