| | |
| | | <div class="swipe-tabs"> |
| | | <swiper :options="swiperOption" ref="swiperTabs"> |
| | | <swiper-slide v-for="slide in slides" :key="slide.id"> |
| | | <div class="slide-tab" :class="{'act':actSlide==slide.id}" @click="checkSlide(slide)"> |
| | | <div class="title">{{slide.name}}</div> |
| | | <div class="flex-box"> |
| | | <div> |
| | | <div class="dimension">违规率</div> |
| | | <div class="dimension-val">{{slide.ratio}}%</div> |
| | | </div> |
| | | <div style="margin-left: 60px;"> |
| | | <Pie :options="optOfPie(slide)" :pieW="70" :pieH="70"></Pie> |
| | | </div> |
| | | <div |
| | | class="slide-tab" |
| | | :class="{ act: actSlide == slide.id }" |
| | | @click="checkSlide(slide)" |
| | | > |
| | | <Pie :options="optOfPie(slide)"></Pie> |
| | | <div class="info"> |
| | | <div class="title">违规率</div> |
| | | <div class="num">78%</div> |
| | | <div class="place">中铁一局</div> |
| | | </div> |
| | | </div> |
| | | </swiper-slide> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import Pie from './charts/pie'; |
| | | import Pie from "./charts/pie"; |
| | | export default { |
| | | components: { Pie }, |
| | | data () { |
| | | data() { |
| | | return { |
| | | swiperOption: { |
| | | spaceBetween: 0, |
| | | //initialSlide: 0, |
| | | direction: 'horizontal', |
| | | direction: "horizontal", |
| | | navigation: { |
| | | nextEl: '.swiper-button-next', |
| | | prevEl: '.swiper-button-prev' |
| | | nextEl: ".swiper-button-next", |
| | | prevEl: ".swiper-button-prev", |
| | | }, |
| | | slidesPerView: 5, |
| | | slidesPerView: 6, |
| | | observer: true, |
| | | observeParents: true, |
| | | }, |
| | | slides: [ |
| | | { id: 'jlfgs', name: '机量分公司', ratio: 1.5, }, |
| | | { id: 'ztyj', name: '中铁一局', ratio: 1.6, }, |
| | | { id: 'ztsj', name: '中铁三局', ratio: 1.2 }, |
| | | { id: 'ztsij', name: '中铁四局', ratio: 1.3 }, |
| | | { id: 'jtjw', name: '京铁机务', ratio: 0.2 }, |
| | | { id: 'ztwj', name: '中铁五局', ratio: 1.2 }, |
| | | { id: 'jgjw', name: '京高机务', ratio: 0.7 }, |
| | | { id: "jlfgs", name: "机量分公司", ratio: 1.5 }, |
| | | { id: "ztyj", name: "中铁一局", ratio: 1.6 }, |
| | | { id: "ztsj", name: "中铁三局", ratio: 1.2 }, |
| | | { id: "ztsij", name: "中铁四局", ratio: 1.3 }, |
| | | { id: "jtjw", name: "京铁机务", ratio: 0.2 }, |
| | | { id: "ztwj", name: "中铁五局", ratio: 1.2 }, |
| | | { id: "jgjw", name: "京高机务", ratio: 0.7 }, |
| | | ], |
| | | actSlide: '' |
| | | } |
| | | actSlide: "", |
| | | }; |
| | | }, |
| | | mounted () { |
| | | console.log('swip mounte'); |
| | | mounted() { |
| | | this.actSlide = this.slides[0].id; |
| | | |
| | | }, |
| | | methods: { |
| | | optOfPie (slide) { |
| | | optOfPie(slide) { |
| | | return { |
| | | tooltip: { |
| | | trigger: 'item', |
| | | formatter: '{a}<br/>{b}:{c} ({d}%)' |
| | | trigger: "item", |
| | | formatter: "{a}<br/>{b}:{c} ({d}%)", |
| | | }, |
| | | // legend: { |
| | | // orient: 'vertical', |
| | |
| | | // }, |
| | | series: [ |
| | | { |
| | | name: '违规率', |
| | | type: 'pie', |
| | | color: ['#18bfff', '#e9f6fb'], |
| | | radius: ['60%', '90%'], |
| | | name: "违规率", |
| | | type: "pie", |
| | | color: ["#2D52D7", " #D9DFE6"], |
| | | radius: ["28%", "35%"], |
| | | center: ["50%", "48%"], |
| | | silent: true, |
| | | tooltip: { |
| | | show: false |
| | | show: false, |
| | | }, |
| | | avoidLabelOverlap: false, |
| | | label: { |
| | | show: false, |
| | | position: 'center' |
| | | position: "center", |
| | | }, |
| | | hoverAnimation: false, |
| | | labelLine: { |
| | | show: false |
| | | show: false, |
| | | }, |
| | | data: [ |
| | | { value: slide.ratio, name: '' }, |
| | | { value: 100 - slide.ratio, name: '' }, |
| | | |
| | | ] |
| | | } |
| | | ] |
| | | } |
| | | { value: slide.ratio, name: "" }, |
| | | { value: 3 - slide.ratio, name: "" }, |
| | | ], |
| | | }, |
| | | ], |
| | | }; |
| | | }, |
| | | checkSlide (slide) { |
| | | checkSlide(slide) { |
| | | this.actSlide = slide.id; |
| | | this.$emit('checkTab',slide) |
| | | } |
| | | } |
| | | } |
| | | this.$emit("checkTab", slide); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | .swipe-tabs { |
| | | width: 94%; |
| | | position: relative; |
| | | padding: 0 30px; |
| | | |
| | |
| | | border-right: 1px solid #eee; |
| | | } |
| | | .slide-tab { |
| | | position: relative; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | border-left: 10px solid #f4f6f9; |
| | | cursor: pointer; |
| | | border-top: 2px solid transparent; |
| | | padding: 20px; |
| | | text-align: left; |
| | | height: 130px; |
| | | background: #f4f6f9; |
| | | opacity: 0.67; |
| | | &.act { |
| | | border-color: #409eff; |
| | | border-color: #2d52d7; |
| | | } |
| | | .title { |
| | | font-size: 16px; |
| | | color: #666; |
| | | } |
| | | .dimension { |
| | | color: #999; |
| | | margin: 10px 0; |
| | | } |
| | | .dimension-val { |
| | | color: #555; |
| | | font-size: 28px; |
| | | |
| | | .info { |
| | | position: absolute; |
| | | top: 39px; |
| | | left: 50%; |
| | | margin-left: -28px; |
| | | text-align: center; |
| | | .title { |
| | | font-size: 12px; |
| | | color: #425277; |
| | | opacity: 0.6; |
| | | } |
| | | |
| | | .num { |
| | | font-size: 20px; |
| | | color: #425277; |
| | | } |
| | | |
| | | .place { |
| | | margin-top: 23px; |
| | | font-size: 14px; |
| | | font-weight: 700; |
| | | } |
| | | } |
| | | } |
| | | .swiper-button-prev, |