reportForm.vue 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959
  1. <template>
  2. <view class="reportForm-container">
  3. <!-- tabs -->
  4. <view class="index-fixed">
  5. <view class="index-header">
  6. <input type="text" placeholder="搜索您想要的产业资源包" placeholder-class="sea_ipt_placeholder" class="sea_ipt"
  7. v-model="searchTxt" disabled @click="goSearch" />
  8. <icon type="search" size="15" class="search_ico" />
  9. </view>
  10. <view class="tab-cont">
  11. <scroll-view scroll-x="true" scroll-with-animation class="scroll-tab" :scroll-into-view="'_'+tabIndex" >
  12. <block v-for="(item, index) in tabBars" :key="item.ChartPermissionId">
  13. <view :id="'_'+index" class="scroll-tab-item"
  14. :class="{ active: tabAct_id == item.ChartPermissionId }"
  15. @click.stop="toggleTab(item,index)">
  16. {{item.PermissionName}}
  17. <image src="@/static/img/border_act.png" mode="" class="border_act"
  18. v-if="tabAct_id == item.ChartPermissionId"></image>
  19. </view>
  20. </block>
  21. <view class="limit-box" v-if="limitIsShow">
  22. <image class="limit-img" src="../../static/img/limit_icon.png" mode=""></image>
  23. </view>
  24. </scroll-view>
  25. </view>
  26. <view class="lucency" v-if="tabBars.length>6"></view>
  27. </view>
  28. <!-- 内容 -->
  29. <view class="strategy" v-if="strategyIndex==4">
  30. <view class="tab-cont-two">
  31. <scroll-view scroll-x="true" scroll-with-animation class="scroll-tab-tow">
  32. <block v-for="(item, index) in tabBarsTow" :key="item.CategoryId">
  33. <view :id="'_'+index" class="scroll-tab-item"
  34. :class="{ active: tabAct_idTwo == item.CategoryId }" @click.stop="toggleTabTwo(item,index)">
  35. {{item.MatchTypeName}}
  36. <text class="reg-text" v-if="item.IsRed"></text>
  37. </view>
  38. </block>
  39. </scroll-view>
  40. </view>
  41. <view class="row">
  42. </view>
  43. <!-- 子组件 -->
  44. <strategy :strategyIndexTwo="strategyIndexTwo" :pageNumFather='pageNumFather' :matchTypeName="matchTypeName"
  45. :tabAct_idTwo="tabAct_idTwo" :isNum="isNum" :isSwitchover="isSwitchover" @hideIsred="hideIsred" />
  46. </view>
  47. <view class="" v-else-if="strategyIndex==5">
  48. <researchChoose :strategyIndex="strategyIndex" :tabAct="tabAct_id" :pageNumFather="pageNumFather" :isNum="isNum"/>
  49. </view>
  50. <!-- </view> -->
  51. <view class="industrial_eport_one" v-else>
  52. <!-- 行业报告 -->
  53. <view class="industry" v-if="tradeList">
  54. <view style="height: 20rpx;"></view>
  55. <view class="industry-top">
  56. <view class="img-top-box">
  57. <image src="@/static/img/industry-ico.png"></image>
  58. <text>行业综述</text>
  59. </view>
  60. <view>
  61. </view>
  62. </view>
  63. <view class="industry-box" @click="isClickHandle(item.CategoryId)" v-for="item in tradeList"
  64. :key="item.CategoryId">
  65. <view class="box-left">
  66. {{item.MatchTypeName}}
  67. <text v-if="item.IsRed"></text>
  68. </view>
  69. <view class="box-right">
  70. <text>{{item.UpdateTime}}更新</text>
  71. <u-icon name="arrow-right" color="#BDBDBD" size="34"></u-icon>
  72. </view>
  73. </view>
  74. </view>
  75. <!-- 产业报告 -->
  76. <view class="industry">
  77. <view style="height: 12rpx;" v-if="!tradeList"></view>
  78. <view class="industry-top industry-sticky">
  79. <view class="img-top-box">
  80. <image src="@/static/img/property_ico.png" style="height: 50rpx;"></image>
  81. <text class="text-sub">细分产业</text>
  82. </view>
  83. <van-dropdown-menu active-color="#333333">
  84. <van-dropdown-item id="menuItem" @open="isscroll" :title="overallArrangementName">
  85. <view class="menu-items-tow">
  86. <view class="items-tow" @click="pitchClick(item,index)" v-for="(item,index) in pitchOn"
  87. :key="item.id">
  88. <view>
  89. <u-icon v-show="pitchOnId==item.id" name="checkbox-mark" color="#2C83FF"
  90. size="24"></u-icon>
  91. </view>
  92. <text :class="pitchOnId==item.id?'items-act':''">{{item.name}}</text>
  93. </view>
  94. </view>
  95. <view style="background-color: #f8f8fa;width: 100%;">
  96. <view style="margin: 0 auto;width: 682rpx;border-bottom: 2rpx dashed #999;">
  97. </view>
  98. </view>
  99. <view class="menu-items">
  100. <view class="menu-items-box" @click="overallBtn(index,item)"
  101. v-for="(item,index) in overallArrangement" :key="item.id">
  102. <view class="items-box">
  103. <u-icon v-show="item.isShow" name="checkbox-mark" color="#2C83FF" size="24">
  104. </u-icon>
  105. </view>
  106. <text>{{item.name}}</text>
  107. </view>
  108. </view>
  109. <view class="replacement-box">
  110. <view class="replacement">
  111. <text @click="replacementBtn" class="replacement-box">重置</text>
  112. <text @click="replacementConfirm">确定</text>
  113. </view>
  114. </view>
  115. </van-dropdown-item>
  116. </van-dropdown-menu>
  117. </view>
  118. <!-- 需要循环的地方 -->
  119. <view class="forindustry" v-for="item in industryList" :key="item.IndustrialManagementId">
  120. <!-- 火锅底料这个位置 -->
  121. <view class="industry-content">
  122. <view class="industry-box-left" @click="reportFllow(item.IndustrialManagementId)">
  123. <image src="@/static/img/top_ico.png" v-if="item.IsFollow"></image>
  124. <image src="@/static/img/top_no_ico.png" v-else></image>
  125. </view>
  126. <view class="industry-box-right" @click="goIndustryReport(item.IndustrialManagementId)">
  127. <view class="ndustry-box-read">
  128. <text>{{item.IndustryName}}</text>
  129. <image v-if="item.IsHot" src="../../static/img/ammunition_ico.png" mode=""></image>
  130. </view>
  131. <view class="ndustry-box-arrow">
  132. <text v-if="item.IsRed" class="read"></text>
  133. <text class="ndustry-box-text">{{item.UpdateTime}}更新</text>
  134. <u-icon name="arrow-right" color="#BDBDBD" size="34"></u-icon>
  135. </view>
  136. </view>
  137. </view>
  138. <view class="content-box" v-if="item.IndustrialSubjectList.length>6">
  139. <u-read-more :toggle="true" :show-height="item.IndustrialSubjectList.length>6 ? 140 :150"
  140. :shadow-style="shadowStyle" close-text="展开" color="#D1D1D1">
  141. <view class="read-more">
  142. <view v-for="val in item.IndustrialSubjectList" :key="val.IndustrialSubjectId"
  143. @click="goIndustryReport(item.IndustrialManagementId)" class="text-box">
  144. {{val.SubjectName}}
  145. </view>
  146. </view>
  147. </u-read-more>
  148. </view>
  149. <view class="content-box" v-else @click="goIndustryReport(item.IndustrialManagementId)">
  150. <view class="read-more">
  151. <view v-for="val in item.IndustrialSubjectList" :key="val.IndustrialSubjectId"
  152. class="text-box">{{val.SubjectName}}</view>
  153. </view>
  154. </view>
  155. </view>
  156. <u-loadmore :status="status" icon-type="flower" :load-text="loadText" margin-top="20"
  157. v-if="totalPage>1" />
  158. </view>
  159. </view>
  160. <coverGuide :isGuideShow="isGuideShow"/>
  161. </view>
  162. </template>
  163. <script>
  164. import strategy from "./components/strategy.vue"
  165. import researchChoose from "./components/researchChoose.vue"
  166. import coverGuide from "./components/coverGuide.vue"
  167. import {Throttle,Debounce } from '@/config/util.js'
  168. import { Reports } from '@/config/api.js'
  169. let app = getApp()
  170. export default {
  171. components: {
  172. strategy,
  173. researchChoose,
  174. coverGuide
  175. },
  176. data() {
  177. return {
  178. tabAct_id: '',
  179. tabAct_idTwo: '',
  180. tabBars: [],
  181. pageNumFather: '',
  182. shadowStyle: {
  183. backgroundImage: "none"
  184. },
  185. tabBarsTow: [],
  186. pitchOn: [{
  187. name: '按最近更新排序',
  188. id: 'NewTime'
  189. }, {
  190. name: '按推荐关注排序',
  191. id: 'Recommend',
  192. }],
  193. pitchOnId: 'NewTime',
  194. //pitchOnName: '按最近更新排序',
  195. isNum: 1,
  196. strategyIndex: '',
  197. strategyIndexTwo: 0,
  198. isSwitchover: 1,
  199. tradeList: [],
  200. OrderColumn: '',
  201. industryList: [],
  202. loadText: {
  203. loadmore: '上拉加载更多',
  204. loading: '加载中',
  205. nomore: '已经到底了'
  206. },
  207. refresh: false, //正在下拉
  208. page_no: 1,
  209. pageSize: 10,
  210. status: 'loadmore',
  211. haveData: true,
  212. totalPage: '',
  213. matchTypeName: '',
  214. overallArrangement: [{
  215. name: '新布局产业',
  216. id: '1',
  217. isShow: false
  218. }, {
  219. name: '深度研究产业',
  220. id: '2',
  221. isShow: false
  222. }, ],
  223. overallArrangementId: '',
  224. overallArrangementName: '按最近更新排序',
  225. isScrollShow: false,
  226. isGuideShow:false,
  227. limitIsShow:false,//限免显示隐藏
  228. }
  229. },
  230. onLoad(option) {
  231. if(!this.$db.get('guideSole')) { //新手指引
  232. this.isGuideShow=true
  233. }
  234. this.$store.dispatch("checkHandle",{type:'load',val:option}).then(res=>{
  235. app.globalData.isAuth = res.IsAuth;
  236. app.globalData.isBind = res.IsBind;
  237. app.globalData.isSx=true
  238. this.tabAct_id = option.tab || ''
  239. if (option.tabs !== '' && option.tabs) {
  240. this.strategyIndex = 4
  241. this.tabAct_idTwo = option.tabs
  242. }
  243. if(this.tabAct_id==31){
  244. this.strategyIndex = 5
  245. }
  246. this.getClassify()
  247. })
  248. this.$db.set('guideSole',1)//新手指引
  249. },
  250. computed: {},
  251. watch: {
  252. //监听tabs的变化
  253. tabAct_id: {
  254. handler() {
  255. if (this.tabAct_id && (this.strategyIndex !== 4 && this.strategyIndex !== 5)) {
  256. this.OrderColumn = 'NewTime'
  257. this.pitchOnId = 'NewTime'
  258. this.overallArrangementName = '按最近更新排序'
  259. this.overallArrangementId = ''
  260. this.page_no = 1;
  261. this.refresh = true;
  262. this.getIndustryList()
  263. this.getTradeList()
  264. this.overallArrangement.forEach(key => key.isShow = false)
  265. }
  266. this.strategyIndex == 4 ? this.getstrategyAll() : this.tabAct_idTwo = ''
  267. if (this.isScrollShow) {
  268. this.selectComponent('#menuItem').toggle(false);
  269. this.isScrollShow = false
  270. }
  271. },
  272. immediate: true
  273. }
  274. },
  275. methods: {
  276. //获取一级事件
  277. getClassify() {
  278. Reports.getClassify().then(res => {
  279. if(res.Ret!==200) return
  280. this.tabBars = res.Data.List ||[]
  281. if (!this.tabAct_id) {
  282. this.tabAct_id = res.Data.List[0].ChartPermissionId
  283. this.$store.dispatch("statistics",{PageType:'Report',ChartPermissionId:this.tabAct_id})
  284. }
  285. this.limitIsShow=this.tabBars.some(item=> item.IsShowSustainable)
  286. })
  287. },
  288. //获取二级事件
  289. getstrategyAll() {
  290. Reports.getstrategyAll().then(res => {
  291. this.tabBarsTow = res.Data.List
  292. if (!this.tabAct_idTwo) {
  293. this.tabAct_idTwo = res.Data.List[0].CategoryId
  294. }
  295. this.matchTypeName = res.Data.List[0].MatchTypeName
  296. })
  297. },
  298. //tabs切换事件
  299. toggleTab(item, index) {
  300. this.strategyIndex = index
  301. if (this.tabAct_id !== item.ChartPermissionId) {
  302. this.tabAct_id = item.ChartPermissionId;
  303. this.$store.dispatch("statistics",{PageType:'Report',ChartPermissionId:this.tabAct_id})
  304. this.pageNum = 1;
  305. uni.pageScrollTo({
  306. scrollTop: 0,
  307. duration: 0,
  308. });
  309. }
  310. },
  311. //tabs切换二级事件
  312. toggleTabTwo(item, index) {
  313. this.matchTypeName = item.MatchTypeName
  314. this.strategyIndexTwo = index
  315. if (this.tabAct_idTwo !== item.CategoryId) {
  316. this.tabAct_idTwo = item.CategoryId;
  317. this.pageNum = 1;
  318. uni.pageScrollTo({
  319. scrollTop: 0,
  320. duration: 0,
  321. });
  322. }
  323. },
  324. //点击产业报告的筛选条件
  325. pitchClick(item) {
  326. this.pitchOnName = item.name
  327. this.OrderColumn = item.id
  328. if (this.pitchOnId !== item.id) {
  329. this.pitchOnId = item.id;
  330. }
  331. },
  332. //获取报告所有品种接口
  333. getTradeList() {
  334. Reports.getTradeList({
  335. ChartPermissionId: this.tabAct_id
  336. }).then(res => {
  337. if (res.Ret == 200) {
  338. this.tradeList = res.Data.List || []
  339. }
  340. })
  341. },
  342. //获取产业报告所有品种接口
  343. getIndustryList() {
  344. Reports.getIndustryList({
  345. ChartPermissionId: this.tabAct_id,
  346. OrderColumn: this.OrderColumn,
  347. PageSize: this.pageSize,
  348. CurrentIndex: this.page_no,
  349. IsNewLabel: this.overallArrangementId.includes(1) ? '1' : '0',
  350. IsDeepLabel: this.overallArrangementId.includes(2) ? '1' : '0'
  351. }).then(res => {
  352. // this.industryList=res.Data.List
  353. this.status = this.page_no < res.Data.Paging.Pages ? 'loadmore' : 'nomore';
  354. this.totalPage = res.Data.Paging.Pages; //总页数
  355. if (this.page_no === 1) {
  356. this.industryList = res.Data.List || [];
  357. this.haveData = this.industryList.length ? true : false
  358. if (this.refresh) {
  359. uni.stopPullDownRefresh();
  360. this.refresh = false;
  361. }
  362. } else {
  363. this.industryList = this.industryList.concat(res.Data.List)
  364. }
  365. })
  366. },
  367. //跳转季度策略
  368. isClickHandle(id) {
  369. this.public({type:'show'},true,'/reportPages/industrialReport/industrialReport?id=',id)
  370. },
  371. //跳转产业报告
  372. goIndustryReport(id) {
  373. this.public({type:'show'},true,'/reportPages/IndustryReport/IndustryReport?id=',id)
  374. },
  375. //点击顶置的图标
  376. reportFllow(id) {
  377. Reports.reportFllow({
  378. IndustrialManagementId: id
  379. }).then(res => {
  380. if (res.Ret === 200) {
  381. this.industryList.forEach(key => {
  382. if(key.IndustrialManagementId == id){
  383. if(key.IsFollow==1){
  384. key.IsFollow=0
  385. }else{
  386. key.IsFollow=1
  387. }
  388. }
  389. })
  390. uni.showToast({
  391. title: res.Msg,
  392. duration: 2000
  393. });
  394. }
  395. })
  396. },
  397. hideIsred(is) {
  398. this.tabBarsTow[this.strategyIndexTwo].IsRed = is
  399. },
  400. /* 新布局产业选项*/
  401. overallBtn(index, item) {
  402. this.overallArrangement.forEach(key => {
  403. if (key.id == item.id) {
  404. key.isShow = !key.isShow
  405. }
  406. })
  407. },
  408. /* 新布局产业选项确定按钮 */
  409. replacementConfirm() {
  410. const arr = []
  411. this.overallArrangement.forEach(key => {
  412. if (key.isShow) {
  413. arr.push(key.id)
  414. }
  415. })
  416. this.overallArrangementId = arr.join(',')
  417. this.overallArrangementName = this.pitchOnName
  418. this.page_no = 1;
  419. this.status = 'loadmore'
  420. this.getIndustryList()
  421. this.selectComponent('#menuItem').toggle();
  422. },
  423. /* 新布局产业选项重置按钮 */
  424. replacementBtn() {
  425. this.OrderColumn = 'NewTime'
  426. this.pitchOnId = 'NewTime'
  427. this.overallArrangement.forEach(key => key.isShow = false)
  428. this.overallArrangementName = '按最近排序更新'
  429. },
  430. /* 判断页面滚动 */
  431. isscroll:Debounce(function(){
  432. this.isScrollShow = true
  433. }),
  434. /* 搜索 */
  435. goSearch() {
  436. this.public({type:'show'},true,'/reportPages/reportSearch/reportSearch')
  437. },
  438. public(type,flag,purl,price=''){
  439. return new Promise((resolve,reject) => {
  440. this.$store.dispatch('checkHandle',type).then(res => {
  441. app.globalData.isAuth = res.IsAuth;
  442. app.globalData.isBind = res.IsBind;
  443. if ((!res.IsAuth) && (!res.IsBind)) { //已授权已绑定
  444. if(flag){
  445. uni.navigateTo({
  446. url: purl+price,
  447. });
  448. }
  449. } else if (res.IsAuth) { //未授权
  450. uni.navigateTo({
  451. url: '/pages/authGuide/authGuide'
  452. })
  453. return
  454. } else if (res.IsBind && !res.IsAuth) { //已授权未绑定
  455. uni.navigateTo({
  456. url: '/pages/login/login'
  457. })
  458. return
  459. }
  460. })
  461. })
  462. }
  463. },
  464. /* 触底 */
  465. onReachBottom: Throttle(function() {
  466. this.isNum++
  467. if (this.status === 'nomore') return;
  468. this.status = 'loading';
  469. this.page_no++;
  470. this.getIndustryList()
  471. }),
  472. /* 下拉刷新 */
  473. onPullDownRefresh: Throttle(function() {
  474. if (this.strategyIndex == 4 || this.strategyIndex == 5) {
  475. this.pageNumFather = 1
  476. } else {
  477. this.industryList = []
  478. this.pageNumFather = null
  479. this.page_no = 1;
  480. this.refresh = true;
  481. this.getIndustryList()
  482. this.getTradeList()
  483. }
  484. wx.stopPullDownRefresh();
  485. }),
  486. onShow() {
  487. if(this.tabAct_id){
  488. this.$store.dispatch("statistics",{PageType:'Report',ChartPermissionId:this.tabAct_id})
  489. }
  490. if (this.tabAct_id && app.globalData.isSx) {
  491. this.getTradeList()
  492. }
  493. },
  494. /**
  495. * 用户点击分享
  496. */
  497. onShareAppMessage: function(res) {
  498. return {
  499. title: "报告",
  500. path: '/pages/reportForm/reportForm?tab=' + this.tabAct_id + '&tabs=' + this.tabAct_idTwo,
  501. success: (res) => {},
  502. fail: (err) => {}
  503. }
  504. },
  505. /**
  506. *监听页面滚动
  507. */
  508. onPageScroll() {
  509. if (this.isScrollShow) {
  510. this.selectComponent('#menuItem').toggle(false);
  511. this.isScrollShow = false
  512. }
  513. },
  514. onHide(){
  515. if(this.strategyIndex==4 || this.strategyIndex==5) return
  516. this.selectComponent('#menuItem').toggle(false);
  517. },
  518. }
  519. </script>
  520. <style scoped lang="scss">
  521. .reportForm-container {
  522. background-color: #f6f6f6;
  523. height: 100vh;
  524. .index-fixed {
  525. width: 750rpx;
  526. position: fixed;
  527. left: 0;
  528. top: 0;
  529. z-index: 999;
  530. .index-header {
  531. background-color: #fff;
  532. padding: 32rpx 34rpx 0;
  533. position: relative;
  534. .sea_ipt_placeholder {
  535. color: #8D8D8D;
  536. opacity: 0.7;
  537. }
  538. .sea_ipt {
  539. width: 100%;
  540. height: 70rpx;
  541. font-size: 30rpx;
  542. color: #707070;
  543. background-color: #F6F6F6;
  544. padding: 0 34rpx 0 70rpx;
  545. border-radius: 70rpx;
  546. border: 1rpx solid #E5E5E5;
  547. }
  548. .search_ico {
  549. display: block;
  550. position: absolute;
  551. color: #8D8D8D;
  552. left: 60rpx;
  553. top: 50%;
  554. z-index: 100;
  555. // transform: translateY(-50%);
  556. }
  557. }
  558. .tab-cont {
  559. padding: 0 26rpx ;
  560. height: 115rpx;
  561. background-color: #fff;
  562. font-size: 32rpx;
  563. .scroll-tab {
  564. position: relative;
  565. width: 100%;
  566. white-space: nowrap;
  567. }
  568. .limit-box {
  569. position: absolute;
  570. text-align: center;
  571. display: inline-block;
  572. padding-right: 50rpx;
  573. top: 6rpx;
  574. margin-left: -50rpx;
  575. image {
  576. width: 46rpx;
  577. height: 26rpx;
  578. }
  579. }
  580. .scroll-tab-item {
  581. text-align: center;
  582. display: inline-block;
  583. padding: 32rpx 8rpx 30rpx 8rpx;
  584. margin-right: 51rpx;
  585. border-bottom: 8rpx solid transparent;
  586. position: relative;
  587. &:last-child {
  588. margin-right: 0;
  589. }
  590. &.active {
  591. border-bottom: none;
  592. color: #2C83FF;
  593. font-weight: 700;
  594. }
  595. .border_act {
  596. width: 100%;
  597. height: 8rpx;
  598. position: absolute;
  599. bottom: 0;
  600. left: 0;
  601. }
  602. }
  603. }
  604. }
  605. .forindustry {
  606. margin-bottom: 10rpx;
  607. }
  608. .industrial_eport_one {
  609. padding-top: 180rpx;
  610. background-color: #f6f6f6;
  611. padding-bottom: 10rpx;
  612. }
  613. .strategy {
  614. margin-top: 20rpx;
  615. height: 65rpx;
  616. line-height: 65rpx;
  617. background-color: #fff;
  618. .row {
  619. width: 100%;
  620. height: 170rpx;
  621. background-color: #f6f6f6;
  622. }
  623. .tab-cont-two {
  624. position: fixed;
  625. top: 210rpx;
  626. left: 0;
  627. width: 100%;
  628. z-index: 99;
  629. height: 100rpx;
  630. background-color: #fff;
  631. padding: 0 30rpx;
  632. .scroll-tab-tow {
  633. padding-top: 20rpx;
  634. width: 100%;
  635. white-space: nowrap;
  636. .scroll-tab-item {
  637. position: relative;
  638. display: inline-block;
  639. height: 54rpx;
  640. line-height: 54rpx;
  641. padding: 0 23rpx;
  642. background: #F7F7F7;
  643. border-radius: 27px;
  644. color: #999999;
  645. margin-right: 46rpx;
  646. .reg-text {
  647. position: absolute;
  648. top: -6rpx;
  649. right: -8rpx;
  650. width: 14rpx;
  651. height: 14rpx;
  652. background-color: #FF0000;
  653. border-radius: 50%;
  654. }
  655. }
  656. .active {
  657. color: #FFFFFF !important;
  658. background-color: #2C83FF !important;
  659. }
  660. }
  661. }
  662. }
  663. .industry {
  664. margin-top: 20rpx;
  665. .industry-sticky {
  666. position: sticky;
  667. top: 210rpx;
  668. z-index: 99;
  669. }
  670. .industry-top {
  671. display: flex;
  672. justify-content: space-between;
  673. background-color: #fff;
  674. height: 90rpx;
  675. padding: 0 30rpx;
  676. color: #333333;
  677. font-weight: 700;
  678. font-size: 32rpx;
  679. line-height: 90rpx;
  680. overflow: hidden;
  681. .img-top-box {
  682. display: flex;
  683. align-items: center;
  684. image {
  685. width: 44rpx;
  686. height: 44rpx;
  687. margin-right: 16rpx;
  688. }
  689. }
  690. .menu-items {
  691. background-color: #F8F8FA;
  692. display: flex;
  693. padding: 0rpx 30rpx 20rpx;
  694. .menu-items-box {
  695. flex: 1;
  696. display: flex;
  697. font-size: 28rpx;
  698. font-weight: 400;
  699. .items-box {
  700. width: 40rpx;
  701. }
  702. }
  703. }
  704. .menu-items-tow {
  705. display: flex;
  706. padding: 30rpx 30rpx 20rpx;
  707. font-size: 28rpx;
  708. color: #333333;
  709. font-weight: 400;
  710. background-color: #F8F8FA;
  711. .items-tow {
  712. display: flex;
  713. flex: 100%;
  714. view {
  715. width: 40rpx;
  716. }
  717. }
  718. .items-act {
  719. font-weight: bold;
  720. }
  721. }
  722. .replacement-box {
  723. background-color: #F8F8FA;
  724. }
  725. .replacement {
  726. margin: 0rpx 30rpx 20rpx;
  727. display: flex;
  728. background-color: #2C83FF;
  729. opacity: 1;
  730. height: 60rpx;
  731. line-height: 58rpx;
  732. font-size: 28rpx;
  733. font-weight: 400;
  734. color: #FFFFFF;
  735. border-radius: 30rpx;
  736. text {
  737. flex: 1;
  738. text-align: center;
  739. }
  740. .replacement-box {
  741. border: 1rpx solid #2C83FF;
  742. opacity: 1;
  743. color: #2C83FF;
  744. background: #FFFFFF;
  745. border-radius: 28rpx 0rpx 28rpx 28rpx;
  746. }
  747. }
  748. }
  749. .industry-box {
  750. margin-top: 5rpx;
  751. background-color: #fff;
  752. height: 90rpx;
  753. line-height: 90rpx;
  754. padding: 0 30rpx;
  755. display: flex;
  756. justify-content: space-between;
  757. color: #000000;
  758. font-size: 30rpx;
  759. .box-left {
  760. position: relative;
  761. // width: 150rpx;
  762. padding-right: 30rpx;
  763. height: 90rpx;
  764. text {
  765. position: absolute;
  766. top: 20rpx;
  767. right: 5rpx;
  768. width: 14rpx;
  769. height: 14rpx;
  770. background-color: #f00;
  771. border-radius: 50%;
  772. }
  773. }
  774. .box-right {
  775. color: #999999;
  776. font-size: 26rpx;
  777. // width: 45%;
  778. display: flex;
  779. justify-content: flex-end;
  780. // justify-content: space-between;
  781. text-align: right;
  782. align-items: right;
  783. u-icon {
  784. padding-left: 15rpx;
  785. }
  786. }
  787. }
  788. .industry-content {
  789. background-color: #fff;
  790. padding: 0 30rpx;
  791. display: flex;
  792. height: 90rpx;
  793. margin: 3rpx 0;
  794. .industry-box-left {
  795. width: 50rpx;
  796. display: flex;
  797. align-items: center;
  798. image {
  799. width: 38rpx;
  800. height: 34rpx;
  801. }
  802. }
  803. .industry-box-right {
  804. width: 100%;
  805. display: flex;
  806. justify-content: space-between;
  807. align-items: center;
  808. .ndustry-box-read {
  809. display: flex;
  810. color: #333;
  811. font-size: 30rpx;
  812. padding-left: 10rpx;
  813. image {
  814. margin-left: 10rpx;
  815. width: 28rpx;
  816. height: 36rpx;
  817. }
  818. }
  819. .ndustry-box-arrow {
  820. display: flex;
  821. align-items: center;
  822. .read {
  823. width: 14rpx;
  824. height: 14rpx;
  825. background-color: #FF0000;
  826. border-radius: 50%;
  827. margin-right:10rpx;
  828. }
  829. .ndustry-box-text {
  830. padding-right:20rpx;
  831. color: #999999;
  832. font-size: 26rpx;
  833. }
  834. }
  835. }
  836. }
  837. .content-box {
  838. background-color: #fff;
  839. padding: 20rpx 25rpx 0;
  840. .img-box {
  841. display: flex;
  842. height: 90rpx;
  843. line-height: 90rpx;
  844. box-sizing: border-box;
  845. width: 100%;
  846. vertical-align: middle !important;
  847. image {
  848. padding-top: 18rpx;
  849. width: 44rpx;
  850. height: 44rpx;
  851. vertical-align: middle;
  852. }
  853. text {
  854. display: inline-block;
  855. padding-left: 16rpx;
  856. vertical-align: middle !important;
  857. }
  858. }
  859. }
  860. }
  861. .read-more {
  862. margin-left: 60rpx;
  863. display: flex;
  864. flex-wrap: wrap;
  865. .text-box {
  866. // display: inline-block;
  867. margin-bottom: 27rpx;
  868. margin-right: 40rpx;
  869. padding: 0;
  870. font-size: 24rpx;
  871. color: #408FFF;
  872. width: 170rpx;
  873. height: 46rpx;
  874. line-height: 46rpx;
  875. text-align: center !important;
  876. background: url(../../static/img/report_bg.png) no-repeat;
  877. background-size: 100% 100%;
  878. text-indent: 0em;
  879. }
  880. }
  881. /deep/ .van-dropdown-menu {
  882. background-color: #fff;
  883. box-shadow: none !important;
  884. // align-items: center;
  885. padding-top: 20rpx;
  886. }
  887. /deep/ .van-ellipsis {
  888. color: #333333 !important;
  889. font-size: 24rpx;
  890. font-weight: 400;
  891. }
  892. /deep/ .van-dropdown-menu__item {
  893. // width: 190rpx;
  894. padding-right: 20rpx;
  895. margin-left: 20rpx;
  896. height: 51rpx;
  897. border-radius: 26rpx;
  898. background: #F8F8FA;
  899. }
  900. /deep/.van-dropdown-item {
  901. margin-top: -10rpx;
  902. }
  903. }
  904. .text-bottom-none {
  905. width: 100%;
  906. text-align: center;
  907. }
  908. </style>