|
@@ -0,0 +1,527 @@
|
|
|
+<template>
|
|
|
+ <div class="tdsy">
|
|
|
+ <div class="box1">
|
|
|
+ <div class="title">
|
|
|
+ 土地供应
|
|
|
+ <div class="buttons">
|
|
|
+ <!-- <div class="stateOwnedButton tdgyButton" @click="switchStateOwnedButton">
|
|
|
+ 国有建设用地
|
|
|
+ </div>
|
|
|
+ <div class="stateOwnedButton tdgyButton" @click="switchStateOwnedButton">
|
|
|
+ 集体经营性土地
|
|
|
+ </div> -->
|
|
|
+ <div class="stateOwnedButton tdgyButton">
|
|
|
+ 国有建设用地
|
|
|
+ </div>
|
|
|
+ <div class="stateOwnedButton tdgyButton">
|
|
|
+ 集体经营性土地
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="stateOwnedOrcollective" v-show="stateOwnedOrcollective">
|
|
|
+ <div class="content">
|
|
|
+ <div class="item">
|
|
|
+ <div class="icon">
|
|
|
+ <div class="icon2">
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="text">
|
|
|
+ <p>在变控规</p>
|
|
|
+ <span>66</span>个
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="item">
|
|
|
+ <div class="icon">
|
|
|
+ <div class="icon2">
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="text">
|
|
|
+ <p>已入库控规 </p>
|
|
|
+ <span>66</span>个
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ <div id="tdsyEchart">
|
|
|
+
|
|
|
+ </div>
|
|
|
+ <div class="legend">
|
|
|
+
|
|
|
+ </div>
|
|
|
+ <div class="list">
|
|
|
+ <div class="list_item">
|
|
|
+ <div class="item_label">
|
|
|
+ <div class="icon"> </div>
|
|
|
+ <span class="groupName">吉阳区大茅村太葵组</span>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="buttons">
|
|
|
+ <div class="lableValue">出让</div>
|
|
|
+ <div class="lableValue">商服用地</div>
|
|
|
+ <div class="lableValue">0.99公顷</div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ <div class="state">
|
|
|
+ 已上市
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="list_item">
|
|
|
+ <div class="item_label">
|
|
|
+ <div class="icon"> </div>
|
|
|
+ <span class="groupName">吉阳区大茅村太葵组</span>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="buttons">
|
|
|
+ <div class="lableValue">出让</div>
|
|
|
+ <div class="lableValue">商服用地</div>
|
|
|
+ <div class="lableValue">0.99公顷</div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ <div class="state">
|
|
|
+ 已上市
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="list_item">
|
|
|
+ <div class="item_label">
|
|
|
+ <div class="icon"> </div>
|
|
|
+ <span class="groupName">吉阳区大茅村太葵组</span>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="buttons">
|
|
|
+ <div class="lableValue">出让</div>
|
|
|
+ <div class="lableValue">商服用地</div>
|
|
|
+ <div class="lableValue">0.99公顷</div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ <div class="state">
|
|
|
+ 已上市
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+
|
|
|
+ <div v-show="!stateOwnedOrcollective">
|
|
|
+ <div class="deficiency_echart">
|
|
|
+
|
|
|
+ </div>
|
|
|
+ <div id="across_echart">
|
|
|
+
|
|
|
+ </div>
|
|
|
+ <!-- <div class="echartInfo">
|
|
|
+ <p>计划供应项目 <span>123</span>个</p>
|
|
|
+ </div> -->
|
|
|
+ <div id="verticalEchart">
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
|
|
|
+
|
|
|
+export default {
|
|
|
+ components: {},
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ stateOwnedOrcollective: false
|
|
|
+ };
|
|
|
+ },
|
|
|
+ //监听属性 类似于data概念
|
|
|
+ computed: {},
|
|
|
+ //监控data中的数据变化
|
|
|
+ watch: {},
|
|
|
+ //方法集合
|
|
|
+ beforeCreate() { }, //生命周期 - 创建之前
|
|
|
+ created() {
|
|
|
+ }, //生命周期 - 创建完成(可以访问当前this实例)
|
|
|
+ beforeMount() { }, //生命周期 - 挂载之前
|
|
|
+ methods: {
|
|
|
+
|
|
|
+ switchStateOwnedButton() {
|
|
|
+ this.stateOwnedOrcollective = !this.stateOwnedOrcollective
|
|
|
+ },
|
|
|
+
|
|
|
+ init_across_echart() {
|
|
|
+
|
|
|
+ var dom = document.getElementById('across_echart');
|
|
|
+ var myChart = window.echarts.init(dom);
|
|
|
+ console.log(myChart, "myChart");
|
|
|
+
|
|
|
+ //做环形图的本质是 radius: ['内半径', '外半径'] 内半径!=0
|
|
|
+ const backgroundColor = 'rgba(0,0,0,0)';
|
|
|
+ const title = {
|
|
|
+ text: '计划供应面积',
|
|
|
+ subtext: '613103.45\n公倾',
|
|
|
+ backgroundColor: 'rgba(0,0,0,0)',
|
|
|
+ textStyle: {
|
|
|
+ color: "#fff",
|
|
|
+ fontFamily: 'Arial',
|
|
|
+ fontSize: 10,
|
|
|
+ fontStyle: 'normal',
|
|
|
+ fontWeight: '400',
|
|
|
+ },
|
|
|
+ subtextStyle: {
|
|
|
+ fontSize: 12,
|
|
|
+ color: "#64daff",
|
|
|
+ fontWeight: '500',
|
|
|
+
|
|
|
+ },
|
|
|
+ x: 'center',
|
|
|
+ y: '35%',
|
|
|
+ }
|
|
|
+ const legendType = 'center'
|
|
|
+
|
|
|
+
|
|
|
+ const tooltip = {
|
|
|
+ show: false,
|
|
|
+ formatter: '{b}:{d}%',
|
|
|
+ };
|
|
|
+ const color = ['#ca9d51', '#5bbd88', 'rgba(0,0,0,0)'];
|
|
|
+ let option = {
|
|
|
+ backgroundColor,
|
|
|
+ color,
|
|
|
+ title,
|
|
|
+ tooltip,
|
|
|
+
|
|
|
+ grid: {
|
|
|
+ // top: '1%',//生成的echarts图片和顶部的距离
|
|
|
+ bottom: '90px',//echarts图片和底部的距离
|
|
|
+ // left: '1%',//echarts图片和左边的距离
|
|
|
+ // right: '2%',//echarts图片和右边的间距,
|
|
|
+ containLabel: true//当containLabel:为ture时,以上设置生效
|
|
|
+ },
|
|
|
+ series: [
|
|
|
+ {
|
|
|
+ name: '网络安全设备',
|
|
|
+ type: 'pie',
|
|
|
+ center: ['50%', '50%'], //圆心的位置
|
|
|
+ top: '2%', //单单指的饼图距离上面的距离,top越大饼图越小
|
|
|
+ left: '0%', //单单指的饼图距离左面的距离,会改变饼图的大小
|
|
|
+ radius: ['65%', '80%'], //环形图的本质就在这里 [内半径!=0,外半径] 外半径越大,圆越大
|
|
|
+ avoidLabelOverlap: false, //做同心圆用到
|
|
|
+ clockwise: true, //顺时针排列
|
|
|
+ startAngle: 90, //起始角度 影响不大
|
|
|
+ //roseType:"", // 实心圆 不能出现roseType这个属性
|
|
|
+
|
|
|
+ label: {
|
|
|
+ show: false, //false不显示饼图上的标签
|
|
|
+ position: 'center', //inside(在饼图上显示),outside(默认就会出现引导线) center
|
|
|
+ formatter: '{b}:{c}',
|
|
|
+ normal: {
|
|
|
+ position: 'inside', // 在内部显示,outseide 是在外部显示
|
|
|
+ alignTo: 'labelLine',
|
|
|
+ textStyle: {
|
|
|
+ fontWeight: 200,
|
|
|
+ fontSize: 12, //文字的字体大小
|
|
|
+ color: '#fff'
|
|
|
+ },
|
|
|
+ formatter: function (params) {
|
|
|
+ console.log(params)
|
|
|
+ // return '{point|}{white|' + params.name + '}{blue|' + params.percent + '%}\n{yellow|' + params.value + '}';
|
|
|
+ return params.value + '%';
|
|
|
+
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ itemStyle: {
|
|
|
+ //每个扇形的设置
|
|
|
+ borderColor: 'rgba(0,0,0,0)', //扇形边框颜色
|
|
|
+ borderWidth: 1, //扇形边框大小 要先给borderColor颜色 设置borderWidth才会有效果
|
|
|
+
|
|
|
+ },
|
|
|
+ data: [
|
|
|
+ { value: 35, name: 'IDS' },
|
|
|
+ { value: 25, name: ' WAF' },
|
|
|
+ { value: 30, name: '' },
|
|
|
+ ],
|
|
|
+ // .sort((a, b) => b.value - a.value), //数组从大到小排序
|
|
|
+
|
|
|
+ emphasis: {
|
|
|
+ scale: true,
|
|
|
+ scaleSize: 20,
|
|
|
+ //同心圆单独加上的
|
|
|
+ label: {
|
|
|
+ show: true,
|
|
|
+ fontSize: 24,
|
|
|
+ fontWeight: 'bold'
|
|
|
+ },
|
|
|
+ //启用鼠标放上去放大效果,这个挺好的
|
|
|
+ itemStyle: {
|
|
|
+ shadowBlur: 10,
|
|
|
+ shadowOffsetX: 0,
|
|
|
+ shadowColor: 'rgba(0, 0, 0, 0.5)',
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ };
|
|
|
+ myChart.setOption(option);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ this.init_across_echart();
|
|
|
+
|
|
|
+ },
|
|
|
+ beforeUpdate() { }, //生命周期 - 更新之前
|
|
|
+ updated() { }, //生命周期 - 更新之后
|
|
|
+ beforeDestroy() { }, //生命周期 - 销毁之前
|
|
|
+ destroy() { },//生命周期 - 销毁完成
|
|
|
+ activated() { }, //若组件实例是 <KeepAlive> 缓存树的一部分,当组件被插入到 DOM 中时调用。
|
|
|
+ deactivated() { } //若组件实例是 <KeepAlive> 缓存树的一部分,当组件从 DOM 中被移除时调用。
|
|
|
+};
|
|
|
+</script>
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+.tdsy {
|
|
|
+ border-width: 0px;
|
|
|
+ position: absolute;
|
|
|
+ left: 555px;
|
|
|
+ top: 68%;
|
|
|
+ display: flex;
|
|
|
+
|
|
|
+ .box1 {
|
|
|
+ border-width: 0px;
|
|
|
+ position: absolute;
|
|
|
+ left: 0px;
|
|
|
+ top: 0px;
|
|
|
+ width: 800px;
|
|
|
+ height: 260px;
|
|
|
+ background: inherit;
|
|
|
+ background-color: rgba(3, 25, 67, 0.698039215686274);
|
|
|
+ border: none;
|
|
|
+ border-radius: 0px;
|
|
|
+ -moz-box-shadow: none;
|
|
|
+ -webkit-box-shadow: none;
|
|
|
+ box-shadow: none;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ .title {
|
|
|
+ border-width: 0px;
|
|
|
+ width: 100%;
|
|
|
+ height: 40px;
|
|
|
+ font-family: 'Arial Negreta', 'Arial Normal', 'Arial';
|
|
|
+ font-weight: 700;
|
|
|
+ font-style: normal;
|
|
|
+ color: #00FFFF;
|
|
|
+ padding: 2%;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+.content {
|
|
|
+ // border: #00FFFF 1px solid;
|
|
|
+ position: absolute;
|
|
|
+ left: 5%;
|
|
|
+ width: 400px;
|
|
|
+ height: 190px;
|
|
|
+ top: 18%;
|
|
|
+}
|
|
|
+
|
|
|
+.item {
|
|
|
+ width: 45%;
|
|
|
+ height: 30%;
|
|
|
+ display: inline-block;
|
|
|
+ // border: #00FFFF 1px solid;
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+.icon {
|
|
|
+ width: 50px;
|
|
|
+ padding: 1.5%;
|
|
|
+ border-radius: 8px;
|
|
|
+ background-color: rgba(104, 244, 251, 0.215686);
|
|
|
+ display: inline-block;
|
|
|
+ height: 50px
|
|
|
+}
|
|
|
+
|
|
|
+.icon2 {
|
|
|
+ background: no-repeat 50%;
|
|
|
+ background-image: url("/static/images/cockpitNew/u296.svg");
|
|
|
+ /* border: #00FFFF 1px solid; */
|
|
|
+ width: 45px;
|
|
|
+ height: 45px;
|
|
|
+ display: inline-block;
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+.text {
|
|
|
+ display: inline-block;
|
|
|
+ // border: #00FFFF 1px solid;
|
|
|
+ width: 100px;
|
|
|
+
|
|
|
+ p {
|
|
|
+ font-kerning: normal;
|
|
|
+ font-family: 'Arial Negreta', 'Arial Normal', 'Arial';
|
|
|
+ font-weight: 700;
|
|
|
+ font-style: normal;
|
|
|
+ font-size: 14px;
|
|
|
+ color: #FFFFFF;
|
|
|
+ }
|
|
|
+
|
|
|
+ span {
|
|
|
+ font-family: 'Arial Negreta', 'Arial Normal', 'Arial';
|
|
|
+ font-weight: 700;
|
|
|
+ font-style: normal;
|
|
|
+ color: #68F4FB;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+#tdsyEchart {
|
|
|
+
|
|
|
+ width: 280px;
|
|
|
+ height: 230px;
|
|
|
+ position: relative;
|
|
|
+ left: -35px;
|
|
|
+ top: 95px;
|
|
|
+}
|
|
|
+
|
|
|
+.legend {
|
|
|
+
|
|
|
+ background: no-repeat;
|
|
|
+ background-size: 27%;
|
|
|
+ background-image: url("/static/images/cockpitNew/tdsyLegend.png");
|
|
|
+
|
|
|
+ position: absolute;
|
|
|
+ top: 42%;
|
|
|
+ left: 69%;
|
|
|
+ width: 520px;
|
|
|
+ height: 132px;
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+.buttons {
|
|
|
+ display: inline-block;
|
|
|
+ position: absolute;
|
|
|
+ right: 30px;
|
|
|
+}
|
|
|
+
|
|
|
+.tdgyButton {
|
|
|
+ display: inline-block;
|
|
|
+ color: #AAAAAA;
|
|
|
+ font-size: 12px;
|
|
|
+ font-weight: 400;
|
|
|
+ border: 1px solid #AAAAAA;
|
|
|
+ border-radius: 4px;
|
|
|
+ padding: 2px;
|
|
|
+}
|
|
|
+
|
|
|
+.list {
|
|
|
+ position: absolute;
|
|
|
+ left: 137%;
|
|
|
+ top: 25%;
|
|
|
+}
|
|
|
+
|
|
|
+.list_item {
|
|
|
+ position: relative;
|
|
|
+ left: 0px;
|
|
|
+ top: 0px;
|
|
|
+ width: 384px;
|
|
|
+ height: 55px;
|
|
|
+ background: inherit;
|
|
|
+ background-color: #283f6d;
|
|
|
+ -webkit-box-sizing: border-box;
|
|
|
+ box-sizing: border-box;
|
|
|
+ border-width: 1px;
|
|
|
+ border-style: solid;
|
|
|
+ border-color: #80ffff;
|
|
|
+ border-left: 0px;
|
|
|
+ border-top: 0px;
|
|
|
+ border-right: 0px;
|
|
|
+ border-bottom: 0px;
|
|
|
+ border-radius: 5px;
|
|
|
+ border-top-left-radius: 0px;
|
|
|
+ border-top-right-radius: 0px;
|
|
|
+ border-bottom-right-radius: 0px;
|
|
|
+ border-bottom-left-radius: 0px;
|
|
|
+ -webkit-box-shadow: none;
|
|
|
+ box-shadow: none;
|
|
|
+ font-size: 13px;
|
|
|
+ color: #FFFFFF;
|
|
|
+ margin-bottom: 10px;
|
|
|
+
|
|
|
+ .item_label {
|
|
|
+ border: #00FFFF;
|
|
|
+ position: relative;
|
|
|
+ left: 3%;
|
|
|
+ top: 10%;
|
|
|
+ height: 20px;
|
|
|
+ line-height: 12px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .groupName {
|
|
|
+ position: relative;
|
|
|
+ top: -5px;
|
|
|
+ left: 1%;
|
|
|
+ }
|
|
|
+
|
|
|
+ .icon {
|
|
|
+ background-image: url("/static/images/cockpitNew/u371.svg");
|
|
|
+ width: 19px;
|
|
|
+ height: 19px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .buttons {
|
|
|
+ display: inline-block;
|
|
|
+ position: absolute;
|
|
|
+ left: 35px;
|
|
|
+ top: 29px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .lableValue {
|
|
|
+
|
|
|
+ display: inline-block;
|
|
|
+ border: 1px solid #80FFFF;
|
|
|
+ color: #80FFFF;
|
|
|
+ width: 20%;
|
|
|
+ text-align: center;
|
|
|
+ }
|
|
|
+
|
|
|
+ .state {
|
|
|
+ height: 40px;
|
|
|
+ width: 45px;
|
|
|
+ position: relative;
|
|
|
+ left: 87%;
|
|
|
+ background-color: rgba(112, 182, 3, 1);
|
|
|
+ top: -22%;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 40px;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+#across_echart {
|
|
|
+ left: -6rem;
|
|
|
+ top: 2rem;
|
|
|
+ width: 20rem;
|
|
|
+ height: 11rem
|
|
|
+}
|
|
|
+
|
|
|
+.deficiency_echart {
|
|
|
+ width: 9.5rem;
|
|
|
+ height: 9.5rem;
|
|
|
+ border: 15px solid #104375;
|
|
|
+ position: absolute;
|
|
|
+ top: 3.6rem;
|
|
|
+ left: 1rem;
|
|
|
+
|
|
|
+ border-radius: 80rem;
|
|
|
+
|
|
|
+}
|
|
|
+</style>
|