InformationData1.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769
  1. <template>
  2. <view class="">
  3. <navbar-search :list="categoryList" @selectedItem="getSelectedItem"></navbar-search>
  4. <!-- 筛选 -->
  5. <view class="selectCondition">
  6. <u-dropdown ref="uDropdown" @open="open">
  7. <!-- 指标 -->
  8. <u-dropdown-item :title="$i18n.locale=='zh'?'指标':'indicator'">
  9. <view class="slot-content">
  10. <!-- 选择指标 -->
  11. <view style="height:1168upx;position: relative;">
  12. <scroll-view scroll-y="true" class="left">
  13. <view class="row" v-for="(fItem, fIndex) in categoryList" :key="fItem.id" :class="[fIndex===showCategoryIndex ?'on':'']" @tap="showCategory(fIndex)">
  14. <view class="text" :style="$i18n.locale=='zh'?'':'text-algin:center;'">{{ $i18n.locale=='zh'?fItem.indexName:fItem.indexEnName }}</view>
  15. </view>
  16. </scroll-view>
  17. <scroll-view scroll-y="true" class="right">
  18. <view v-for="(fItem, fIndex) in categoryList" :key="fItem.id" @tap="showCategory(fIndex)">
  19. <view v-if="fIndex === showCategoryIndex" class="category">
  20. <view v-for="(item,index) in fItem.child" :key="'c'+index" @click="getCategory2(item,index)" :class="item.child.length>0?'':'cateText'">
  21. <view :class="{'getCategory2':item.child.length>0,'nosumenu':item.child.length==0}"
  22. :style="item.child.length>0?'font-weight:700;color:#0079ef':'height:90upx;line-height:90upx;font-weight:400;'">
  23. {{ $i18n.locale=='zh'?item.indexName:item.indexEnName }}
  24. </view>
  25. <view class="threemenu">
  26. <view v-for="(i,j) in item.child" :key="j" class="cateText" @click="getCategory(item,i,index,j)"
  27. :class="{'active':cThreeSubmenu===j && index===cTwoSubmenu}"> {{$i18n.locale=='zh'?i.indexName:i.indexEnName}}
  28. </view>
  29. </view>
  30. </view>
  31. </view>
  32. </view>
  33. </scroll-view>
  34. </view>
  35. </view>
  36. </u-dropdown-item>
  37. <!-- 世界 -->
  38. <u-dropdown-item :title="$i18n.locale=='zh'?'世界':'world'" >
  39. <view class="slot-content">
  40. <view style="height:1168upx;position: relative;">
  41. <scroll-view scroll-y="true" class="left">
  42. <view class="row" v-for="(fItem, fIndex) in countryList" :key="fItem.id" :class="[fIndex === showCountryIndex ? 'on' : '']"
  43. @tap="showCategory2(fIndex)">
  44. <view class="text">{{ $i18n.locale=='zh'?fItem.label:fItem.labelEn }}</view>
  45. </view>
  46. </scroll-view>
  47. <scroll-view scroll-y="true" class="right">
  48. <view v-for="(fItem, fIndex) in countryList" :key="'fItem' + fIndex" @tap="showCategory2(fIndex)">
  49. <view v-if="fIndex === showCountryIndex && fItem.children" class="category">
  50. <view v-for="(item,index) in fItem.children" :key="index"
  51. @click="getCategory2(item,index)" :class="item.length>0?'':'cate'" >
  52. <view class=""><text :class="item.ifClick?'cateText3':'cateText2'" @click="getCountryId(item,index)">{{item.label}}</text>
  53. </view>
  54. </view>
  55. </view>
  56. </view>
  57. </scroll-view>
  58. </view>
  59. </view>
  60. </u-dropdown-item>
  61. <!-- 时间 -->
  62. <u-dropdown-item :title="$i18n.locale=='zh'?'时间':'time'" >
  63. <view class="slot-content" >
  64. <!-- 时间选择 -->
  65. <view class="date" style="height:1168upx;position:relative;background:#fff">
  66. <!-- <u-calendar v-model="showDateFlag"-->
  67. <!-- :mode="'range'"-->
  68. <!-- :start-text="i18n('resourceStart')"-->
  69. <!-- :end-text="i18n('resourceEnd')"-->
  70. <!-- @change="change"></u-calendar>-->
  71. <calendar v-model="showDateFlag"
  72. @change="change"
  73. mode="range"
  74. :start-text="i18n('resourceStart')" :end-text="i18n('resourceEnd')" :toolTip="i18n('resourceSelectTime')" max-date="2030-12-31"
  75. :range-color="'#2979ff'" :range-bg-color="'rgba(41,121,255,0.13)'" :active-bg-color="'#2979ff'" :btn-type="'primary'"
  76. :textzhi="$i18n.locale=='zh'?'至':' To '"
  77. >
  78. </calendar>
  79. </view>
  80. </view>
  81. </u-dropdown-item>
  82. </u-dropdown>
  83. </view>
  84. <!-- 图表区域 -->
  85. <view class="qiun-columns">
  86. <!-- 按钮区 -->
  87. <view class="qiun-bg-white qiun-title-bar qiun-common-mt" >
  88. <!-- 标题 -->
  89. <view class="qiun-title-dot-light">{{title}} </view>
  90. <!-- 切换线/柱图 -->
  91. <view class="changechart">
  92. <text :class="canvasType==1?'uChars2':'uChars1'" @click="canvasTypeChange(1)">{{i18n('ColumnChart')}} </text>
  93. <text :class="canvasType==2?'uChars2':'uChars1'" @click="canvasTypeChange(2)">{{i18n('LineChart')}} </text>
  94. </view>
  95. </view>
  96. <!-- 图表 -->
  97. <view class="qiun-charts" >
  98. <canvas v-if="canvasType==1" canvas-id="canvasColumn" id="canvasColumn" class="charts" @touchstart="touchColumn"></canvas>
  99. <canvas v-else canvas-id="canvasLineA" id="canvasLineA" class="charts" @touchstart="touchLineA"></canvas>
  100. </view>
  101. <!-- 重置按钮 -->
  102. <view class="reset">
  103. <u-button type="primary" @click="Reset">{{i18n('Reset')}}</u-button>
  104. </view>
  105. </view>
  106. <RelevantIndicators :dataList="dataList"></RelevantIndicators>
  107. <u-toast ref="uToast" />
  108. </view>
  109. </template>
  110. <script>
  111. import uCharts from '@/static/js/u-charts.js';
  112. import viewpoint from '../../conference/meetingIndexCh/viewpoint.vue';
  113. import RelevantIndicators from './dom/RelevantIndicators.vue'
  114. import navbarSearch from './dom/navbarSearch.vue'
  115. import calendar from "../../resourceSharing/calendar";
  116. var _self;
  117. var canvaColumn=null;
  118. var canvaLineA = null;
  119. export default {
  120. components: {
  121. viewpoint,
  122. RelevantIndicators,
  123. navbarSearch,
  124. calendar
  125. },
  126. data() {
  127. return {
  128. show1:false,
  129. show2:false,
  130. showDateFlag:true,
  131. yearStartShow:false,
  132. cWidth:'',
  133. cHeight:'',
  134. pixelRatio:1,
  135. serverData:'',
  136. plus:false,
  137. dataList:[
  138. // {
  139. // icon:require('../../../static/img/infomationdata/e1.png'),
  140. // label:'核发电总量'
  141. // },{
  142. // icon:require('../../../static/img/infomationdata/e2.png'),
  143. // label:'电力'
  144. // },{
  145. // icon:require('../../../static/img/infomationdata/e3.png'),
  146. // label:'风发电总量'
  147. // },{
  148. // icon:require('../../../static/img/infomationdata/e2.png'),
  149. // label:'水发电总量'
  150. // },{
  151. // icon:require('../../../static/img/infomationdata/e2.png'),
  152. // label:'其他发电总量'
  153. // }
  154. ],
  155. list: [
  156. ],
  157. cTwoSubmenu:-1,
  158. cThreeSubmenu:-1,
  159. background:{
  160. backgroundImage: 'linear-gradient(270deg, #4BC0E2 0%, #538BE7 100%)',
  161. },
  162. backStyle:{
  163. color:'#fff'
  164. },
  165. categoryList:[],
  166. showCategoryIndex: 0, // 一级菜单高亮显示序号
  167. CategoryList:{
  168. },
  169. title:null,// 头部展示的单位
  170. activeTitle:null,//选择的类型
  171. canvasType:1,// 控制显示柱形或折线
  172. countryName:[],
  173. cancelText:this.$t('common.Back'),
  174. submit:this.$t('common.submit'),
  175. activeType:{
  176. indexName:'发电总量',
  177. indexEnName:'Total power generation',
  178. source:{
  179. "IEA":{
  180. "index":{
  181. "发电总量":"132",
  182. },
  183. },
  184. }
  185. },
  186. countryId:[],
  187. TimeType:null,
  188. startTime:2013,
  189. endTime:2020,
  190. time:['2013','2014','2015','2016','2017','2018','2019','2020'],
  191. params: {
  192. year: true,
  193. month: false,
  194. day: false,
  195. hour: false,
  196. minute: false,
  197. second: false
  198. },
  199. showCountryIndex:0,
  200. countryList:[
  201. {
  202. label:'亚洲',
  203. labelEn:'Asia',
  204. children:[],
  205. },
  206. {
  207. label:'非洲',
  208. children:[],
  209. labelEn:'Africa'
  210. },
  211. {
  212. label:'欧洲',
  213. children:[],
  214. labelEn:'Europe'
  215. },
  216. {
  217. label:'北美洲',
  218. children:[],
  219. labelEn:'Northamerica'
  220. },
  221. {
  222. label:'南美洲',
  223. children:[],
  224. labelEn:'Southamerica'
  225. },
  226. {
  227. label:'大洋洲',
  228. children:[],
  229. labelEn:'Oceania'
  230. },
  231. ],
  232. selectedItem: '',
  233. }
  234. },
  235. onLoad() {
  236. _self = this;
  237. if(this.$i18n.locale=='zh'){
  238. this.countryName=['世界']
  239. }else {
  240. this.countryName=['WORLD']
  241. }
  242. this.cWidth=uni.upx2px(750);
  243. this.cHeight=uni.upx2px(500);
  244. this.getServerData();
  245. this.getCountryList();
  246. },
  247. // 监听日期选择器关闭
  248. watch:{
  249. },
  250. methods: {
  251. showCategory(index) {
  252. this.showCategoryIndex = index;
  253. },
  254. showCategory2(index) {
  255. this.showCountryIndex = index;
  256. },
  257. yearStartShowChange(type){
  258. this.yearStartShow = true;
  259. this.TimeType = type;
  260. },
  261. canvasTypeChange(num){
  262. this.canvasType = num;
  263. this.getCategory(null,this.activeType);
  264. },
  265. timeBack(e){
  266. console.log(e)
  267. if(this.TimeType=='start'){
  268. this.startTime = e.year;
  269. }else {
  270. this.endTime = e.year;
  271. }
  272. if(this.startTime-0 >this.endTime-0 || (this.endTime -0 ) - (this.startTime - 0)>7){
  273. this.$refs.uToast.show({
  274. title: this.$i18n.locale=='zh'?'请正确选择时间,时间段为7年内':'Please select the right time period within 7 years',
  275. type: 'error',
  276. });
  277. this.startTime = (this.endTime -0 ) - 7;
  278. this.endTime = (this.startTime -0 ) + 7;
  279. }
  280. let timeArr = [];
  281. this.time = [];
  282. for(let i=0; i<= Number(this.endTime)-Number(this.startTime); i++){
  283. timeArr.push(String(Number(this.startTime)+i))
  284. }
  285. this.time = timeArr;
  286. this.getCategory(null,this.activeType);
  287. },
  288. Reset(){
  289. uni.redirectTo({
  290. url: '/pages/information/InformationData/InformationData'
  291. });
  292. },
  293. plusChange(){
  294. this.plus=!this.plus;
  295. if(this.plus){
  296. plus.screen.lockOrientation('landscape-primary');//横屏
  297. this.Reset();
  298. }else {
  299. plus.screen.lockOrientation('portrait-primary');//竖屏
  300. }
  301. },
  302. i18n (data) {
  303. return this.$t('common.' + data);
  304. },
  305. getDataList(num){
  306. if(num==1){
  307. this.show1 = true;
  308. }else {
  309. this.show2 = true;
  310. }
  311. },
  312. getCategory(item,i,index,j){
  313. console.log(1)
  314. this.activeType=i;
  315. let source =typeof(this.activeType.source)!=='string'?JSON.stringify(this.activeType.source):this.activeType.source;
  316. let params={
  317. "Source":JSON.parse(source),
  318. "country":this.countryId.length>0?this.countryId:["93BC2730ED0A402186F596F6A01C007E"],
  319. "time":this.time,
  320. "language":this.$i18n.locale,
  321. }
  322. this.show1=false;
  323. this.show2=false;
  324. this.getInitialCategory(params);
  325. this.cTwoSubmenu = index;
  326. this.cThreeSubmenu = j;
  327. this.close(index)
  328. },
  329. getCategory2(item,index){
  330. console.log(1)
  331. if(item?.child?.length>0){
  332. return;
  333. }else {
  334. this.activeType=item;
  335. let source =typeof(this.activeType.source)!=='string'?JSON.stringify(this.activeType.source):this.activeType.source;
  336. let params={
  337. "Source":JSON.parse(this.activeType.source),
  338. "country":this.countryId.length>0?this.countryId:["93BC2730ED0A402186F596F6A01C007E"],
  339. "time":this.time,
  340. "language":this.$i18n.locale,
  341. }
  342. this.show1=false;
  343. this.getInitialCategory(params);
  344. }
  345. },
  346. async getCountryList(){
  347. let originalCountryData = await this.$api.json('originalCountryData');
  348. this.$nextTick(function(){
  349. let countryList=this.countryList;
  350. originalCountryData.forEach((originalItem,index)=>{
  351. countryList.forEach((item,j) =>{
  352. if(originalItem.CONTINENT_NAME == item.label){
  353. originalItem.value=originalItem.COUNTRY_ID;
  354. originalItem.label=this.$i18n.locale=='zh'?originalItem.COUNTRY_CN_NAME:originalItem.COUNTRY_EN_NAME;
  355. this.$set(originalItem,'ifClick',false);
  356. item.children.push(originalItem);
  357. item.value=originalItem.COUNTRY_EN_NAME;
  358. }
  359. })
  360. });
  361. this.list = countryList;
  362. })
  363. },
  364. getCountryId(item,index){
  365. item.ifClick=!item.ifClick;
  366. if(item.ifClick==true){
  367. this.countryId.push(item.value);
  368. if(this.countryName[0]=='世界'){
  369. this.countryName=[];
  370. }
  371. this.countryName.push(item.label);
  372. }else {
  373. console.log(this.countryId);
  374. const y = this.countryId.indexOf(item.value);
  375. this.countryId.splice(y,1);
  376. this.countryName.splice(y,1);
  377. }
  378. this.getCategory(0,this.activeType)
  379. },
  380. async getServerData(){
  381. const res = await this.$myRequest({
  382. url: '/op/geiIntegratedDataMenus/getMenu',
  383. data: {}
  384. });
  385. this.categoryList= res.data;
  386. let params = {
  387. "Source":{
  388. "IEA":{
  389. "index":{'发电总量':"132"},
  390. },
  391. },
  392. "country":["93BC2730ED0A402186F596F6A01C007E"],
  393. "time":this.time,
  394. "language":this.$i18n.locale,
  395. }
  396. this.getInitialCategory(params);
  397. },
  398. async getInitialCategory(params){
  399. const res = await this.$myRequest({
  400. url: '/op/geiIntegratedDataMenus/getChartData',
  401. data: {...params},
  402. method:'post',
  403. type:'payload'
  404. });
  405. if(res.data){
  406. this.canvas(res.data);
  407. }
  408. },
  409. canvas(data){
  410. this.title=data[0].unitY;// 头部展示的单位
  411. this.activeTitle=this.$i18n.locale=='zh'?this.activeType.indexName:this.activeType.indexEnName;//选择的类型
  412. let series = [];
  413. let seriesItem = {};
  414. data.forEach((item,index)=>{
  415. seriesItem = {
  416. "name": this.countryName[index],
  417. "data":item.y
  418. }
  419. series.push(seriesItem);
  420. })
  421. let Column = {
  422. "categories": data[0].x,
  423. "series": series
  424. };
  425. if(this.canvasType==1){
  426. this.showColumn('canvasColumn', Column);
  427. }else {
  428. this.showLineA("canvasLineA", Column);
  429. }
  430. },
  431. showColumn(canvasId,chartData){
  432. canvaColumn=new uCharts({
  433. $this:_self,
  434. canvasId: canvasId,
  435. type:'column',
  436. legend:{show:true},
  437. fontSize:11,
  438. background:'#FFFFFF',
  439. pixelRatio:_self.pixelRatio,
  440. animation: true,
  441. categories: chartData.categories,
  442. series: chartData.series,
  443. xAxis: {
  444. disableGrid:true,
  445. },
  446. yAxis: {
  447. },
  448. dataLabel: false,
  449. width: _self.cWidth*_self.pixelRatio,
  450. height: _self.cHeight*_self.pixelRatio,
  451. extra: {
  452. column: {
  453. type:'group',
  454. width: _self.cWidth*_self.pixelRatio*0.45/chartData.categories.length
  455. }
  456. }
  457. })
  458. console.log(canvaColumn)
  459. },
  460. showLineA(canvasId, chartData) {
  461. canvaLineA=new uCharts({
  462. $this:_self,
  463. canvasId: canvasId,
  464. type: 'line',
  465. fontSize:11,
  466. legend:{show:true},
  467. dataLabel:false,
  468. dataPointShape:true,
  469. background:'#FFFFFF',
  470. pixelRatio:_self.pixelRatio,
  471. categories: chartData.categories,
  472. series: chartData.series,
  473. animation: true,
  474. xAxis: {
  475. type:'grid',
  476. gridColor:'#CCCCCC',
  477. gridType:'dash',
  478. dashLength:8
  479. },
  480. yAxis: {
  481. gridType:'dash',
  482. gridColor:'#CCCCCC',
  483. dashLength:8,
  484. splitNumber:5,
  485. min:10,
  486. max:180,
  487. },
  488. width: _self.cWidth*_self.pixelRatio,
  489. height: _self.cHeight*_self.pixelRatio,
  490. extra: {
  491. line:{
  492. type: 'straight'
  493. }
  494. }
  495. });
  496. },
  497. touchLineA(e) {
  498. canvaLineA.showToolTip(e,{
  499. format: function(item, category) { return item.data }
  500. })
  501. },
  502. touchColumn(e){
  503. canvaColumn.showToolTip(e, {
  504. format: function (item, category) {
  505. if(typeof item.data === 'object'){
  506. return category + ' ' + item.name + ':' + item.data.value
  507. }else {
  508. return category + ' ' + item.name + ':' + item.data
  509. }
  510. }
  511. });
  512. },
  513. openPropDialog(payload){
  514. },
  515. //下拉菜单打开触发回调
  516. open(index) {
  517. // if(index===2) this.showDateFlag=true;
  518. // else this.showDateFlag=false
  519. if(index===2) this.showDateFlag=true;
  520. this.$refs.uDropdown.highlight();
  521. console.log(this.showDateFlag)
  522. },
  523. //下拉菜单关闭触发回调
  524. close(index){
  525. setTimeout(()=>{
  526. this.$refs.uDropdown.close();
  527. this.cTwoSubmenu = -1;
  528. this.cThreeSubmenu = -1;
  529. },100)
  530. this.$refs.uDropdown.highlight(index);
  531. },
  532. //日期选择器
  533. change(e) {
  534. console.log(e);
  535. },
  536. // 获取列表选中值
  537. getSelectedItem(value) {
  538. this.selectedItem = value
  539. },
  540. }
  541. }
  542. </script>
  543. <style lang="scss" scoped>
  544. uni-page-body{
  545. padding-top:0;
  546. }
  547. page{
  548. background:#fff;
  549. width:750upx;
  550. overflow-x:hidden;
  551. height:100%;
  552. padding-bottom:20upx;
  553. overflow:hidden;
  554. }
  555. .qiun-padding{padding:2%; width:96%;}
  556. .qiun-wrap{display:flex; flex-wrap:wrap;}
  557. .qiun-rows{display:flex; flex-direction:row !important;}
  558. .qiun-columns{display:flex; flex-direction:column !important;border-top:20upx solid #f6f6f6}
  559. .qiun-common-mt{margin-top:10upx;}
  560. .qiun-bg-white{background:#FFFFFF;}
  561. .qiun-title-bar{
  562. padding:10upx 2%; flex-wrap:nowrap;display:flex;align-items:center;
  563. justify-content: space-between;
  564. .changechart{
  565. display:flex;
  566. align-items:center;
  567. }
  568. }
  569. .qiun-title-dot-light{padding-left: 10upx; font-size: 28upx;color: #aaa;width:50%;}
  570. .qiun-charts{width: 750upx; height:500upx;background-color: #FFFFFF;}
  571. .charts{width: 750upx; height:500upx;background-color: #FFFFFF;}
  572. .qiun-charts {
  573. width: 750upx;
  574. height: 500upx;
  575. background-color: #FFFFFF;
  576. }
  577. .uChars1 {
  578. padding: 10upx 20upx;
  579. background-color:#F1F2F4;
  580. font-size:26upx;
  581. color:#333;
  582. }
  583. .uChars2 {
  584. padding: 10upx 20upx;
  585. background-color: #E5F0FE;
  586. color: #1890FF;
  587. font-size:26upx;
  588. }
  589. .charts {
  590. width: 750upx;
  591. height: 500upx;
  592. background-color: #FFFFFF;
  593. }
  594. .data-text {
  595. margin:0 40upx;
  596. height: 100upx;
  597. line-height: 100upx;
  598. border-top:1px solid #f1f2f3;
  599. border-bottom:1px solid #f1f2f3;
  600. }
  601. .data-text2 {
  602. line-height: 50px;
  603. border-top:1px solid #f1f2f3;
  604. border-bottom:1px solid #f1f2f3;
  605. }
  606. .data-text:active {
  607. background-color: #f2f2f2;
  608. }
  609. .cate {
  610. display: inline-block;
  611. width: 240upx;
  612. vertical-align: middle;
  613. margin-right: 20upx;
  614. }
  615. .cateText2 {
  616. padding: 10upx;
  617. margin: 10upx 20upx 10upx 0;
  618. display: inline-block;
  619. width: 240upx;
  620. vertical-align: middle;
  621. background: #f1f2f3;
  622. text-align: center;
  623. }
  624. .cateText3 {
  625. padding: 10upx;
  626. margin: 10upx 20upx 10upx 0;
  627. display: inline-block;
  628. width: 240upx;
  629. vertical-align: middle;
  630. background-color: #0079ef;
  631. color: #fff;
  632. text-align: center;
  633. }
  634. .cateText :active{
  635. color: red;
  636. }
  637. .data-year {
  638. padding: 20upx 30upx;
  639. }
  640. .left,
  641. .right {
  642. position: absolute;
  643. height:100%;
  644. top:0;
  645. bottom: 0upx;
  646. }
  647. .left {
  648. width: 24%;
  649. left: 0upx;
  650. background:#F2F2F2;
  651. }
  652. .right {
  653. width: 76%;
  654. left: 24%;
  655. background-color: #fff;
  656. margin-left:0;
  657. padding:0 20upx;
  658. }
  659. .row {
  660. width: 100%;
  661. height: 90upx;
  662. display: flex;
  663. align-items: center;
  664. .text {
  665. width:100%;
  666. position:relative;
  667. font-size:28upx;
  668. display: flex;
  669. justify-content: center;
  670. color: #3c3c3c;
  671. text-align: center;
  672. .block {
  673. position: absolute;
  674. width: 0upx;
  675. left: 0;
  676. }
  677. }
  678. &.on {
  679. height:90upx;
  680. background-color:#fff;
  681. .text {
  682. font-size: 30upx;
  683. color: #1677FD;
  684. .block {
  685. width: 6upx;
  686. height:100%;
  687. left: 10upx;
  688. }
  689. }
  690. }
  691. }
  692. // .cateText {
  693. // padding:20upx 0;
  694. // border:1px solid #f2f2f2;
  695. // &.active{
  696. // border:1px solid #1777FE;
  697. // color:#1777FE;
  698. // background:#fff;
  699. // }
  700. // }
  701. .threemenu{
  702. display:flex;
  703. flex-wrap:wrap;
  704. .cateText{
  705. margin:0 20upx 20upx 0;
  706. background:#F2F2F2;
  707. padding:20upx;
  708. border-radius:8upx;
  709. width:46%;
  710. overflow:hidden;
  711. text-overflow:ellipsis;
  712. white-space: nowrap;
  713. text-align:center;
  714. &.active{
  715. border:1px solid #1777FE;
  716. color:#1777FE;
  717. background:#fff;
  718. }
  719. }
  720. }
  721. .getCategory2{
  722. height:90upx;
  723. line-height:90upx;
  724. font-weight:700;
  725. color:#0079ef
  726. }
  727. // 重置按钮
  728. .reset{
  729. width:90%;
  730. margin:0 auto 40upx;
  731. .u-btn--primary{
  732. border-radius:60upx;
  733. background:linear-gradient(90deg,#33AFFF,#1777FE);
  734. font-size:32upx;
  735. font-weight:600;
  736. }
  737. }
  738. // 筛选
  739. .selectCondition{
  740. position: relative;
  741. ::v-deep .u-dropdown__content{
  742. border-top:2upx solid #eaeaea !important;
  743. }
  744. }
  745. </style>