瀏覽代碼

前端首页页面更新

sr 4 年之前
父節點
當前提交
c4bc6814a8

+ 1 - 1
ruoyi-ui/src/api/monitor/online.js

@@ -1,6 +1,6 @@
 import request from '@/utils/request'
 
-// 查询在线用户列表
+// 查询驳回用户列表
 export function list(query) {
   return request({
     url: '/monitor/online/list',

+ 93 - 0
ruoyi-ui/src/api/statistical/index.js

@@ -0,0 +1,93 @@
+import request  from '@/utils/request'
+
+// 在谈线索-柱状图
+export function getIndexEharts(query) {
+  return request({
+    url: '/bmProject/project/projectEharts',
+    method: 'get',
+    params: query
+  })
+}
+// 在谈线索-柱状图
+export function getProjectUnitAmountEharts(query) {
+  return request({
+    url: '/deptPlan/plan/projectUnitAmountEharts',
+    method: 'get',
+    params: query
+  })
+}
+// 统计分析-投产项目-柱状图
+export function getProjectInvestmentEharts(query) {
+  return request({
+    url: '/deptPlan/plan/projectInvestmentEharts',
+    method: 'get',
+    params: query
+  })
+}
+// 签约项目-柱状图
+export function getProjectContractEharts(query) {
+  return request({
+    url: '/bmProject/project/projectContractEharts',
+    method: 'get',
+    params: query
+  })
+}
+// 获取用户详细信息
+export function getStatisticst(ids) {
+  return request({
+    url: `/bmProject/project/statistics/${ids}`,
+    method: 'get'
+  })
+}
+// 统计分析公共-销号
+export function delProject(ids) {
+  return request({
+    url: `/bmProject/project/${ids}`,
+    method: 'DELETE'
+  })
+}
+// 审核/提交
+export function setExamine(data) {
+  return request({
+    url: '/bmProject/project/examine',
+    method: 'post',
+    data
+  })
+}
+// 驳回项目
+export function setReject(data) {
+  return request({
+    url: '/bmProject/project/reject',
+    method: 'post',
+    data
+  })
+}
+
+// 统计分析-单位榜单-任务
+export function getUnitAmountList() {
+  return request({
+    url: '/deptPlan/plan/unitList',
+    method: 'post'
+  })
+}
+// 统计分析-在建项目-资金榜单
+export function setUnitAmountList() {
+  return request({
+    url: '/deptPlan/plan/unitAmountList',
+    method: 'post'
+  })
+}
+// 统计分析-投产项目-入规榜单
+export function setInvestmentList() {
+  return request({
+    url: '/deptPlan/plan/investmentList',
+    method: 'post'
+  })
+}
+// 统计分析-在建项目-资金榜单
+export function getTotAmtList() {
+  return request({
+    url: '/deptPlan/plan/totAmtList',
+    method: 'post'
+  })
+}

+ 9 - 3
ruoyi-ui/src/components/Echarts/index.vue

@@ -9,6 +9,12 @@
   export default {
     name: 'Echarts',
     props:{
+      echartData: {
+        type: Object,
+        default: function() {
+          return {}
+        }
+      },
       ehaersList: {
         type: Object,
         default: function() {
@@ -34,7 +40,7 @@
         // 指定图表的配置项和数据
         var option = {
           title: {
-            text: '到资金额柱状图',
+            text: this.echartData.name,
             top: 0,
             left: 'center',
             subtextStyle: {
@@ -45,7 +51,7 @@
           },
           tooltip: {},
           legend: {
-            data: ['到账金额'],
+            data: this.echartData.numNameArr,
             top: 25,
           },
           xAxis: {
@@ -53,7 +59,7 @@
           },
           yAxis: {},
           series: [{
-            name: '到账金额',
+            name: this.echartData.numName,
             type: 'bar',
             data: this.ehaersLists.y,
             itemStyle: {

+ 113 - 0
ruoyi-ui/src/components/Echarts/indexTwo.vue

@@ -0,0 +1,113 @@
+<template>
+  <div class="Echarts">
+    <div id="main" style="width:100%; height:600px;"></div>
+  </div>
+</template>
+
+<script>
+  require('echarts/lib/component/legend')
+  export default {
+    name: 'Echarts',
+    props:{
+      echartData: {
+        type: Object,
+        default: function() {
+          return {}
+        }
+      },
+      ehaersList: {
+        type: Object,
+        default: function() {
+          return {}
+        }
+      }
+    },
+    watch: {
+        ehaersLists() {
+          this.myEcharts()
+        }
+    },
+    computed: {
+      ehaersLists() {
+        return this.ehaersList
+      }
+    },
+    methods: {
+      myEcharts(datas={x:'',y:''}) {
+        // 基于准备好的dom,初始化echarts实例
+        var myChart = this.$echarts.init(document.getElementById('main'));
+
+        // 指定图表的配置项和数据
+        var option = {
+          title: {
+            text: this.echartData.name,
+            top: 0,
+            left: 'center',
+            subtextStyle: {
+              fontFamily: "微软雅黑",
+              fontSize: 14,
+              color: '#6c7a89',
+            }
+          },
+          tooltip: {},
+          legend: {
+            data: this.echartData.numNameArr,
+            top: 25,
+          },
+          xAxis: {
+            data: this.ehaersLists.x,
+          },
+          yAxis: {},
+          series: [{
+            name: this.echartData.numName[0],
+            type: 'bar',
+            data: this.ehaersLists.y1,
+            itemStyle: {
+              normal: {
+                color: '#1C84C6', //设置柱子颜色
+                label: {
+                  show: true, //柱子上显示值
+                  position: 'top', //值在柱子上方显示
+                  textStyle: {
+                    color: '#333' //值得颜色
+                  }
+                }
+              }
+            },
+          },{
+            name: this.echartData.numName[1],
+            type: 'bar',
+            data: this.ehaersLists.y2,
+            itemStyle: {
+              normal: {
+                color: '#FEA908', //设置柱子颜色
+                label: {
+                  show: true, //柱子上显示值
+                  position: 'top', //值在柱子上方显示
+                  textStyle: {
+                    color: '#333' //值得颜色
+                  }
+                }
+              }
+            },
+          }]
+        };
+
+        // 使用刚指定的配置项和数据显示图表。
+        myChart.setOption(option);
+        setTimeout(function (){
+        	    window.onresize = function () {
+        	    	myChart.resize();
+        	    }
+        	},200)
+      }
+    },
+    mounted() {
+      this.myEcharts();
+    }
+  }
+</script>
+
+<style>
+
+</style>

+ 6 - 1
ruoyi-ui/src/views/index.vue

@@ -33,7 +33,7 @@
                     placeholder="选择年">
                   </el-date-picker>
             </div>
-            <echarts :ehaersList="ehaersList" v-if="flags"></echarts>
+            <echarts :echartData="echartData" :ehaersList="ehaersList" v-if="flags"></echarts>
           </div>
         </div>
       </el-col>
@@ -90,6 +90,11 @@
     data() {
       return {
         infoList: [],
+        echartData: {
+          name: '到资金额柱状图',
+          numName: '到资金额',
+          numNameArr: ['到资金额']
+        },
         zjList: [],
         ehaersList: {},
         loading: false,

+ 7 - 7
ruoyi-ui/src/views/management/info/index.vue

@@ -61,7 +61,7 @@
         <template slot-scope="scope">
           <el-button size="mini" type="text" style="background: #0669B2;color: #FFF;padding: 7px;" v-hasPermi="['projectInfo:info:edit']">查看/审核</el-button>
           <el-button size="mini" type="text" style="background: #3FBCEF;color: #FFF;padding: 7px;" v-hasPermi="['projectInfo:info:edit']"
-            @click="infoBtn(scope.row)">{{scope.row.projectStatus%2==1?'提交审核':'撤销审核'}}</el-button>
+            @click="infoBtn(scope.row)">{{scope.row.projectStatus%2==1?'提交审核':'驳回'}}</el-button>
           <el-button size="mini" type="text" style="background: #F5A40C;color: #FFF;padding: 7px;" v-hasPermi="['projectInfo:info:edit']">修改</el-button>
           <el-button size="mini" type="text" style="background: #DE1939;color: #FFF;padding: 7px;" @click="handleDelete(scope.row)"
             v-hasPermi="['projectInfo:info:remove']">销号</el-button>
@@ -84,8 +84,8 @@
         </el-form-item>
         <el-form-item label="所属行业:" prop="industry">
           <el-radio-group v-model="xs_form.industry">
-            <el-radio :label="item.dictValue" v-for="item in industryOptions">
-              {{item.dictLabel}}
+            <el-radio :label="item.dictValue" v-for="item in industryOptions">
+              {{item.dictLabel}}
             </el-radio>
           </el-radio-group>
         </el-form-item>
@@ -183,7 +183,7 @@
 </template>
 
 <script>
-  import {
+  import {
     setReject,
     setExamine,
     listInfo,
@@ -321,7 +321,7 @@
             this.msgSuccess("提交成功");
           })
         } else {
-          this.$confirm('是否确认撤销审核', "提醒", {
+          this.$confirm('是否确认驳回', "提醒", {
             confirmButtonText: "确定",
             cancelButtonText: "取消",
             type: "warning"
@@ -340,7 +340,7 @@
         this.$refs["forms"].validate(valid => {
           if (valid) {
             let data = JSON.parse(JSON.stringify(this.xs_form))
-            data.industryCategory = data.industryCategory.join(',')
+            data.industryCategory = data.industryCategory.join(',')
             listProject(data).then(res => {
               this.msgSuccess("添加成功");
               this.flags = false;
@@ -488,4 +488,4 @@
       }
     }
   };
-</script>
+</script>

+ 246 - 0
ruoyi-ui/src/views/statistical/clue/index.vue

@@ -0,0 +1,246 @@
+<template>
+  <div class="in_box">
+    <el-row>
+      <el-col :span="19">
+        <div class="in_left">
+          <div class="toReviewed">
+            <el-table v-loading="loading" style="max-height: 695px;overflow-y: auto;" :data="infoList">
+              <el-table-column label="项目名称" align="center" prop="name" />
+              <el-table-column label="时间" align="center" prop="createTime" />
+              <el-table-column label="操作" width="280" align="center" class-name="small-padding fixed-width">
+                <template slot-scope="scope">
+                  <el-button size="mini" type="text" style="background: #F5A40C;color: #FFF;padding: 7px;" v-hasPermi="['projectInfo:info:edit']"
+                    @click="dec_btn(scope.row)">查看详情</el-button>
+                  <el-button size="mini" type="text" style="background: #0669B2;color: #FFF;padding: 7px;" v-hasPermi="['projectInfo:info:edit']"
+                    @click="infoBtn(scope.row)" v-if="scope.row.projectStatus%2==1">提交审核</el-button>
+                  <el-button size="mini" type="text" style="background: #DE1939;color: #FFF;padding: 7px;" v-hasPermi="['projectInfo:info:edit']"
+                    @click="bh_brn(scope.row)">销号</el-button>
+                </template>
+              </el-table-column>
+            </el-table>
+          </div>
+          <div class="exl_box">
+            <div class="exl_title">
+              <span>招资引资项目到资金额</span>
+              <el-date-picker v-model="lb_value" style="width: 100px;" type="year" value-format="yyyy" @change="picher_fn"
+                placeholder="选择年">
+              </el-date-picker>
+            </div>
+            <echarts :ehaersList="ehaersList" :echartData="echartData" v-if="flags"></echarts>
+          </div>
+        </div>
+      </el-col>
+      <el-col :span="5" style="padding: 24px 12px 24px 0 ;">
+        <div class="in_right">
+          <div class="rig_title">
+            单位榜单
+          </div>
+          <div class="rig_tab_top">
+            <div class="rig_tab_item">
+              单位名称
+            </div>
+            <div class="rig_tab_item">
+              目标任务
+            </div>
+            <div class="rig_tab_item">
+              已完成任务
+            </div>
+          </div>
+          <div class="rig_cont">
+            <div class="rig_items" v-for="(item,index) in unitList" :key="index">
+              <span>{{item.deptName}}</span>
+              <span>{{item.targetInvestmentNum?item.targetInvestmentNum:0}}个</span>
+              <span>{{item.successMission?item.successMission:0}}个</span>
+            </div>
+          </div>
+        </div>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+<script>
+  import echarts from '@/components/Echarts/index.vue'
+  import {
+    getStatisticst,
+    delProject,
+    toBeReviewedList,
+    setExamine,
+    setReject,
+    getUnitAmountList,
+    getIndexEharts
+  } from '@/api/statistical'
+  export default {
+    data() {
+      return {
+        infoList: [],
+        zjList: [],
+        ehaersList: {},
+        echartData: {
+          name: '在谈项目个数柱状图',
+          numName: '项目个数',
+          numNameArr: ['项目个数']
+        },
+        loading: false,
+        unitList: [],
+        flags: false,
+        lb_value: '2021', // 柱状图类别
+      }
+    },
+    components: {
+      echarts
+    },
+    mounted() {
+      this.getList()
+      this.bd_btn()
+      this.zht_fn()
+      this.eharts_fn()
+    },
+    methods: {
+      picher_fn() {
+        this.eharts_fn()
+      },
+      eharts_fn(val) {
+        getIndexEharts({
+          year: this.lb_value
+        }).then(res => {
+          this.ehaersList = res.data
+          this.flags = true
+        })
+      },
+      zht_fn() {
+
+      },
+      bd_btn() {
+        console.log(222)
+        getUnitAmountList().then(res => {
+          this.unitList = res.rows
+        })
+      },
+      dec_btn() {
+
+      },
+      bh_brn(scope) {
+        this.$confirm('是否确认销号', "提醒", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          delProject(scope.id).then(() => {
+            this.getList();
+            this.msgSuccess("提交成功");
+          })
+        })
+      },
+      infoBtn(scope) {
+        this.$confirm('是否确认提交申请', "提醒", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          setExamine({
+            code: 1,
+            bmProjectId: scope.id
+          });
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("提交成功");
+        })
+      },
+      getList() {
+        getStatisticst('1,2,3').then(res => {
+          this.infoList = res.rows
+        })
+      },
+    }
+  }
+</script>
+<style lang="scss" scoped>
+  .rig_tab_top {
+    display: flex;
+    background: #6DCEF6;
+    line-height: 36px;
+    color: #fff;
+
+    .rig_tab_item {
+      font-size: 14px;
+      flex: 1;
+      text-align: center;
+    }
+  }
+
+  .rig_cont {
+    border: 1px solid #CDCDCD;
+    box-sizing: border-box;
+    margin-bottom: 31px;
+    max-height: 270px;
+    overflow-y: auto;
+    scrollbar-width: none;
+    /* firefox */
+    -ms-overflow-style: none;
+    
+    /* IE 10+ */
+    &::-webkit-scrollbar {
+      display: none;
+      /* Chrome Safari */
+    }
+
+    .rig_items {
+      line-height: 36px;
+      color: #343434;
+      font-size: 12px;
+      display: flex;
+
+      span {
+        flex: 1;
+        text-align: center;
+      }
+    }
+  }
+
+  .in_right {
+    padding: 15px 15px 0;
+    border: 1px solid #DADADA;
+    box-shadow: 0px 7px 9px 2px rgba(201, 201, 201, 0.36);
+
+    .rig_title {
+      color: #1C84C6;
+      font-size: 18px;
+      line-height: 36px;
+      margin-bottom: 15px;
+    }
+  }
+
+  .in_left {
+    padding: 24px 20px 40px;
+
+    .toReviewed {
+      padding: 19px 16px;
+      border: 1px solid #DADADA;
+      box-shadow: 0px 7px 9px 2px rgba(201, 201, 201, 0.36);
+      margin-bottom: 38px;
+
+      .rev_title {
+        margin-bottom: 23px;
+      }
+    }
+
+    .exl_box {
+      border: 1px solid #DADADA;
+      box-shadow: 0px 7px 9px 2px rgba(201, 201, 201, 0.36);
+      padding: 20px;
+      box-sizing: border-box;
+
+      .exl_title {
+        display: flex;
+        justify-content: space-between;
+
+        span {
+          color: #1C84C6;
+          font-size: 18px;
+          line-height: 36px;
+        }
+
+      }
+    }
+  }
+</style>

+ 242 - 0
ruoyi-ui/src/views/statistical/putProduction/index.vue

@@ -0,0 +1,242 @@
+<template>
+  <div class="in_box">
+    <el-row>
+      <el-col :span="19">
+        <div class="in_left">
+          <div class="toReviewed">
+            <el-table v-loading="loading" style="max-height: 695px;overflow-y: auto;" :data="infoList">
+              <el-table-column label="项目名称" align="center" prop="name" />
+              <el-table-column label="时间" align="center" prop="createTime" />
+              <el-table-column label="操作" width="280" align="center" class-name="small-padding fixed-width">
+                <template slot-scope="scope">
+                  <el-button size="mini" type="text" style="background: #F5A40C;color: #FFF;padding: 7px;" v-hasPermi="['projectInfo:info:edit']"
+                    @click="dec_btn(scope.row)">查看详情</el-button>
+                  <el-button size="mini" type="text" style="background: #0669B2;color: #FFF;padding: 7px;" v-hasPermi="['projectInfo:info:edit']"
+                    @click="infoBtn(scope.row)" v-if="scope.row.projectStatus%2==1">提交审核</el-button>
+                  <el-button size="mini" type="text" style="background: #DE1939;color: #FFF;padding: 7px;" v-hasPermi="['projectInfo:info:edit']"
+                    @click="bh_brn(scope.row)">销号</el-button>
+                </template>
+              </el-table-column>
+            </el-table>
+          </div>
+          <div class="exl_box">
+            <div class="exl_title">
+              <span>招资引资项目到资金额</span>
+              <el-date-picker v-model="lb_value" style="width: 100px;" type="year" value-format="yyyy" @change="picher_fn"
+                placeholder="选择年">
+              </el-date-picker>
+            </div>
+            <echarts :ehaersList="ehaersList" :echartData="echartData" v-if="flags"></echarts>
+          </div>
+        </div>
+      </el-col>
+      <el-col :span="5" style="padding: 24px 12px 24px 0 ;">
+        <div class="in_right">
+          <div class="rig_title">
+            单位榜单
+          </div>
+          <div class="rig_tab_top">
+            <div class="rig_tab_item">
+              单位名称
+            </div>
+            <div class="rig_tab_item">
+              入规目标
+            </div>
+            <div class="rig_tab_item">
+              已完成任务
+            </div>
+          </div>
+          <div class="rig_cont">
+            <div class="rig_items" v-for="(item,index) in unitList" :key="index">
+              <span>{{item.deptName}}</span>
+              <span>{{item.targetInvestmentNum?item.targetInvestmentNum:0}}个</span>
+              <span>{{item.successMission?item.successMission:0}}个</span>
+            </div>
+          </div>
+        </div>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+<script>
+  import echarts from '@/components/Echarts/index.vue'
+  import {
+    getStatisticst,
+    delProject,
+    toBeReviewedList,
+    setExamine,
+    setReject,
+    setInvestmentList,
+    getProjectInvestmentEharts
+  } from '@/api/statistical'
+  export default {
+    data() {
+      return {
+        infoList: [],
+        zjList: [],
+        ehaersList: {},
+        echartData: {
+          name: '投产项目个数柱状图',
+          numName: '投产项目个数',
+          numNameArr: ['投产项目个数']
+        },
+        loading: false,
+        unitList: [],
+        flags: false,
+        lb_value: '2021', // 柱状图类别
+      }
+    },
+    components: {
+      echarts
+    },
+    mounted() {
+      this.getList()
+      this.bd_btn()
+      this.eharts_fn()
+    },
+    methods: {
+      picher_fn() {
+        this.eharts_fn()
+      },
+      eharts_fn(val) {
+        getProjectInvestmentEharts({
+          year: this.lb_value
+        }).then(res => {
+          this.ehaersList = res.data
+          this.flags = true
+        })
+      },
+      bd_btn() {
+        console.log(222)
+        setInvestmentList().then(res => {
+          this.unitList = res.rows
+        })
+      },
+      dec_btn() {
+
+      },
+      bh_brn(scope) {
+        this.$confirm('是否确认销号', "提醒", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          delProject(scope.id).then(() => {
+            this.getList();
+            this.msgSuccess("提交成功");
+          })
+        })
+      },
+      infoBtn(scope) {
+        this.$confirm('是否确认提交申请', "提醒", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          setExamine({
+            code: 1,
+            bmProjectId: scope.id
+          });
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("提交成功");
+        })
+      },
+      getList() {
+        getStatisticst('8,9').then(res => {
+          this.infoList = res.rows
+        })
+      },
+    }
+  }
+</script>
+<style lang="scss" scoped>
+  .rig_tab_top {
+    display: flex;
+    background: #6DCEF6;
+    line-height: 36px;
+    color: #fff;
+
+    .rig_tab_item {
+      font-size: 14px;
+      flex: 1;
+      text-align: center;
+    }
+  }
+
+  .rig_cont {
+    border: 1px solid #CDCDCD;
+    box-sizing: border-box;
+    margin-bottom: 31px;
+    max-height: 270px;
+    overflow-y: auto;
+    scrollbar-width: none;
+    /* firefox */
+    -ms-overflow-style: none;
+
+    /* IE 10+ */
+    &::-webkit-scrollbar {
+      display: none;
+      /* Chrome Safari */
+    }
+
+    .rig_items {
+      line-height: 36px;
+      color: #343434;
+      font-size: 12px;
+      display: flex;
+
+      span {
+        flex: 1;
+        text-align: center;
+      }
+    }
+  }
+
+  .in_right {
+    padding: 15px 15px 0;
+    border: 1px solid #DADADA;
+    box-shadow: 0px 7px 9px 2px rgba(201, 201, 201, 0.36);
+
+    .rig_title {
+      color: #1C84C6;
+      font-size: 18px;
+      line-height: 36px;
+      margin-bottom: 15px;
+    }
+  }
+
+  .in_left {
+    padding: 24px 20px 40px;
+
+    .toReviewed {
+      padding: 19px 16px;
+      border: 1px solid #DADADA;
+      box-shadow: 0px 7px 9px 2px rgba(201, 201, 201, 0.36);
+      margin-bottom: 38px;
+
+      .rev_title {
+        margin-bottom: 23px;
+      }
+    }
+
+    .exl_box {
+      border: 1px solid #DADADA;
+      box-shadow: 0px 7px 9px 2px rgba(201, 201, 201, 0.36);
+      padding: 20px;
+      box-sizing: border-box;
+
+      .exl_title {
+        display: flex;
+        justify-content: space-between;
+
+        span {
+          color: #1C84C6;
+          font-size: 18px;
+          line-height: 36px;
+        }
+
+      }
+    }
+  }
+</style>

+ 283 - 0
ruoyi-ui/src/views/statistical/sign/index.vue

@@ -0,0 +1,283 @@
+<template>
+  <div class="in_box">
+    <el-row>
+      <el-col :span="19">
+        <div class="in_left">
+          <div class="toReviewed">
+            <el-table v-loading="loading" style="max-height: 695px;overflow-y: auto;" :data="infoList">
+              <el-table-column label="项目名称" align="center" prop="name" />
+              <el-table-column label="时间" align="center" prop="createTime" />
+              <el-table-column label="操作" width="280" align="center" class-name="small-padding fixed-width">
+                <template slot-scope="scope">
+                  <el-button size="mini" type="text" style="background: #F5A40C;color: #FFF;padding: 7px;" v-hasPermi="['projectInfo:info:edit']"
+                    @click="dec_btn(scope.row)">查看详情</el-button>
+                  <el-button size="mini" type="text" style="background: #0669B2;color: #FFF;padding: 7px;" v-hasPermi="['projectInfo:info:edit']"
+                    @click="infoBtn(scope.row)">{{scope.row.projectStatus%2==1?'提交审核':'驳回'}}</el-button>
+                  <el-button size="mini" type="text" style="background: #DE1939;color: #FFF;padding: 7px;" v-hasPermi="['projectInfo:info:edit']"
+                    @click="bh_brn(scope.row)">销号</el-button>
+                </template>
+              </el-table-column>
+            </el-table>
+          </div>
+          <div class="exl_box">
+            <div class="exl_title">
+              <span>招资引资项目到资金额</span>
+              <el-date-picker v-model="lb_value" style="width: 100px;" type="year" value-format="yyyy" @change="picher_fn"
+                placeholder="选择年">
+              </el-date-picker>
+            </div>
+            <echarts :echartData="echartData" :ehaersList="ehaersList" v-if="flags"></echarts>
+          </div>
+        </div>
+      </el-col>
+      <el-col :span="5" style="padding: 24px 12px 24px 0 ;">
+        <div class="in_right">
+          <div class="rig_title">
+            单位榜单
+          </div>
+          <div class="rig_tab_top">
+            <div class="rig_tab_item">
+              单位名称
+            </div>
+            <div class="rig_tab_item">
+              目标任务
+            </div>
+            <div class="rig_tab_item">
+              已完成任务
+            </div>
+          </div>
+          <div class="rig_cont">
+            <div class="rig_items" v-for="(item,index) in unitList" :key="index">
+              <span>{{item.deptName}}</span>
+              <span>{{item.targetInvestmentNum?item.targetInvestmentNum:0}}个</span>
+              <span>{{item.successMission?item.successMission:0}}个</span>
+            </div>
+          </div>
+          <div class="rig_tab_top" style="background-color: #1C84C6;">
+            <div class="rig_tab_item">
+              单位名称
+            </div>
+            <div class="rig_tab_item">
+              目标合同金额
+            </div>
+            <div class="rig_tab_item">
+              实际合同金额
+            </div>
+          </div>
+          <div class="rig_cont">
+            <div class="rig_items" v-for="(item,index) in zjList" :key="index">
+              <span>{{item.deptName}}</span>
+              <span>{{item.targetContractAmount}}万</span>
+              <span>{{item.totAmt}}万</span>
+            </div>
+          </div>
+        </div>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+<script>
+  import echarts from '@/components/Echarts/indexTwo.vue'
+  import {
+    toBeReviewedList,
+    getStatisticst,
+    getTotAmtList,
+    setExamine,
+    setReject,
+    getUnitList,
+    getUnitAmountList,
+    getProjectContractEharts
+  } from '@/api/statistical/index.js'
+  export default {
+    data() {
+      return {
+        infoList: [],
+        echartData: {
+          name: '签约数及合同金额柱状图',
+          numName: ['签约项目个数', '合同金额'],
+          numNameArr: ['签约项目个数', '合同金额']
+        },
+        zjList: [],
+        ehaersList: {},
+        loading: false,
+        unitList: [],
+        flags: false,
+        lb_value: '2021', // 柱状图类别
+      }
+    },
+    components: {
+      echarts
+    },
+    mounted() {
+      this.getList()
+      this.bd_btn()
+      this.zj_btn()
+      this.eharts_fn()
+    },
+    methods: {
+      picher_fn() {
+        this.eharts_fn()
+      },
+      eharts_fn(val) {
+        getProjectContractEharts({
+          year: this.lb_value
+        }).then(res => {
+          this.ehaersList = res.data
+          this.flags = true
+        })
+      },
+      zj_btn() {
+        getTotAmtList().then(res => {
+          this.zjList = res.rows
+        })
+      },
+      bd_btn() {
+        getUnitAmountList().then(res => {
+          this.unitList = res.rows
+        })
+      },
+      dec_btn() {
+
+      },
+      bh_brn(scope) {
+        this.$confirm('是否确认销号', "提醒", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          delProject(scope.id).then(() => {
+            this.getList();
+            this.msgSuccess("提交成功");
+          })
+        })
+      },
+      infoBtn(scope) {
+        if (scope.projectStatus % 2 == 1) {
+          this.$confirm('是否确认提交审核', "提醒", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning"
+          }).then(function() {
+            return setExamine({
+              code: 1,
+              bmProjectId: scope.id
+            });
+          }).then(() => {
+            this.getList();
+            this.msgSuccess("提交成功");
+          })
+        } else {
+          this.$confirm('是否确认驳回', "提醒", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning"
+          }).then(function() {
+            return setReject({
+              code: 2,
+              bmProjectId: scope.id
+            });
+          }).then(() => {
+            this.getList();
+            this.msgSuccess("提交成功");
+          })
+        }
+
+      },
+      getList() {
+        getStatisticst('4,5').then(res => {
+          this.infoList = res.rows
+        })
+      },
+    }
+  }
+</script>
+<style lang="scss" scoped>
+  .rig_tab_top {
+    display: flex;
+    background: #6DCEF6;
+    line-height: 36px;
+    color: #fff;
+
+    .rig_tab_item {
+      font-size: 14px;
+      flex: 1;
+      text-align: center;
+    }
+  }
+
+  .rig_cont {
+    border: 1px solid #CDCDCD;
+    box-sizing: border-box;
+    margin-bottom: 31px;
+    max-height: 270px;
+    overflow-y: auto;
+    scrollbar-width: none;
+    /* firefox */
+    -ms-overflow-style: none;
+
+    /* IE 10+ */
+    &::-webkit-scrollbar {
+      display: none;
+      /* Chrome Safari */
+    }
+
+    .rig_items {
+      line-height: 36px;
+      color: #343434;
+      font-size: 12px;
+      display: flex;
+
+      span {
+        flex: 1;
+        text-align: center;
+      }
+    }
+  }
+
+  .in_right {
+    padding: 15px 15px 0;
+    border: 1px solid #DADADA;
+    box-shadow: 0px 7px 9px 2px rgba(201, 201, 201, 0.36);
+
+    .rig_title {
+      color: #1C84C6;
+      font-size: 18px;
+      line-height: 36px;
+      margin-bottom: 15px;
+    }
+  }
+
+  .in_left {
+    padding: 24px 20px 40px;
+
+    .toReviewed {
+      padding: 19px 16px;
+      border: 1px solid #DADADA;
+      box-shadow: 0px 7px 9px 2px rgba(201, 201, 201, 0.36);
+      margin-bottom: 38px;
+
+      .rev_title {
+        margin-bottom: 23px;
+      }
+    }
+
+    .exl_box {
+      border: 1px solid #DADADA;
+      box-shadow: 0px 7px 9px 2px rgba(201, 201, 201, 0.36);
+      padding: 20px;
+      box-sizing: border-box;
+
+      .exl_title {
+        display: flex;
+        justify-content: space-between;
+
+        span {
+          color: #1C84C6;
+          font-size: 18px;
+          line-height: 36px;
+        }
+
+      }
+    }
+  }
+</style>

+ 246 - 0
ruoyi-ui/src/views/statistical/underConstruction/index.vue

@@ -0,0 +1,246 @@
+<template>
+  <div class="in_box">
+    <el-row>
+      <el-col :span="19">
+        <div class="in_left">
+          <div class="toReviewed">
+            <el-table v-loading="loading" style="max-height: 695px;overflow-y: auto;" :data="infoList">
+              <el-table-column label="项目名称" align="center" prop="name" />
+              <el-table-column label="时间" align="center" prop="createTime" />
+              <el-table-column label="操作" width="280" align="center" class-name="small-padding fixed-width">
+                <template slot-scope="scope">
+                  <el-button size="mini" type="text" style="background: #F5A40C;color: #FFF;padding: 7px;" v-hasPermi="['projectInfo:info:edit']"
+                    @click="dec_btn(scope.row)">查看详情</el-button>
+                  <el-button size="mini" type="text" style="background: #0669B2;color: #FFF;padding: 7px;" v-hasPermi="['projectInfo:info:edit']"
+                    @click="infoBtn(scope.row)" v-if="scope.row.projectStatus%2==1">提交审核</el-button>
+                  <el-button size="mini" type="text" style="background: #DE1939;color: #FFF;padding: 7px;" v-hasPermi="['projectInfo:info:edit']"
+                    @click="bh_brn(scope.row)">销号</el-button>
+                </template>
+              </el-table-column>
+            </el-table>
+          </div>
+          <div class="exl_box">
+            <div class="exl_title">
+              <span>招资引资项目到资金额</span>
+              <el-date-picker v-model="lb_value" style="width: 100px;" type="year" value-format="yyyy" @change="picher_fn"
+                placeholder="选择年">
+              </el-date-picker>
+            </div>
+            <echarts :ehaersList="ehaersList" :echartData="echartData" v-if="flags"></echarts>
+          </div>
+        </div>
+      </el-col>
+      <el-col :span="5" style="padding: 24px 12px 24px 0 ;">
+        <div class="in_right">
+          <div class="rig_title">
+            单位榜单
+          </div>
+          <div class="rig_tab_top">
+            <div class="rig_tab_item">
+              单位名称
+            </div>
+            <div class="rig_tab_item">
+              目标任务
+            </div>
+            <div class="rig_tab_item">
+              已完成任务
+            </div>
+          </div>
+          <div class="rig_cont">
+            <div class="rig_items" v-for="(item,index) in unitList" :key="index">
+              <span>{{item.deptName}}</span>
+              <span>{{item.targetInvestmentNum?item.targetInvestmentNum:0}}个</span>
+              <span>{{item.successMission?item.successMission:0}}个</span>
+            </div>
+          </div>
+        </div>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+<script>
+  import echarts from '@/components/Echarts/index.vue'
+  import {
+    getStatisticst,
+    delProject,
+    toBeReviewedList,
+    setExamine,
+    setReject,
+    setUnitAmountList,
+    getProjectUnitAmountEharts
+  } from '@/api/statistical'
+  export default {
+    data() {
+      return {
+        infoList: [],
+        zjList: [],
+        ehaersList: {},
+        echartData: {
+          name: '到资金额柱状图',
+          numName: '到资金额',
+          numNameArr: ['到资金额']
+        },
+        loading: false,
+        unitList: [],
+        flags: false,
+        lb_value: '2021', // 柱状图类别
+      }
+    },
+    components: {
+      echarts
+    },
+    mounted() {
+      this.getList()
+      this.bd_btn()
+      this.zht_fn()
+      this.eharts_fn()
+    },
+    methods: {
+      picher_fn() {
+        this.eharts_fn()
+      },
+      eharts_fn(val) {
+        getProjectUnitAmountEharts({
+          year: this.lb_value
+        }).then(res => {
+          this.ehaersList = res.data
+          this.flags = true
+        })
+      },
+      zht_fn() {
+
+      },
+      bd_btn() {
+        console.log(222)
+        setUnitAmountList().then(res => {
+          this.unitList = res.rows
+        })
+      },
+      dec_btn() {
+
+      },
+      bh_brn(scope) {
+        this.$confirm('是否确认销号', "提醒", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          delProject(scope.id).then(() => {
+            this.getList();
+            this.msgSuccess("提交成功");
+          })
+        })
+      },
+      infoBtn(scope) {
+        this.$confirm('是否确认提交申请', "提醒", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          setExamine({
+            code: 1,
+            bmProjectId: scope.id
+          });
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("提交成功");
+        })
+      },
+      getList() {
+        getStatisticst('6,7').then(res => {
+          this.infoList = res.rows
+        })
+      },
+    }
+  }
+</script>
+<style lang="scss" scoped>
+  .rig_tab_top {
+    display: flex;
+    background: #6DCEF6;
+    line-height: 36px;
+    color: #fff;
+
+    .rig_tab_item {
+      font-size: 14px;
+      flex: 1;
+      text-align: center;
+    }
+  }
+
+  .rig_cont {
+    border: 1px solid #CDCDCD;
+    box-sizing: border-box;
+    margin-bottom: 31px;
+    max-height: 270px;
+    overflow-y: auto;
+    scrollbar-width: none;
+    /* firefox */
+    -ms-overflow-style: none;
+
+    /* IE 10+ */
+    &::-webkit-scrollbar {
+      display: none;
+      /* Chrome Safari */
+    }
+
+    .rig_items {
+      line-height: 36px;
+      color: #343434;
+      font-size: 12px;
+      display: flex;
+
+      span {
+        flex: 1;
+        text-align: center;
+      }
+    }
+  }
+
+  .in_right {
+    padding: 15px 15px 0;
+    border: 1px solid #DADADA;
+    box-shadow: 0px 7px 9px 2px rgba(201, 201, 201, 0.36);
+
+    .rig_title {
+      color: #1C84C6;
+      font-size: 18px;
+      line-height: 36px;
+      margin-bottom: 15px;
+    }
+  }
+
+  .in_left {
+    padding: 24px 20px 40px;
+
+    .toReviewed {
+      padding: 19px 16px;
+      border: 1px solid #DADADA;
+      box-shadow: 0px 7px 9px 2px rgba(201, 201, 201, 0.36);
+      margin-bottom: 38px;
+
+      .rev_title {
+        margin-bottom: 23px;
+      }
+    }
+
+    .exl_box {
+      border: 1px solid #DADADA;
+      box-shadow: 0px 7px 9px 2px rgba(201, 201, 201, 0.36);
+      padding: 20px;
+      box-sizing: border-box;
+
+      .exl_title {
+        display: flex;
+        justify-content: space-between;
+
+        span {
+          color: #1C84C6;
+          font-size: 18px;
+          line-height: 36px;
+        }
+
+      }
+    }
+  }
+</style>