| | |
| | | * @LastEditTime: 2021-04-24 11:59:43 |
| | | --> |
| | | <template> |
| | | <div id="track_map" |
| | | style="height: 100%"></div> |
| | | <div id="track_map" style="height: 100%"></div> |
| | | </template> |
| | | <script> |
| | | import 'ol/ol.css' |
| | | import OlView from 'ol/View.js' |
| | | import "ol/ol.css"; |
| | | import OlView from "ol/View.js"; |
| | | // import XYZ from 'ol/source/XYZ' |
| | | import OlLayerTile from 'ol/layer/Tile.js' |
| | | import OlMap from 'ol/Map.js' |
| | | import OlLayerTile from "ol/layer/Tile.js"; |
| | | import OlMap from "ol/Map.js"; |
| | | |
| | | import { |
| | | // eslint-disable-next-line no-unused-vars |
| | |
| | | // 缩放到范围控件 |
| | | // eslint-disable-next-line no-unused-vars |
| | | ZoomToExtent, |
| | | Rotate |
| | | Rotate, |
| | | } from "ol/control.js"; |
| | | |
| | | } from 'ol/control.js' |
| | | import VectorLayer from "ol/layer/Vector"; |
| | | import VectorSource from "ol/source/Vector"; |
| | | import WMTS from "ol/source/WMTS"; |
| | | |
| | | import VectorLayer from 'ol/layer/Vector' |
| | | import VectorSource from 'ol/source/Vector' |
| | | import WMTS from 'ol/source/WMTS' |
| | | import WMTSTileGrid from "ol/tilegrid/WMTS"; |
| | | |
| | | import WMTSTileGrid from 'ol/tilegrid/WMTS' |
| | | import Feature from "ol/Feature.js"; |
| | | import Point from "ol/geom/Point.js"; |
| | | import LineString from "ol/geom/LineString.js"; |
| | | import { Icon, Style, Fill, Stroke } from "ol/style.js"; |
| | | |
| | | import Feature from 'ol/Feature.js' |
| | | import Point from 'ol/geom/Point.js' |
| | | import LineString from 'ol/geom/LineString.js' |
| | | import { Icon, Style, Fill, Stroke } from 'ol/style.js' |
| | | import { getWidth, getTopLeft } from "ol/extent"; |
| | | |
| | | import { getWidth, getTopLeft } from 'ol/extent' |
| | | |
| | | import { get as getProjection } from 'ol/proj' |
| | | import { get as getProjection } from "ol/proj"; |
| | | import XYZ from "ol/source/XYZ"; |
| | | |
| | | import start from '@/assets/img/start.png' |
| | | import start from "@/assets/img/start.png"; |
| | | |
| | | export default { |
| | | name: 'Map', |
| | | name: "Map", |
| | | data () { |
| | | return { |
| | | gunAddlayer: new VectorLayer({ // 图标图层 |
| | | gunAddlayer: new VectorLayer({ |
| | | // 图标图层 |
| | | zIndex: 22, |
| | | source: new VectorSource() |
| | | source: new VectorSource(), |
| | | }), |
| | | peopleAddlayer: new VectorLayer({ // 图标图层 |
| | | peopleAddlayer: new VectorLayer({ |
| | | // 图标图层 |
| | | zIndex: 22, |
| | | source: new VectorSource() |
| | | source: new VectorSource(), |
| | | }), |
| | | carAddlayer: new VectorLayer({ // 图标图层 |
| | | carAddlayer: new VectorLayer({ |
| | | // 图标图层 |
| | | zIndex: 22, |
| | | source: new VectorSource() |
| | | source: new VectorSource(), |
| | | }), |
| | | peopleLineAddlayer: new VectorLayer({ // 图标图层 |
| | | peopleLineAddlayer: new VectorLayer({ |
| | | // 图标图层 |
| | | zIndex: 22, |
| | | source: new VectorSource() |
| | | source: new VectorSource(), |
| | | }), |
| | | startPoint: new VectorLayer({ // 图标图层 |
| | | startPoint: new VectorLayer({ |
| | | // 图标图层 |
| | | zIndex: 22, |
| | | source: new VectorSource() |
| | | source: new VectorSource(), |
| | | }), |
| | | ol2d: null, |
| | | } |
| | | }; |
| | | }, |
| | | mounted () { |
| | | // 本地开发使用 |
| | | // this.ol2d = new OlMap({ |
| | | // layers: [ |
| | | // new OlLayerTile({ |
| | | // zIndex: 4, |
| | | // title: '影像', |
| | | // source: new XYZ({ |
| | | // url: "https://webmap-tile.sf-express.com/MapTileService/rt?fetchtype=static&x={x}&y={y}&z={z}&project=sfmap&pic_size=256&pic_type=png8&data_name=361100&data_format=merged-dat&data_type=normal" // 行政区划 |
| | | // }) |
| | | // }) |
| | | // // , |
| | | // // new OlLayerTile({ |
| | | // // zIndex: 5, |
| | | // // title: '道路+中文注记', |
| | | // // source: new XYZ({ |
| | | // // url: 'http://t3.tianditu.com/DataServer?T=cta_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0' // 注记 |
| | | // // }) |
| | | // // }) |
| | | // ], |
| | | |
| | | // // 注意地图控件的写法 |
| | | // controls: defaults().extend([ |
| | | // new FullScreen(), |
| | | // new ScaleLine(), |
| | | // new MousePosition(), |
| | | // new Rotate(), |
| | | // new Attribution() |
| | | // ]), |
| | | // target: 'track_map', |
| | | // view: new OlView({ |
| | | // center: [0, 0], |
| | | // zoom: 2, |
| | | // projection: 'EPSG:4326' |
| | | // }) |
| | | // }) |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | var projection = getProjection("EPSG:4326"); |
| | | var projectionExtent = projection.getExtent(); |
| | | var size = getWidth(projectionExtent) / 256; |
| | | var resolutions = []; |
| | | for (var z = 2; z < 19; ++z) {//计算比例尺 |
| | | resolutions[z] = size / Math.pow(2, z); |
| | | } |
| | | |
| | | // 正式服务器上使用 |
| | | // 本地开发使用; |
| | | this.ol2d = new OlMap({ |
| | | layers: [ |
| | | new OlLayerTile({//矢量地图 |
| | | |
| | | source: new WMTS({ |
| | | url: "http://47.49.21.207:7001/PGIS_S_TileMapServer/Maps/YX", |
| | | layer: "JX14YGJCIMGL7_L14", |
| | | style: "default", |
| | | matrixSet: "JX14YGJCIMGL7_L14", |
| | | format: "image/png", |
| | | wrapX: true, |
| | | tileGrid: new WMTSTileGrid({ |
| | | origin: getTopLeft(projectionExtent), |
| | | //resolutions: res.slice(0, 15), |
| | | resolutions: resolutions, |
| | | matrixIds: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] |
| | | }) |
| | | new OlLayerTile({ |
| | | zIndex: 4, |
| | | title: "影像", |
| | | source: new XYZ({ |
| | | url: "https://webmap-tile.sf-express.com/MapTileService/rt?fetchtype=static&x={x}&y={y}&z={z}&project=sfmap&pic_size=256&pic_type=png8&data_name=361100&data_format=merged-dat&data_type=normal", // 行政区划 |
| | | }), |
| | | |
| | | }) |
| | | }), |
| | | // , |
| | | // new OlLayerTile({ |
| | | // zIndex: 5, |
| | | // title: '道路+中文注记', |
| | | // source: new XYZ({ |
| | | // url: 'http://t3.tianditu.com/DataServer?T=cta_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0' // 注记 |
| | | // }) |
| | | // }) |
| | | ], |
| | | |
| | | // 注意地图控件的写法 |
| | | controls: defaults().extend([ |
| | | new FullScreen(), |
| | | new ScaleLine(), |
| | | // new MousePosition(), |
| | | new MousePosition(), |
| | | new Rotate(), |
| | | new Attribution() |
| | | new Attribution(), |
| | | ]), |
| | | target: 'track_map', |
| | | target: "track_map", |
| | | view: new OlView({ |
| | | center: [115.85883507433789, 28.708432053474827], |
| | | projection: projection, |
| | | zoom: 11, |
| | | maxZoom: 15, |
| | | minZoom: 1 |
| | | center: [0, 0], |
| | | zoom: 2, |
| | | projection: "EPSG:4326", |
| | | }), |
| | | }); |
| | | |
| | | }) |
| | | }) |
| | | // var projection = getProjection("EPSG:4326"); |
| | | // var projectionExtent = projection.getExtent(); |
| | | // var size = getWidth(projectionExtent) / 256; |
| | | // var resolutions = []; |
| | | // for (var z = 2; z < 19; ++z) {//计算比例尺 |
| | | // resolutions[z] = size / Math.pow(2, z); |
| | | // } |
| | | |
| | | // // 正式服务器上使用 |
| | | // this.ol2d = new OlMap({ |
| | | // layers: [ |
| | | // new OlLayerTile({//矢量地图 |
| | | |
| | | // source: new WMTS({ |
| | | // url: "http://47.49.21.207:7001/PGIS_S_TileMapServer/Maps/YX", |
| | | // layer: "JX14YGJCIMGL7_L14", |
| | | // style: "default", |
| | | // matrixSet: "JX14YGJCIMGL7_L14", |
| | | // format: "image/png", |
| | | // wrapX: true, |
| | | // tileGrid: new WMTSTileGrid({ |
| | | // origin: getTopLeft(projectionExtent), |
| | | // //resolutions: res.slice(0, 15), |
| | | // resolutions: resolutions, |
| | | // matrixIds: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] |
| | | // }) |
| | | // }), |
| | | |
| | | // }) |
| | | // ], |
| | | |
| | | // // 注意地图控件的写法 |
| | | // controls: defaults().extend([ |
| | | // new FullScreen(), |
| | | // new ScaleLine(), |
| | | // // new MousePosition(), |
| | | // new Rotate(), |
| | | // new Attribution() |
| | | // ]), |
| | | // target: 'track_map', |
| | | // view: new OlView({ |
| | | // center: [115.85883507433789, 28.708432053474827], |
| | | // projection: projection, |
| | | // zoom: 11, |
| | | // maxZoom: 15, |
| | | // minZoom: 1 |
| | | |
| | | |
| | | // }) |
| | | // }) |
| | | |
| | | this.parentParameter(); |
| | | |
| | | window.ol2d = this.ol2d |
| | | window.ol2d = this.ol2d; |
| | | |
| | | var view = this.ol2d.getView() |
| | | var view = this.ol2d.getView(); |
| | | |
| | | view.setCenter([115.85883507433789, 28.708432053474827]) |
| | | view.setCenter([115.85883507433789, 28.708432053474827]); |
| | | |
| | | view.setZoom(13) |
| | | view.setZoom(13); |
| | | |
| | | |
| | | this.ol2d.addLayer(this.gunAddlayer) |
| | | this.ol2d.addLayer(this.peopleAddlayer) |
| | | this.ol2d.addLayer(this.carAddlayer) |
| | | this.ol2d.addLayer(this.peopleLineAddlayer) |
| | | this.ol2d.addLayer(this.startPoint) |
| | | |
| | | this.ol2d.addLayer(this.gunAddlayer); |
| | | this.ol2d.addLayer(this.peopleAddlayer); |
| | | this.ol2d.addLayer(this.carAddlayer); |
| | | this.ol2d.addLayer(this.peopleLineAddlayer); |
| | | this.ol2d.addLayer(this.startPoint); |
| | | }, |
| | | methods: { |
| | | |
| | | addEntitys (item, icon, scale, name, type) { |
| | | this[type].getSource().clear() |
| | | this[type].getSource().clear(); |
| | | |
| | | const iconFeature = new Feature({ |
| | | geometry: new Point([Number(item.LGTD), Number(item.LTTD)]), |
| | | name: name, |
| | | attributes: item |
| | | }) |
| | | attributes: item, |
| | | }); |
| | | |
| | | const iconStyle = new Style({ |
| | | // text: new Text({ // 字体, 未成功, 浪费许多时间 |
| | |
| | | image: new Icon({ |
| | | scale: scale, |
| | | opacity: 1, |
| | | src: icon |
| | | src: icon, |
| | | // src: require('../../assets/Mark.png') |
| | | }) |
| | | }), |
| | | |
| | | // new CircleStyle({ // 普通样式 |
| | | // radius: 6, |
| | |
| | | // width: 0.3, |
| | | // }) |
| | | // }), |
| | | }) |
| | | }); |
| | | |
| | | iconFeature.setStyle(iconStyle) |
| | | iconFeature.setStyle(iconStyle); |
| | | |
| | | this[type].getSource().addFeature(iconFeature) |
| | | this[type].getSource().addFeature(iconFeature); |
| | | |
| | | this.flyTo(Number(item.LGTD), Number(item.LTTD), 18) |
| | | this.flyTo(Number(item.LGTD), Number(item.LTTD), 18); |
| | | }, |
| | | |
| | | addLines (arr) { |
| | | this.addEntity(arr[0][0], arr[0][1]) |
| | | this.peopleLineAddlayer.getSource().clear() |
| | | this.addEntity(arr[0][0], arr[0][1]); |
| | | this.peopleLineAddlayer.getSource().clear(); |
| | | // 点坐标 |
| | | var lineCoords = arr;// 线里点的集合 |
| | | |
| | | // 要素 |
| | | // var lineCoords = [[featureInfo.lineString[0][0],featureInfo.lineString[0][0]],[featureInfo.lineString(0),featureInfo.lineString(0)]]; |
| | | var feature_LineString = new Feature({ |
| | | geometry: new LineString(lineCoords) |
| | | geometry: new LineString(lineCoords), |
| | | }); |
| | | |
| | | |
| | | feature_LineString.setStyle(new Style({ |
| | | feature_LineString.setStyle( |
| | | new Style({ |
| | | //填充色 |
| | | fill: new Fill({ |
| | | color: 'rgba(255, 255, 255, 0.2)' |
| | | color: "rgba(255, 255, 255, 0.2)", |
| | | }), |
| | | //边线颜色 |
| | | stroke: new Stroke({ |
| | | color: 'rgb(252, 94, 32)', |
| | | width: 5 |
| | | color: "rgb(252, 94, 32)", |
| | | width: 5, |
| | | }), |
| | | }) |
| | | })) |
| | | ); |
| | | |
| | | this.peopleLineAddlayer.getSource().addFeature(feature_LineString); |
| | | |
| | | this.peopleLineAddlayer.getSource().addFeature(feature_LineString) |
| | | |
| | | this.flyTo(arr[Math.ceil(arr.length / 2)][0], arr[Math.ceil(arr.length / 2)][1], 15) |
| | | this.flyTo( |
| | | arr[Math.ceil(arr.length / 2)][0], |
| | | arr[Math.ceil(arr.length / 2)][1], |
| | | 15 |
| | | ); |
| | | }, |
| | | |
| | | addEntity (LGTD, LTTD) { |
| | | this.startPoint.getSource().clear() |
| | | this.startPoint.getSource().clear(); |
| | | |
| | | const iconFeature = new Feature({ |
| | | geometry: new Point([LGTD, LTTD]), |
| | | name: '起始点', |
| | | }) |
| | | name: "起始点", |
| | | }); |
| | | |
| | | const iconStyle = new Style({ |
| | | // text: new Text({ // 字体, 未成功, 浪费许多时间 |
| | |
| | | |
| | | image: new Icon({ |
| | | anchor: [0.5, 170], //锚点 |
| | | anchorOrigin: 'top-left', //锚点源 |
| | | anchorXUnits: 'fraction', //锚点X值单位 |
| | | anchorYUnits: 'pixels', //锚点Y值单位 |
| | | offsetOrigin: 'top-left', |
| | | anchorOrigin: "top-left", //锚点源 |
| | | anchorXUnits: "fraction", //锚点X值单位 |
| | | anchorYUnits: "pixels", //锚点Y值单位 |
| | | offsetOrigin: "top-left", |
| | | scale: 0.2, |
| | | opacity: 1, |
| | | src: start |
| | | src: start, |
| | | // src: require('../../assets/Mark.png') |
| | | }) |
| | | }), |
| | | |
| | | // new CircleStyle({ // 普通样式 |
| | | // radius: 6, |
| | |
| | | // width: 0.3, |
| | | // }) |
| | | // }), |
| | | }) |
| | | }); |
| | | |
| | | iconFeature.setStyle(iconStyle) |
| | | iconFeature.setStyle(iconStyle); |
| | | |
| | | this.startPoint.getSource().addFeature(iconFeature) |
| | | |
| | | this.startPoint.getSource().addFeature(iconFeature); |
| | | }, |
| | | |
| | | clearLine () { |
| | | this.peopleLineAddlayer.getSource().clear() |
| | | this.startPoint.getSource().clear() |
| | | this.peopleLineAddlayer.getSource().clear(); |
| | | this.startPoint.getSource().clear(); |
| | | }, |
| | | |
| | | flyTo (lgtd, lttd, size) { |
| | | var view = this.ol2d.getView() |
| | | var view = this.ol2d.getView(); |
| | | |
| | | view.setCenter([lgtd, lttd]) |
| | | view.setCenter([lgtd, lttd]); |
| | | |
| | | view.setZoom(size) |
| | | view.setZoom(size); |
| | | }, |
| | | |
| | | parentParameter () { |
| | | this.$emit('childParameter', this.ol2d) |
| | | } |
| | | } |
| | | } |
| | | this.$emit("childParameter", this.ol2d); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | redirect: '/desk/notice', |
| | | children: [{ |
| | | path: 'index', |
| | | name: '通知公告', |
| | | name: '通知通告', |
| | | meta: { |
| | | i18n: 'dict' |
| | | }, |
| | |
| | | /* |
| | | * @Author: Morpheus |
| | | * @Date: 2021-07-07 17:30:05 |
| | | * @Last Modified by: Morpheus |
| | | * @Last Modified time: 2021-08-12 19:32:05 |
| | | * @Last Modified by: liu |
| | | * @Last Modified time: 2021-10-13 16:18:50 |
| | | * menu-name 缴费查询 |
| | | */ |
| | | <template> |
| | | <basic-container> |
| | | <avue-crud :option="option" |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | :page.sync="page" |
| | |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad"> |
| | | |
| | | |
| | | <template slot-scope="{ type, size, row }" |
| | | slot="menu"> |
| | | |
| | | <el-button icon="el-icon-edit" |
| | | @on-load="onLoad" |
| | | > |
| | | <template slot-scope="{ type, size, row }" slot="menu"> |
| | | <el-button |
| | | icon="el-icon-edit" |
| | | :size="size" |
| | | :type="type" |
| | | @click.stop="payTheFees(row)">缴费确认 |
| | | @click.stop="payTheFees(row)" |
| | | >缴费确认 |
| | | </el-button> |
| | | <el-button |
| | | type="text" |
| | |
| | | @click="seeImages(row)" |
| | | >预览 |
| | | </el-button> |
| | | |
| | | </template> |
| | | |
| | | |
| | | <template slot-scope="{ row }" |
| | | slot="sex"> |
| | | {{row.sex==1?'男':row.sex==2?'女':''}} |
| | | <template slot-scope="{ row }" slot="sex"> |
| | | {{ row.sex == 1 ? "男" : row.sex == 2 ? "女" : "" }} |
| | | </template> |
| | | |
| | | <template class="tdtype" |
| | | slot-scope="{ row }" |
| | | slot="paymentStatus"> |
| | | <template class="tdtype" slot-scope="{ row }" slot="paymentStatus"> |
| | | <el-tag class="dtype"> |
| | | {{ row.paymentStatus == "1" ? "已缴费" : row.paymentStatus == "2" ? "未缴费" : "部分缴费" }} |
| | | <i class="gz" |
| | | v-if="row.paymentStatus == '1'"></i> |
| | | <i class="yj" |
| | | v-if="row.paymentStatus == '2'"></i> |
| | | <i class="zc" |
| | | v-if="row.paymentStatus == '3'"></i> |
| | | {{ |
| | | row.paymentStatus == "1" |
| | | ? "已缴费" |
| | | : row.paymentStatus == "2" |
| | | ? "未缴费" |
| | | : "部分缴费" |
| | | }} |
| | | <i class="gz" v-if="row.paymentStatus == '1'"></i> |
| | | <i class="yj" v-if="row.paymentStatus == '2'"></i> |
| | | <i class="zc" v-if="row.paymentStatus == '3'"></i> |
| | | </el-tag> |
| | | </template> |
| | | |
| | |
| | | >缴费凭证批量上传 |
| | | </el-button> |
| | | </template> |
| | | |
| | | </avue-crud> |
| | | <el-dialog |
| | | title="预览" |
| | |
| | | import { mapGetters } from "vuex"; |
| | | import { datasing } from "./dataqualificationExamination"; |
| | | // import { getList } from "@/api/qualificationExamination/qualificationExamination"; |
| | | import { getLispereexamPayment, update } from "@/api/qualificationExamination/scoreInquiry"; |
| | | import { |
| | | getLispereexamPayment, |
| | | update, |
| | | } from "@/api/qualificationExamination/scoreInquiry"; |
| | | |
| | | export default { |
| | | data () { |
| | |
| | | res: "data", |
| | | }, |
| | | tip: "请上传 zip 压缩文件", |
| | | action: "/api/blade-resource/oss/endpoint/put-file-exam-payment-zip", |
| | | } |
| | | action: |
| | | "/api/blade-resource/oss/endpoint/put-file-exam-payment-zip", |
| | | }, |
| | | ], |
| | | }, |
| | | page: { |
| | |
| | | prop: "idCardNo", |
| | | search:true, |
| | | searchSpan:4, |
| | | width:150 |
| | | width: 150, |
| | | }, |
| | | { |
| | | label: "性别", |
| | |
| | | dicData: [ |
| | | { |
| | | label:"男", |
| | | value:1 |
| | | value: 1, |
| | | }, |
| | | { |
| | | label:"女", |
| | | value:2 |
| | | } |
| | | value: 2, |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | |
| | | prop: "deptName", |
| | | search:true, |
| | | searchSpan:6, |
| | | width:200 |
| | | width: 200, |
| | | }, |
| | | { |
| | | label: "报考证件类型", |
| | | prop: "paperType" |
| | | prop: "paperType", |
| | | }, |
| | | { |
| | | label: "报名时间", |
| | |
| | | type: "datetime", |
| | | format: "yyyy-MM-dd HH:mm:ss", |
| | | valueFormat: "yyyy-MM-dd HH:mm:ss", |
| | | width:150 |
| | | width: 150, |
| | | }, |
| | | { |
| | | label: "缴费状态", |
| | |
| | | dicData: [ |
| | | { |
| | | label:"已缴费", |
| | | value:1 |
| | | value: 1, |
| | | }, |
| | | { |
| | | label:"未缴费", |
| | | value:2 |
| | | value: 2, |
| | | }, |
| | | { |
| | | label:"部分缴费", |
| | | value:3 |
| | | value: 3, |
| | | }, |
| | | ], |
| | | type: "select", |
| | |
| | | }, |
| | | ], |
| | | }, |
| | | |
| | | ], |
| | | }, |
| | | data: [ |
| | |
| | | }, |
| | | |
| | | payTheFees (row) { |
| | | console.log(row) |
| | | console.log(row); |
| | | this.$confirm("请确认是否缴费?", { |
| | | confirmButtonText: "已缴费", |
| | | cancelButtonText: "未缴费", |
| | |
| | | }, |
| | | seeImages(row) { |
| | | this.imgUrl = ""; |
| | | this.imgUrl = "url(" + row.certificateUrl + ") center center / contain no-repeat"; |
| | | this.imgUrl = |
| | | "url(" + row.certificateUrl + ") center center / contain no-repeat"; |
| | | |
| | | this.imgSee = true; |
| | | }, |
| | |
| | | width: 10px; |
| | | height: 10px; |
| | | border-radius: 30%; |
| | | background: #29c093; |
| | | background: #f48f57; |
| | | } |
| | | .yj { |
| | | position: absolute; |
| | |
| | | width: 10px; |
| | | height: 10px; |
| | | border-radius: 30%; |
| | | background: #f48f57; |
| | | background: #29c093; |
| | | } |
| | | </style> |