|
@@ -1,1459 +0,0 @@
|
|
|
-<template>
|
|
|
- <div class="tdsy">
|
|
|
- <div class="box1">
|
|
|
- <div class="title">
|
|
|
- <div>
|
|
|
- <div class="icon"></div>
|
|
|
- <span>土地供应</span>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="selectTab">
|
|
|
- <el-select
|
|
|
- v-model="value"
|
|
|
- placeholder="请选择"
|
|
|
- :popper-append-to-body="false"
|
|
|
- @change="changeCharts"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in options"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div v-show="stateOwnedOrcollective">
|
|
|
- <div class="content">
|
|
|
- <div id="rsyt_echart"></div>
|
|
|
- <div class="content1">
|
|
|
- <div class="icon_info"></div>
|
|
|
- <div class="info_left">
|
|
|
- <span>计划入市面积</span>
|
|
|
- <span class="count"
|
|
|
- >{{ jhNumber }}
|
|
|
- <i style="font-style: normal">公顷</i>
|
|
|
- </span>
|
|
|
- </div>
|
|
|
- <div class="info_main">
|
|
|
- <span>已入市面积</span>
|
|
|
- <span class="count"
|
|
|
- >{{ sjNumber }}
|
|
|
- <i style="font-style: normal">公顷</i>
|
|
|
- </span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="content2">
|
|
|
- <div class="search">
|
|
|
- <el-input v-model="input" placeholder="请输入内容">
|
|
|
- <i slot="suffix" class="el-input__icon el-icon-search"></i
|
|
|
- ></el-input>
|
|
|
- </div>
|
|
|
- <div class="infoLIst" v-if="jiDataInfo.length">
|
|
|
- <div
|
|
|
- class="infoItem"
|
|
|
- v-for="(item, index) in jiDataInfo"
|
|
|
- :key="index"
|
|
|
- >
|
|
|
- <div class="itemIcon"></div>
|
|
|
- <div class="itemCon">
|
|
|
- <p>{{ item.xmmc }}</p>
|
|
|
- <p>
|
|
|
- <span>{{ item.yelx }}</span>
|
|
|
- <span>{{ item.tdyt }}</span>
|
|
|
- <span>{{ item.crnj }}公顷</span>
|
|
|
- </p>
|
|
|
- </div>
|
|
|
- <div
|
|
|
- :class="item.yelx == '已出让' ? 'itemStatus1' : 'itemStatus2'"
|
|
|
- ></div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="infoLIst1" v-else>暂无数据</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="list"></div>
|
|
|
- </div>
|
|
|
- <div v-show="!stateOwnedOrcollective">
|
|
|
- <div id="across_echart"></div>
|
|
|
- <div id="vertical_echart"></div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-</template>
|
|
|
-
|
|
|
-<script>
|
|
|
-//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
|
|
|
-// 定义myCharts用于统计图自适应
|
|
|
-import { QueryOne, QueryList } from "../../api/cockpitNew";
|
|
|
-let myCharts;
|
|
|
-
|
|
|
-import { mapState } from "vuex";
|
|
|
-export default {
|
|
|
- components: {},
|
|
|
- data() {
|
|
|
- return {
|
|
|
- stateOwnedOrcollective: false,
|
|
|
- options: [
|
|
|
- {
|
|
|
- value: "国有建设用地",
|
|
|
- label: "国有建设用地",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "集体供应性土地",
|
|
|
- label: "集体供应性土地",
|
|
|
- },
|
|
|
- ],
|
|
|
- value: "国有建设用地",
|
|
|
- input: "区",
|
|
|
- jiDataInfo: [], //集体信息列表
|
|
|
- option: {},
|
|
|
- setInterValAl: null,
|
|
|
- jhNumber: 0, //计划入市面积总数
|
|
|
- sjNumber: 0, //实际入市面积总数
|
|
|
- };
|
|
|
- },
|
|
|
- //监听属性 类似于data概念
|
|
|
- computed: {
|
|
|
- // // 映射 Vuex 中的状态到当前组件的计算属性
|
|
|
- // ...mapState({
|
|
|
- // id:state => state.regional_information.id,
|
|
|
- // })
|
|
|
- },
|
|
|
- //监控data中的数据变化
|
|
|
- watch: {
|
|
|
- "store.state.regional_information.id": {
|
|
|
- //深度监听,可监听到对象、数组的变化
|
|
|
- handler(val, oldVal) {
|
|
|
- if (val !== oldVal) {
|
|
|
- this.init_across_echart();//国有饼图
|
|
|
- this.init_vertical_echart();//国有柱状统计图
|
|
|
- this.init_rsyt_echart();//集体立体饼图
|
|
|
- this.getInfo();//集体列表数据
|
|
|
- }
|
|
|
- },
|
|
|
- deep: true, //true 深度监听
|
|
|
- },
|
|
|
- },
|
|
|
-
|
|
|
- //方法集合
|
|
|
- beforeCreate() {}, //生命周期 - 创建之前
|
|
|
- created() {}, //生命周期 - 创建完成(可以访问当前this实例)
|
|
|
- beforeMount() {}, //生命周期 - 挂载之前
|
|
|
- methods: {
|
|
|
- async getInfo() {
|
|
|
- let res = await QueryList({
|
|
|
- val0:this.input,
|
|
|
- jscType: "jsc_tdgy_jt_xx",
|
|
|
- id: store.state.regional_information.id,
|
|
|
- });
|
|
|
- this.jiDataInfo = res.data
|
|
|
- },
|
|
|
- changeCharts(evt) {
|
|
|
- this.value = evt;
|
|
|
- this.stateOwnedOrcollective = !this.stateOwnedOrcollective;
|
|
|
- if (this.stateOwnedOrcollective) {
|
|
|
- this.init_rsyt_echart();
|
|
|
- this.getInfo();
|
|
|
- // 清楚定时器
|
|
|
- clearInterval(this.setInterValAl);
|
|
|
- }
|
|
|
- },
|
|
|
- switchStateOwnedButton() {
|
|
|
- this.stateOwnedOrcollective = !this.stateOwnedOrcollective;
|
|
|
- },
|
|
|
-
|
|
|
- async init_across_echart() {
|
|
|
- var dom = document.getElementById("across_echart");
|
|
|
- var myChart = window.echarts.init(dom);
|
|
|
- let gyInfo = await QueryList({
|
|
|
- jscType: "jsc_tdgy_gy_ztsh",
|
|
|
- id: store.state.regional_information.id,
|
|
|
- });
|
|
|
- var dataList = [
|
|
|
- {
|
|
|
- value: gyInfo.data[0]["sj_cr_crmj"],
|
|
|
- name: "已出让",
|
|
|
- },
|
|
|
- {
|
|
|
- value: gyInfo.data[0]["sj_hb_crmj"],
|
|
|
- name: "已划拨",
|
|
|
- },
|
|
|
- {
|
|
|
- value: gyInfo.data[0]["ce_crmj"],
|
|
|
- name: "未供应",
|
|
|
- },
|
|
|
- ];
|
|
|
- var color2 = [
|
|
|
- {
|
|
|
- color: {
|
|
|
- type: "linear",
|
|
|
- x: 0,
|
|
|
- y: 0,
|
|
|
- x2: 1,
|
|
|
- y2: 1,
|
|
|
- colorStops: [
|
|
|
- {
|
|
|
- offset: 0,
|
|
|
- color: "#FC8053",
|
|
|
- },
|
|
|
- {
|
|
|
- offset: 1,
|
|
|
- color: "#F2CAA4",
|
|
|
- },
|
|
|
- ],
|
|
|
- global: false,
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- color: {
|
|
|
- type: "linear",
|
|
|
- x: 0,
|
|
|
- y: 0,
|
|
|
- x2: 1,
|
|
|
- y2: 1,
|
|
|
- colorStops: [
|
|
|
- {
|
|
|
- offset: 0,
|
|
|
- color: "#6EDC8D ",
|
|
|
- },
|
|
|
- {
|
|
|
- offset: 1,
|
|
|
- color: "#5BBD88",
|
|
|
- },
|
|
|
- ],
|
|
|
- global: false,
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- color: {
|
|
|
- type: "linear",
|
|
|
- x: 0,
|
|
|
- y: 0,
|
|
|
- x2: 1,
|
|
|
- y2: 1,
|
|
|
- colorStops: [
|
|
|
- // {
|
|
|
- // offset: 0,
|
|
|
- // color: "#f888b1",
|
|
|
- // },
|
|
|
- // {
|
|
|
- // offset: 1,
|
|
|
- // color: "#fbe6ee",
|
|
|
- // },
|
|
|
- {
|
|
|
- offset: 0,
|
|
|
- color: "#5583e7",
|
|
|
- },
|
|
|
- {
|
|
|
- offset: 1,
|
|
|
- color: "#36dddb",
|
|
|
- },
|
|
|
- ],
|
|
|
- global: false,
|
|
|
- },
|
|
|
- },
|
|
|
- ];
|
|
|
- var dataAll = 0;
|
|
|
- dataList.forEach((item, index) => {
|
|
|
- item.itemStyle = color2[index];
|
|
|
- dataAll += item.value;
|
|
|
- });
|
|
|
-
|
|
|
- let option = {
|
|
|
- backgroundColor: "rgba(0,0,0,0)",
|
|
|
- legend: {
|
|
|
- orient: "horizontal",
|
|
|
- left: "center",
|
|
|
- bottom: "1%",
|
|
|
- // selectedMode: 'multiple',
|
|
|
- padding: [0, 0, 0, 0], //调节legend的位置
|
|
|
- data: ["类型", "已出让", "已划拨", "未供应"],
|
|
|
- icon: "rect", // 这个字段控制形状 类型包括 circle,rect ,roundRect,triangle,diamond,pin,arrow,none
|
|
|
- itemWidth: 12, // 设置宽度
|
|
|
- itemHeight: 12, // 设置高度
|
|
|
- itemGap: 10, // 设置间距
|
|
|
- textStyle: {
|
|
|
- //图例文字的样式
|
|
|
- color: "#fff",
|
|
|
- fontSize: 14,
|
|
|
- },
|
|
|
- },
|
|
|
- graphic: [
|
|
|
- {
|
|
|
- type: "group",
|
|
|
- top: "middle",
|
|
|
- left: "center",
|
|
|
- id: "data",
|
|
|
- children: [
|
|
|
- {
|
|
|
- type: "text",
|
|
|
- id: "current",
|
|
|
- top: 100,
|
|
|
- style: {
|
|
|
- text: dataAll || 0,
|
|
|
- font: 'bolder 18px "Microsoft YaHei", sans-serif',
|
|
|
- fill: "#64DAFF ",
|
|
|
- textAlign: "center",
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- type: "text",
|
|
|
- id: "all",
|
|
|
- top: 80,
|
|
|
- style: {
|
|
|
- text: "计划供应",
|
|
|
- font: 'bolder 14px "Microsoft YaHei", sans-serif',
|
|
|
- fill: "#ECF6FF",
|
|
|
- textAlign: "center",
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- type: "text",
|
|
|
- id: "gq",
|
|
|
- top: 120,
|
|
|
- style: {
|
|
|
- text: "公顷",
|
|
|
- font: 'bolder 12px "Microsoft YaHei", sans-serif',
|
|
|
- fill: "#4FABCF",
|
|
|
- textAlign: "center",
|
|
|
- },
|
|
|
- },
|
|
|
- ],
|
|
|
- },
|
|
|
- ],
|
|
|
- series: [
|
|
|
- {
|
|
|
- name: "公顷",
|
|
|
- type: "pie",
|
|
|
- radius: ["40%", "70%"],
|
|
|
- avoidLabelOverlap: false,
|
|
|
- label: {
|
|
|
- normal: {
|
|
|
- show: false, //是否展示数据
|
|
|
- position: "inner", // 数值显示在内部
|
|
|
- color: "#fff",
|
|
|
- fontSize: 16,
|
|
|
- fontWeight: 400,
|
|
|
- formatter: (params) => {
|
|
|
- return params.percent + "%";
|
|
|
- },
|
|
|
- rich: {},
|
|
|
- },
|
|
|
- },
|
|
|
- emphasis: {
|
|
|
- label: {
|
|
|
- show: true,
|
|
|
- fontSize: "16",
|
|
|
- fontWeight: "bold",
|
|
|
- },
|
|
|
- },
|
|
|
- labelLine: {
|
|
|
- show: false,
|
|
|
- // length: 48,
|
|
|
- },
|
|
|
- data: dataList,
|
|
|
- },
|
|
|
- ],
|
|
|
- };
|
|
|
-
|
|
|
- myChart.setOption(option);
|
|
|
- },
|
|
|
- async init_vertical_echart() {
|
|
|
- var dom = document.getElementById("vertical_echart");
|
|
|
- myCharts = window.echarts.init(dom);
|
|
|
- if (this.setInterValAl) {
|
|
|
- // 清楚定时器
|
|
|
- clearInterval(this.setInterValAl);
|
|
|
- }
|
|
|
- var jhgymj = []; //计划供应面积
|
|
|
- var ygimj = []; //已供应面积
|
|
|
- var jhgyxm = []; //计划供应项目
|
|
|
- var wcgyxm = []; //完成供应项目
|
|
|
- var allType = []; //所有统计类型名称
|
|
|
- let gyPlan = await QueryList({
|
|
|
- jscType: "jsc_tdgy_gy_yelx",
|
|
|
- id: store.state.regional_information.id,
|
|
|
- });
|
|
|
- gyPlan.data.forEach((item) => {
|
|
|
- allType.push(item.tdyt);
|
|
|
- jhgymj.push(item.jh_crmj);
|
|
|
- ygimj.push(item.sj_crmj);
|
|
|
- jhgyxm.push(item.jh_xzqhdm_number);
|
|
|
- wcgyxm.push(item.sj_xzqhdm_number);
|
|
|
- });
|
|
|
- // 统计图的滚动属性
|
|
|
- const dataZoom = [
|
|
|
- {
|
|
|
- show: false,
|
|
|
- height: 12,
|
|
|
- xAxisIndex: [0],
|
|
|
- bottom: "5%",
|
|
|
- start: 0,
|
|
|
- end: 30,
|
|
|
- handleIcon:
|
|
|
- "path://M306.1,413c0,2.2-1.8,4-4,4h-59.8c-2.2,0-4-1.8-4-4V200.8c0-2.2,1.8-4,4-4h59.8c2.2,0,4,1.8,4,4V413z",
|
|
|
- handleSize: "110%",
|
|
|
- handleStyle: {
|
|
|
- color: "#d3dee5",
|
|
|
- },
|
|
|
- textStyle: {
|
|
|
- color: "#fff",
|
|
|
- },
|
|
|
- borderColor: "#90979c",
|
|
|
- },
|
|
|
- ];
|
|
|
-
|
|
|
- this.option = {
|
|
|
- backgroundColor: "rgba(0,0,0,0)",
|
|
|
- // backgroundColor: transparent,
|
|
|
- color: ["rgba(81, 151, 214, 1)", "rgba(16, 67, 118, 1)"],
|
|
|
- title: {},
|
|
|
- legend: {
|
|
|
- orient: "horizontal",
|
|
|
- data: [
|
|
|
- {
|
|
|
- name: "计划供应面积",
|
|
|
- },
|
|
|
- {
|
|
|
- name: "已供应面积",
|
|
|
- },
|
|
|
- {
|
|
|
- name: "计划供应项目",
|
|
|
- },
|
|
|
- {
|
|
|
- name: "完成供应项目",
|
|
|
- },
|
|
|
- ],
|
|
|
- left: "17%",
|
|
|
- top: "1%",
|
|
|
- itemGap: 5, // 设置间距
|
|
|
- textStyle: {
|
|
|
- color: "#BCD3E5",
|
|
|
- fontSize: 12,
|
|
|
- },
|
|
|
- },
|
|
|
- grid: {
|
|
|
- // left: "2%",
|
|
|
- // right: "4%",
|
|
|
- // bottom: "10%",
|
|
|
- // top: "16%",
|
|
|
- // containLabel: true,
|
|
|
- },
|
|
|
- tooltip: {
|
|
|
- trigger: "axis",
|
|
|
- axisPointer: {
|
|
|
- type: "shadow",
|
|
|
- },
|
|
|
- textStyle: {
|
|
|
- align: "left",
|
|
|
- },
|
|
|
- },
|
|
|
- xAxis: [
|
|
|
- {
|
|
|
- type: "category",
|
|
|
- // data: [
|
|
|
- // "居住用地",
|
|
|
- // "公共管理与公共服务用地",
|
|
|
- // "商业服务业用地",
|
|
|
- // "工矿用地",
|
|
|
- // "仓储用地",
|
|
|
- // // "工矿用地仓储用地",
|
|
|
- // "交通运输用地",
|
|
|
- // "公用设施用地",
|
|
|
- // // "绿地与开敞空间用地特殊用地",
|
|
|
- // "绿地与开敞空间用地",
|
|
|
- // "特殊用地",
|
|
|
- // "留白用地"
|
|
|
- // ],
|
|
|
- data: allType,
|
|
|
- axisTick: {
|
|
|
- show: true,
|
|
|
- },
|
|
|
- axisLine: {
|
|
|
- show: true, //是否显示轴线
|
|
|
- lineStyle: {
|
|
|
- color: "#D9D9D9", //刻度线的颜色
|
|
|
- },
|
|
|
- },
|
|
|
-
|
|
|
- axisLabel: {
|
|
|
- show: true,
|
|
|
- rotate: 35, //35度角倾斜显示
|
|
|
- textStyle: {
|
|
|
- color: "#BCD3E5",
|
|
|
- fontSize: 14,
|
|
|
- },
|
|
|
- formatter: function (value) {
|
|
|
- let fast = "";
|
|
|
- if (value.length >= 4) {
|
|
|
- fast = value.slice(0, 4);
|
|
|
- fast += "...";
|
|
|
- } else {
|
|
|
- fast = value;
|
|
|
- }
|
|
|
- return fast;
|
|
|
- },
|
|
|
- },
|
|
|
- },
|
|
|
- ],
|
|
|
- yAxis: [
|
|
|
- {
|
|
|
- name: "面积/公顷",
|
|
|
- type: "value",
|
|
|
- max: "200",
|
|
|
- axisTick: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
- axisLine: {
|
|
|
- show: false,
|
|
|
- lineStyle: {
|
|
|
- color: "#BCD3E5",
|
|
|
- },
|
|
|
- },
|
|
|
- axisLabel: {
|
|
|
- show: true,
|
|
|
- textStyle: {
|
|
|
- color: "#BCD3E5",
|
|
|
- fontSize: 14,
|
|
|
- },
|
|
|
- },
|
|
|
-
|
|
|
- splitLine: {
|
|
|
- show: true,
|
|
|
- lineStyle: {
|
|
|
- color: "#bcd3e59e",
|
|
|
- },
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- type: "value",
|
|
|
- name: "项目数/个",
|
|
|
- max: "45",
|
|
|
- nameTextStyle: {
|
|
|
- color: "#BCD3E5",
|
|
|
- },
|
|
|
- position: "right",
|
|
|
- axisLine: {
|
|
|
- lineStyle: {
|
|
|
- color: "#cdd5e2",
|
|
|
- },
|
|
|
- },
|
|
|
- splitLine: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
- axisLabel: {
|
|
|
- show: true,
|
|
|
- formatter: "{value}", //右侧Y轴文字显示
|
|
|
- textStyle: {
|
|
|
- color: "#BCD3E5",
|
|
|
- fontSize: 14,
|
|
|
- },
|
|
|
- },
|
|
|
- },
|
|
|
- ],
|
|
|
- series: [
|
|
|
- {
|
|
|
- name: "计划供应面积",
|
|
|
- type: "bar",
|
|
|
- stack: "总量",
|
|
|
- barWidth: "40%",
|
|
|
- // data: ["33", "34", "36", "39", "44", "49", "65", "69", "75", "3"],
|
|
|
- data: jhgymj,
|
|
|
- itemStyle: {
|
|
|
- normal: {
|
|
|
- label: {
|
|
|
- show: false, //开启显示
|
|
|
- textStyle: {
|
|
|
- //数值样式
|
|
|
- color: "#333",
|
|
|
- fontSize: 14,
|
|
|
- },
|
|
|
- },
|
|
|
- },
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- name: "已供应面积",
|
|
|
- type: "bar",
|
|
|
- stack: "总量",
|
|
|
- // barWidth: "40%",
|
|
|
- barWidth: 39,
|
|
|
- // data: ["10", "10", "10", "10", "11", "11", "11", "10", "10", "3"],
|
|
|
- data: ygimj,
|
|
|
- itemStyle: {
|
|
|
- normal: {
|
|
|
- label: {
|
|
|
- show: false, //开启显示
|
|
|
- // position: 'top', //在上方显示
|
|
|
- textStyle: {
|
|
|
- //数值样式
|
|
|
- color: "#BCD3E5",
|
|
|
- fontSize: 14,
|
|
|
- },
|
|
|
- },
|
|
|
- },
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- name: "计划供应项目",
|
|
|
- type: "line",
|
|
|
- yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
|
|
|
- smooth: false, //平滑曲线显示
|
|
|
- symbol: "circle", //标记的图形为实心圆
|
|
|
- symbolSize: 8, //标记的大小
|
|
|
- itemStyle: {
|
|
|
- normal: {
|
|
|
- color: "rgba(255,255,255, 1)",
|
|
|
- borderColor: "rgba(70, 138, 115,1)", //圆点透明 边框
|
|
|
- borderWidth: 3,
|
|
|
- },
|
|
|
- },
|
|
|
- lineStyle: {
|
|
|
- color: "rgba(70, 138, 115, 1)",
|
|
|
- },
|
|
|
- // data: ["23", "24", "26", "28", "29", "31", "32", "31", "33", "34"]
|
|
|
- data: jhgyxm,
|
|
|
- },
|
|
|
- {
|
|
|
- name: "完成供应项目",
|
|
|
- type: "line",
|
|
|
- yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
|
|
|
- smooth: false, //平滑曲线显示
|
|
|
- symbol: "circle", //标记的图形为实心圆
|
|
|
- symbolSize: 8, //标记的大小
|
|
|
- itemStyle: {
|
|
|
- normal: {
|
|
|
- color: "rgba(255,255,255, 1)",
|
|
|
-
|
|
|
- borderColor: "rgba(144, 60, 80, 1)", //圆点透明 边框
|
|
|
- borderWidth: 3,
|
|
|
- },
|
|
|
- },
|
|
|
- lineStyle: {
|
|
|
- color: "rgba(144, 60, 80, 1)",
|
|
|
- },
|
|
|
- // data: ["30", "32", "34", "39", "41", "32", "30", "25", "28", "34"]
|
|
|
- data: wcgyxm,
|
|
|
- },
|
|
|
- ],
|
|
|
- dataZoom,
|
|
|
- };
|
|
|
-
|
|
|
- myCharts.on("click", function (params) {
|
|
|
- console.log("点击了柱状图:", params.name, params.data);
|
|
|
- });
|
|
|
-
|
|
|
- myCharts.setOption(this.option);
|
|
|
- this.setIntervalAll();
|
|
|
- },
|
|
|
-
|
|
|
- async init_rsyt_echart() {
|
|
|
- var myChart = echarts.init(document.getElementById("rsyt_echart"));
|
|
|
- let colors = [
|
|
|
- "#57A6E9",
|
|
|
- "#5EBC85",
|
|
|
- "#37a2da",
|
|
|
- "#ffdb5c",
|
|
|
- "#ff9f7f",
|
|
|
- "#9fe6b8",
|
|
|
- "#67e0e3",
|
|
|
- "#32c5e9",
|
|
|
- "#fb7293",
|
|
|
- "#9A60B4",
|
|
|
- "#ea7ccc",
|
|
|
- ];
|
|
|
-
|
|
|
- let res = await QueryList({
|
|
|
- jscType: "jsc_tdgy_jt_yelx",
|
|
|
- id: 46,
|
|
|
- });
|
|
|
- // 传入数据生成 option
|
|
|
- let optionsData = [];
|
|
|
- let lengedList = []; //图例数据
|
|
|
- this.jhNumber = 0; //计划入市面积总数
|
|
|
- this.sjNumber = 0; //实际入市面积总数
|
|
|
- res.data.forEach((item) => {
|
|
|
- optionsData.push({
|
|
|
- name: item.tdyt,
|
|
|
- value: item.jh_crmj,
|
|
|
- });
|
|
|
- lengedList.push(item.tdyt);
|
|
|
- this.jhNumber += item.jh_crmj;
|
|
|
- this.sjNumber += item.sj_crmj;
|
|
|
- });
|
|
|
- function getParametricEquation(
|
|
|
- startRatio,
|
|
|
- endRatio,
|
|
|
- isSelected,
|
|
|
- isHovered,
|
|
|
- k,
|
|
|
- height,
|
|
|
- i
|
|
|
- ) {
|
|
|
- // 计算
|
|
|
- let midRatio = (startRatio + endRatio) / 2;
|
|
|
-
|
|
|
- let startRadian = startRatio * Math.PI * 2;
|
|
|
- let endRadian = endRatio * Math.PI * 2;
|
|
|
- let midRadian = midRatio * Math.PI * 2;
|
|
|
-
|
|
|
- // 如果只有一个扇形,则不实现选中效果。
|
|
|
- if (startRatio === 0 && endRatio === 1) {
|
|
|
- isSelected = false;
|
|
|
- }
|
|
|
-
|
|
|
- // 通过扇形内径/外径的值,换算出辅助参数 k(默认值 1/3)
|
|
|
- k = typeof k !== "undefined" ? k : 1 / 3;
|
|
|
-
|
|
|
- // 计算选中效果分别在 x 轴、y 轴方向上的位移(未选中,则位移均为 0)
|
|
|
- let offsetX = isSelected ? Math.cos(midRadian) * 0.1 : 0;
|
|
|
- let offsetY = isSelected ? Math.sin(midRadian) * 0.1 : 0;
|
|
|
- let offsetZ = i == 1 ? 2 : 0;
|
|
|
- // 计算高亮效果的放大比例(未高亮,则比例为 1)
|
|
|
- let hoverRate = isHovered ? 1.05 : 1;
|
|
|
-
|
|
|
- // 返回曲面参数方程
|
|
|
- return {
|
|
|
- u: {
|
|
|
- min: -Math.PI,
|
|
|
- max: Math.PI * 3,
|
|
|
- step: Math.PI / 32,
|
|
|
- },
|
|
|
-
|
|
|
- v: {
|
|
|
- min: 0,
|
|
|
- max: Math.PI * 2,
|
|
|
- step: Math.PI / 20,
|
|
|
- },
|
|
|
-
|
|
|
- x: function (u, v) {
|
|
|
- if (u < startRadian) {
|
|
|
- return (
|
|
|
- offsetX +
|
|
|
- Math.cos(startRadian) * (1 + Math.cos(v) * k) * hoverRate
|
|
|
- );
|
|
|
- }
|
|
|
- if (u > endRadian) {
|
|
|
- return (
|
|
|
- offsetX +
|
|
|
- Math.cos(endRadian) * (1 + Math.cos(v) * k) * hoverRate
|
|
|
- );
|
|
|
- }
|
|
|
- return offsetX + Math.cos(u) * (1 + Math.cos(v) * k) * hoverRate;
|
|
|
- },
|
|
|
-
|
|
|
- y: function (u, v) {
|
|
|
- if (u < startRadian) {
|
|
|
- return (
|
|
|
- offsetY +
|
|
|
- Math.sin(startRadian) * (1 + Math.cos(v) * k) * hoverRate
|
|
|
- );
|
|
|
- }
|
|
|
- if (u > endRadian) {
|
|
|
- return (
|
|
|
- offsetY +
|
|
|
- Math.sin(endRadian) * (1 + Math.cos(v) * k) * hoverRate
|
|
|
- );
|
|
|
- }
|
|
|
- return offsetY + Math.sin(u) * (1 + Math.cos(v) * k) * hoverRate;
|
|
|
- },
|
|
|
-
|
|
|
- z: function (u, v) {
|
|
|
- if (u < -Math.PI * 0.5) {
|
|
|
- return Math.sin(u);
|
|
|
- }
|
|
|
- if (u > Math.PI * 2.5) {
|
|
|
- return Math.sin(u);
|
|
|
- }
|
|
|
- return Math.sin(v) > 0 ? 1 * height : -1;
|
|
|
- },
|
|
|
- };
|
|
|
- }
|
|
|
- // 生成模拟 3D 饼图的配置项
|
|
|
- function getPie3D(pieData, internalDiameterRatio) {
|
|
|
- let series = [];
|
|
|
- let sumValue = 0;
|
|
|
- let startValue = 0;
|
|
|
- let endValue = 0;
|
|
|
- let legendData = [];
|
|
|
- let k =
|
|
|
- typeof internalDiameterRatio !== "undefined"
|
|
|
- ? (1 - internalDiameterRatio) / (1 + internalDiameterRatio)
|
|
|
- : 1 / 3;
|
|
|
-
|
|
|
- // 为每一个饼图数据,生成一个 series-surface 配置
|
|
|
- for (let i = 0; i < pieData.length; i++) {
|
|
|
- sumValue += pieData[i].value;
|
|
|
-
|
|
|
- let seriesItem = {
|
|
|
- name:
|
|
|
- typeof pieData[i].name === "undefined"
|
|
|
- ? `series${i}`
|
|
|
- : pieData[i].name,
|
|
|
- type: "surface",
|
|
|
- parametric: true,
|
|
|
- wireframe: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
- pieData: pieData[i],
|
|
|
- itemStyle: {
|
|
|
- color: colors[i], // 自定义颜色
|
|
|
- opacity: "0.7",
|
|
|
- },
|
|
|
- pieStatus: {
|
|
|
- selected: false,
|
|
|
- hovered: false,
|
|
|
- k: k,
|
|
|
- },
|
|
|
- };
|
|
|
-
|
|
|
- if (typeof pieData[i].itemStyle != "undefined") {
|
|
|
- let itemStyle = {};
|
|
|
-
|
|
|
- typeof pieData[i].itemStyle.color != "undefined"
|
|
|
- ? (itemStyle.color = pieData[i].itemStyle.color)
|
|
|
- : null;
|
|
|
- typeof pieData[i].itemStyle.opacity != "undefined"
|
|
|
- ? (itemStyle.opacity = pieData[i].itemStyle.opacity)
|
|
|
- : null;
|
|
|
-
|
|
|
- seriesItem.itemStyle = itemStyle;
|
|
|
- }
|
|
|
- series.push(seriesItem);
|
|
|
- }
|
|
|
-
|
|
|
- // 使用上一次遍历时,计算出的数据和 sumValue,调用 getParametricEquation 函数,
|
|
|
- // 向每个 series-surface 传入不同的参数方程 series-surface.parametricEquation,也就是实现每一个扇形。
|
|
|
- for (let i = 0; i < series.length; i++) {
|
|
|
- endValue = startValue + series[i].pieData.value;
|
|
|
- series[i].pieData.startRatio = startValue / sumValue;
|
|
|
- series[i].pieData.endRatio = endValue / sumValue;
|
|
|
- series[i].parametricEquation = getParametricEquation(
|
|
|
- series[i].pieData.startRatio,
|
|
|
- series[i].pieData.endRatio,
|
|
|
- false,
|
|
|
- false,
|
|
|
- k,
|
|
|
- // 调整扇形高度
|
|
|
- i === 0 ? 10 : 10,
|
|
|
- i,
|
|
|
- series[i].pieData.value
|
|
|
- );
|
|
|
-
|
|
|
- startValue = endValue;
|
|
|
-
|
|
|
- legendData.push(series[i].name);
|
|
|
- }
|
|
|
- return series;
|
|
|
- }
|
|
|
-
|
|
|
- const series = getPie3D(optionsData, 0.6); // 可做为调整内环大小 0为实心圆饼图,大于0 小于1 为圆环
|
|
|
- series.push({
|
|
|
- name: "pie2d",
|
|
|
- type: "pie",
|
|
|
- label: {
|
|
|
- opacity: 1,
|
|
|
- fontSize: 14,
|
|
|
- lineHeight: 20,
|
|
|
- textStyle: {
|
|
|
- fontSize: 14,
|
|
|
- color: "#fff",
|
|
|
- },
|
|
|
- },
|
|
|
- labelLine: {
|
|
|
- length: 10,
|
|
|
- length2: 10,
|
|
|
- },
|
|
|
- startAngle: 2, //起始角度,支持范围[0, 360]。
|
|
|
- clockwise: false, //饼图的扇区是否是顺时针排布。上述这两项配置主要是为了对齐3d的样式
|
|
|
- radius: ["50%", "60%"],
|
|
|
- center: ["62%", "50%"],
|
|
|
- data: optionsData,
|
|
|
- itemStyle: {
|
|
|
- opacity: 0,
|
|
|
- },
|
|
|
- labelLine: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
- label: {
|
|
|
- show: false,
|
|
|
- position: "center",
|
|
|
- },
|
|
|
- });
|
|
|
- // 准备待返回的配置项,把准备好的 legendData、series 传入。
|
|
|
- var option = {
|
|
|
- legend: {
|
|
|
- show: true,
|
|
|
- tooltip: {
|
|
|
- show: true,
|
|
|
- },
|
|
|
- orient: "vertical",
|
|
|
- // data: ["商服用地", "工业用地"],
|
|
|
- data: lengedList,
|
|
|
- top: "center",
|
|
|
- itemGap: 14,
|
|
|
- itemHeight: 14,
|
|
|
- itemWidth: 14,
|
|
|
- itemRadius: 20,
|
|
|
- right: "2%",
|
|
|
- textStyle: {
|
|
|
- color: "#BCD3E5 ",
|
|
|
- fontSize: 14,
|
|
|
- padding: [15, 5, 0, 0], //上,右,下,左
|
|
|
- rich: {
|
|
|
- name: {
|
|
|
- // width: '45%',
|
|
|
- fontSize: 14,
|
|
|
- color: "#BCD3E5 ",
|
|
|
- padding: [6, 0, 6, 0],
|
|
|
- },
|
|
|
- value: {
|
|
|
- fontSize: 14,
|
|
|
- padding: [0, 0, 0, 5],
|
|
|
- color: "#64DAFF",
|
|
|
- },
|
|
|
- },
|
|
|
- },
|
|
|
- formatter: function (name) {
|
|
|
- let res = optionsData.filter((v) => v.name === name);
|
|
|
- res = res[0] || {};
|
|
|
- const p = res.value;
|
|
|
- return "{name|" + name + "}" + "\n" + "{value|" + p + "}公顷";
|
|
|
- // return "{name|" + name + "}";
|
|
|
- },
|
|
|
- },
|
|
|
- animation: true,
|
|
|
- tooltip: {
|
|
|
- show: false,
|
|
|
- textStyle: {
|
|
|
- fontSize: 14,
|
|
|
- },
|
|
|
- },
|
|
|
- title: {
|
|
|
- x: "center",
|
|
|
- top: "20",
|
|
|
- textStyle: {
|
|
|
- color: "#fff",
|
|
|
- fontSize: 22,
|
|
|
- },
|
|
|
- },
|
|
|
- backgroundColor: "rgba(0,0,0,0)",
|
|
|
- labelLine: {
|
|
|
- show: true,
|
|
|
- lineStyle: {
|
|
|
- color: "#7BC0CB",
|
|
|
- },
|
|
|
- normal: {
|
|
|
- show: false,
|
|
|
- length: 10,
|
|
|
- length2: 10,
|
|
|
- },
|
|
|
- },
|
|
|
- label: {
|
|
|
- show: true,
|
|
|
- position: "outside",
|
|
|
- // formatter: "{b} {d}%",
|
|
|
- formatter: function (optionsData) {
|
|
|
- return (
|
|
|
- "{name|" +
|
|
|
- optionsData.name +
|
|
|
- "}" +
|
|
|
- " {value|" +
|
|
|
- optionsData.percent.toFixed(0) +
|
|
|
- "%}"
|
|
|
- );
|
|
|
- },
|
|
|
- rich: {
|
|
|
- name: {
|
|
|
- fontSize: 14,
|
|
|
- color: "#ffffff",
|
|
|
- },
|
|
|
- value: {
|
|
|
- fontSize: 14,
|
|
|
- color: "#ffffff",
|
|
|
- },
|
|
|
- },
|
|
|
- textStyle: {
|
|
|
- color: "#fff",
|
|
|
- fontSize: "14px",
|
|
|
- },
|
|
|
- },
|
|
|
- xAxis3D: {
|
|
|
- min: -1,
|
|
|
- max: 1,
|
|
|
- },
|
|
|
- yAxis3D: {
|
|
|
- min: -1,
|
|
|
- max: 1,
|
|
|
- },
|
|
|
- zAxis3D: {
|
|
|
- min: -1,
|
|
|
- max: 1,
|
|
|
- },
|
|
|
- grid3D: {
|
|
|
- show: false,
|
|
|
- boxHeight: 3,
|
|
|
- //top: '30%',
|
|
|
- left: "-20%",
|
|
|
- bottom: "50%",
|
|
|
- // environment: "rgba(255,255,255,0)",
|
|
|
- viewControl: {
|
|
|
- distance: 145,
|
|
|
- alpha: 35,
|
|
|
- beta: 15,
|
|
|
- autoRotate: false, // 自动旋转
|
|
|
- },
|
|
|
- },
|
|
|
- series: series,
|
|
|
- };
|
|
|
- myChart.setOption(option);
|
|
|
- },
|
|
|
- /**
|
|
|
- * @return {*}
|
|
|
- * @author: liukeke
|
|
|
- * @description: 设置定时器保证统计图的轮播
|
|
|
- */
|
|
|
- setIntervalAll() {
|
|
|
- // 重设this指向
|
|
|
- const that = this;
|
|
|
- // 定时器
|
|
|
- this.setInterValAl = setInterval(function () {
|
|
|
- // 每次向后滚动一个,最后一个从头开始。
|
|
|
- if (that.option.dataZoom[0].start == 30) {
|
|
|
- that.option.dataZoom[0].end = 30;
|
|
|
- that.option.dataZoom[0].start = 0;
|
|
|
- } else {
|
|
|
- that.option.dataZoom[0].end = that.option.dataZoom[0].end + 5;
|
|
|
- that.option.dataZoom[0].start = that.option.dataZoom[0].start + 5;
|
|
|
- // console.log(that.option_sevenWG.dataZoom[0].end);
|
|
|
- // console.log(that.option_sevenWG.dataZoom[0].start);
|
|
|
- }
|
|
|
- myCharts.setOption(that.option);
|
|
|
- }, 5000);
|
|
|
- },
|
|
|
- },
|
|
|
- mounted() {
|
|
|
- this.init_across_echart();
|
|
|
- this.init_rsyt_echart();
|
|
|
- this.$nextTick(() => {
|
|
|
- this.init_vertical_echart();
|
|
|
- });
|
|
|
- },
|
|
|
- beforeUpdate() {}, //生命周期 - 更新之前
|
|
|
- updated() {}, //生命周期 - 更新之后
|
|
|
- beforeDestroy() {
|
|
|
- // 清楚定时器
|
|
|
- clearInterval(this.setInterValAl);
|
|
|
- }, //生命周期 - 销毁之前
|
|
|
- destroy() {}, //生命周期 - 销毁完成
|
|
|
- activated() {}, //若组件实例是 <KeepAlive> 缓存树的一部分,当组件被插入到 DOM 中时调用。
|
|
|
- deactivated() {}, //若组件实例是 <KeepAlive> 缓存树的一部分,当组件从 DOM 中被移除时调用。
|
|
|
-};
|
|
|
-</script>
|
|
|
-
|
|
|
-<style lang="scss" scoped>
|
|
|
-.tdsy {
|
|
|
- border-width: 0px;
|
|
|
- position: absolute;
|
|
|
- left: 434px;
|
|
|
- top: 68%;
|
|
|
- width: 640px;
|
|
|
- z-index: 100;
|
|
|
-
|
|
|
- .box1 {
|
|
|
- border-width: 0px;
|
|
|
- position: absolute;
|
|
|
- left: 0px;
|
|
|
- top: 0px;
|
|
|
- // width: 800px;
|
|
|
- // height: 260px;
|
|
|
- width: 40rem;
|
|
|
- height: 18rem;
|
|
|
- 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: 36px;
|
|
|
- background: no-repeat;
|
|
|
- background-image: url("/static/images/overview/titlebox.gif");
|
|
|
- // background-size: 100% 100%;
|
|
|
- display: flex;
|
|
|
- justify-content: space-between;
|
|
|
- .icon {
|
|
|
- background: no-repeat;
|
|
|
- background-image: url("/static/images/overview/icon_标题框装饰.png");
|
|
|
- display: inline-block;
|
|
|
- width: 30px;
|
|
|
- height: 30px;
|
|
|
- background-position: 14px 7px;
|
|
|
- }
|
|
|
-
|
|
|
- span {
|
|
|
- color: #fff;
|
|
|
- font-size: 14px;
|
|
|
- font-weight: bold;
|
|
|
- position: relative;
|
|
|
- bottom: 0.5rem;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .selectTab {
|
|
|
- /deep/ .el-input__inner {
|
|
|
- // padding-right: 30px;
|
|
|
- width: 128px !important;
|
|
|
- height: 24px !important;
|
|
|
- line-height: 24px;
|
|
|
- padding-left: 22px;
|
|
|
- padding-right: 0px;
|
|
|
- font-size: 12px;
|
|
|
- color: #bcd3e5;
|
|
|
- border: none;
|
|
|
- background: url("/static/images/overview/selectBg.png") no-repeat !important;
|
|
|
- background-size: 100% 100%;
|
|
|
- }
|
|
|
- /deep/ .el-input__icon {
|
|
|
- line-height: 1;
|
|
|
- }
|
|
|
- /deep/ .el-input__suffix {
|
|
|
- right: -2px;
|
|
|
- }
|
|
|
- /deep/ .el-select-dropdown__list {
|
|
|
- color: #bcd3e5 !important;
|
|
|
- background: linear-gradient(
|
|
|
- 180deg,
|
|
|
- rgba(3, 115, 177, 0) 11%,
|
|
|
- rgba(3, 115, 177, 0.48) 100%
|
|
|
- );
|
|
|
- border-image: linear-gradient(
|
|
|
- 360deg,
|
|
|
- rgba(75, 185, 250, 0.2),
|
|
|
- rgba(75, 185, 250, 0.05)
|
|
|
- )
|
|
|
- 1 1 !important;
|
|
|
- border: none;
|
|
|
- }
|
|
|
- /deep/ .el-select-dropdown__item.hover,
|
|
|
- .el-select-dropdown__item:hover {
|
|
|
- background-color: rgba(87, 163, 226, 0.5);
|
|
|
- }
|
|
|
- /deep/ .el-select-dropdown__item {
|
|
|
- color: #ecf6ff;
|
|
|
- }
|
|
|
- }
|
|
|
- /deep/ {
|
|
|
- .el-select-dropdown__item.selected {
|
|
|
- color: #409eff;
|
|
|
- }
|
|
|
- }
|
|
|
- /deep/ .el-popper[x-placement^="bottom"] {
|
|
|
- margin-top: 12px;
|
|
|
- background: #163253;
|
|
|
- }
|
|
|
- /deep/ .el-select-dropdown {
|
|
|
- border: none;
|
|
|
- }
|
|
|
- /deep/ .el-popper[x-placement^="bottom"] .popper__arrow::after {
|
|
|
- border-bottom-color: #163253;
|
|
|
- top: 0;
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-.content {
|
|
|
- position: absolute;
|
|
|
- left: 0%;
|
|
|
- width: 20.5rem;
|
|
|
- height: 18rem;
|
|
|
- top: 18%;
|
|
|
-}
|
|
|
-
|
|
|
-#tdsyEchart {
|
|
|
- width: 280px;
|
|
|
- height: 230px;
|
|
|
- position: relative;
|
|
|
- left: -35px;
|
|
|
- top: 95px;
|
|
|
-}
|
|
|
-
|
|
|
-.list {
|
|
|
- position: absolute;
|
|
|
- left: 137%;
|
|
|
- top: 25%;
|
|
|
-}
|
|
|
-
|
|
|
-#across_echart {
|
|
|
- position: relative;
|
|
|
- // left: -6rem;
|
|
|
- top: 2.1rem;
|
|
|
- width: 15rem;
|
|
|
- height: 15rem;
|
|
|
-}
|
|
|
-
|
|
|
-#vertical_echart {
|
|
|
- left: 14rem;
|
|
|
- top: -12.9rem;
|
|
|
- width: 26rem;
|
|
|
- height: 15rem;
|
|
|
-}
|
|
|
-
|
|
|
-#rsyt_echart {
|
|
|
- position: relative;
|
|
|
- top: 2.1rem;
|
|
|
- width: 20.5rem;
|
|
|
- height: 10rem;
|
|
|
-}
|
|
|
-
|
|
|
-.deficiency_echart {
|
|
|
- width: 9rem;
|
|
|
- height: 9rem;
|
|
|
- border: 20px solid #104375;
|
|
|
- position: absolute;
|
|
|
- top: 4rem;
|
|
|
- left: 2rem;
|
|
|
- border-radius: 80rem;
|
|
|
-}
|
|
|
-
|
|
|
-.content1 {
|
|
|
- background: no-repeat;
|
|
|
- width: 100%;
|
|
|
- height: 44px;
|
|
|
- position: absolute;
|
|
|
- bottom: 1.8rem;
|
|
|
-}
|
|
|
-
|
|
|
-.icon_info {
|
|
|
- background: no-repeat;
|
|
|
-
|
|
|
- // background-image: url("/static/images/overview/icon_info.png");
|
|
|
- background-image: url("/static/images/overview/icon信息.png");
|
|
|
-
|
|
|
- display: inline-block;
|
|
|
- width: 2rem;
|
|
|
- height: 3rem;
|
|
|
- position: absolute;
|
|
|
- left: 0rem;
|
|
|
- top: 0.5rem;
|
|
|
-}
|
|
|
-
|
|
|
-.info_left {
|
|
|
- background: no-repeat;
|
|
|
- background-image: url("/static/images/overview/info_left.png");
|
|
|
- display: inline-block;
|
|
|
- width: 10rem;
|
|
|
- height: 3rem;
|
|
|
- background-size: 100%;
|
|
|
- position: absolute;
|
|
|
- left: 0.65rem;
|
|
|
- display: flex;
|
|
|
- justify-content: space-between;
|
|
|
- .count {
|
|
|
- color: #faa012;
|
|
|
- font-size: 16px;
|
|
|
- font-weight: bold;
|
|
|
- // line-height: 3rem;
|
|
|
- // text-align: end;
|
|
|
- i {
|
|
|
- font-style: normal;
|
|
|
- color: #ecf6ff;
|
|
|
- font-size: 12px;
|
|
|
- font-weight: normal;
|
|
|
- margin: 0 5px;
|
|
|
- }
|
|
|
- }
|
|
|
- span:first-child {
|
|
|
- width: 4rem;
|
|
|
- height: 2.5rem;
|
|
|
- display: block;
|
|
|
- margin-left: 1rem;
|
|
|
- color: #bcd3e5;
|
|
|
- font-weight: bold;
|
|
|
- font-size: 14px;
|
|
|
- }
|
|
|
- span:nth-child(2) {
|
|
|
- display: inline-block;
|
|
|
- width: 5rem;
|
|
|
- height: 2.5rem;
|
|
|
- text-align: end;
|
|
|
- line-height: 2.5rem;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-.info_main {
|
|
|
- background: no-repeat;
|
|
|
- background: linear-gradient(
|
|
|
- 270deg,
|
|
|
- rgba(29, 96, 156, 0.8) 0%,
|
|
|
- rgba(29, 96, 156, 0.2) 100%
|
|
|
- );
|
|
|
- display: inline-block;
|
|
|
- width: 10rem;
|
|
|
- height: 2.5rem;
|
|
|
- background-size: 100%;
|
|
|
- position: absolute;
|
|
|
- left: 10.5rem;
|
|
|
- display: flex;
|
|
|
- justify-content: space-between;
|
|
|
- .count {
|
|
|
- color: #64daff;
|
|
|
- font-size: 16px;
|
|
|
- font-weight: bold;
|
|
|
- // line-height: 3rem;
|
|
|
- // text-align: end;
|
|
|
- i {
|
|
|
- font-style: normal;
|
|
|
- color: #ecf6ff;
|
|
|
- font-size: 12px;
|
|
|
- font-weight: normal;
|
|
|
- margin: 0 5px;
|
|
|
- }
|
|
|
- }
|
|
|
- span:first-child {
|
|
|
- width: 3rem;
|
|
|
- height: 2.5rem;
|
|
|
- display: block;
|
|
|
- margin-left: 1rem;
|
|
|
- color: #bcd3e5;
|
|
|
- font-weight: bold;
|
|
|
- font-size: 14px;
|
|
|
- }
|
|
|
- span:nth-child(2) {
|
|
|
- display: inline-block;
|
|
|
- width: 6rem;
|
|
|
- height: 2.5rem;
|
|
|
- text-align: end;
|
|
|
- line-height: 2.5rem;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-.content2 {
|
|
|
- position: absolute;
|
|
|
- left: 100%;
|
|
|
- width: 19.5rem;
|
|
|
- height: 15rem;
|
|
|
- top: 12%;
|
|
|
- .search {
|
|
|
- height: 14%;
|
|
|
- padding-top: 2%;
|
|
|
- /deep/ .el-input {
|
|
|
- width: 54%;
|
|
|
- }
|
|
|
- /deep/ .el-input__inner {
|
|
|
- color: #bcd3e5;
|
|
|
- height: 24px;
|
|
|
- background: linear-gradient(
|
|
|
- 180deg,
|
|
|
- rgba(3, 115, 177, 0) 11%,
|
|
|
- rgba(3, 115, 177, 0.48) 100%
|
|
|
- );
|
|
|
- border-radius: 2px 16px 2px 22px;
|
|
|
- border: 1px solid;
|
|
|
- border-image: linear-gradient(
|
|
|
- 360deg,
|
|
|
- rgba(75, 185, 250, 0.2),
|
|
|
- rgba(75, 185, 250, 0.05)
|
|
|
- )
|
|
|
- 1 1;
|
|
|
- border: none;
|
|
|
- }
|
|
|
-
|
|
|
- /deep/.el-input__suffix {
|
|
|
- color: #64daff;
|
|
|
- }
|
|
|
-
|
|
|
- .el-input__icon {
|
|
|
- line-height: 24px;
|
|
|
- }
|
|
|
- }
|
|
|
- .infoLIst {
|
|
|
- width: 100%;
|
|
|
- height: 12rem;
|
|
|
- overflow: hidden;
|
|
|
- overflow-y: auto;
|
|
|
- margin-right: 10px;
|
|
|
- padding-top: 5px;
|
|
|
- .infoItem {
|
|
|
- width: 100%;
|
|
|
- height: 3.3rem;
|
|
|
- background-color: #64daff;
|
|
|
- background: url("/static/images/overview/list_bg.png") no-repeat;
|
|
|
- background-size: 100% 100%;
|
|
|
- display: flex;
|
|
|
- margin-bottom: 10px;
|
|
|
- .itemIcon {
|
|
|
- width: 1.5rem;
|
|
|
- height: 1.7rem;
|
|
|
- background: url("/static/images/overview/iconDW.png") no-repeat;
|
|
|
- background-size: 100% 100%;
|
|
|
- margin: 0.5rem;
|
|
|
- }
|
|
|
- .itemCon {
|
|
|
- // width: 13.5rem;
|
|
|
- // height: 1.55rem;
|
|
|
- // background-color: #faa012;
|
|
|
- // line-height: 1.55rem;
|
|
|
- p {
|
|
|
- height: 41%;
|
|
|
- line-height: 1.55rem;
|
|
|
- color: #ecf6ff;
|
|
|
- }
|
|
|
- p:first-child {
|
|
|
- width: 177px;
|
|
|
- overflow: hidden;
|
|
|
- white-space: nowrap;
|
|
|
- text-overflow: ellipsis;
|
|
|
- color: #ecf6ff;
|
|
|
- }
|
|
|
- p:nth-child(2) {
|
|
|
- span {
|
|
|
- padding: 0 0.4rem;
|
|
|
- display: inline-block;
|
|
|
- background: rgba(100, 218, 255, 0.1);
|
|
|
- border-radius: 2px 14px 2px 14px;
|
|
|
- color: #64daff;
|
|
|
- font-size: 12px;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- .itemStatus1 {
|
|
|
- background: url("/static/images/overview/yrsIcon.png") no-repeat;
|
|
|
- background-size: 100% 100%;
|
|
|
- width: 62px;
|
|
|
- height: 18px;
|
|
|
- position: relative;
|
|
|
- right: -30px;
|
|
|
- }
|
|
|
- .itemStatus2 {
|
|
|
- background: url("/static/images/overview/wrsIcon.png") no-repeat;
|
|
|
- background-size: 100% 100%;
|
|
|
- width: 62px;
|
|
|
- height: 18px;
|
|
|
- position: relative;
|
|
|
- right: -30px;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- .infoLIst1{
|
|
|
- width: 100%;
|
|
|
- height: 12rem;
|
|
|
- overflow: hidden;
|
|
|
- overflow-y: auto;
|
|
|
- margin-right: 10px;
|
|
|
- padding-top: 5px;
|
|
|
- line-height: 12rem;
|
|
|
- text-align: center;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-::v-deep .el-scrollbar {
|
|
|
- color: #faa012;
|
|
|
-}
|
|
|
-</style>
|