瀏覽代碼

Merge remote-tracking branch 'origin/master'

Administrator 4 年之前
父節點
當前提交
36eecec8a8

+ 1 - 1
ruoyi-ui/package.json

@@ -40,7 +40,7 @@
     "axios": "0.21.0",
     "clipboard": "2.0.6",
     "core-js": "3.8.1",
-    "echarts": "4.9.0",
+    "echarts": "^4.9.0",
     "element-ui": "2.15.0",
     "express": "^4.17.1",
     "file-saver": "2.0.4",

+ 46 - 0
ruoyi-ui/src/api/index.js

@@ -0,0 +1,46 @@
+import request  from '@/utils/request'
+
+// 首页-柱状图
+export function getIndexEharts(query) {
+  return request({
+    url: '/constructionPay/pay/indexEharts',
+    method: 'get',
+    params: query
+  })
+}
+// 获取用户详细信息
+export function toBeReviewedList() {
+  return request({
+    url: '/bmProject/project/toBeReviewedList',
+    method: 'get'
+  })
+}
+// 审核/提交
+export function setExamine() {
+  return request({
+    url: '/bmProject/project/examine',
+    method: 'post'
+  })
+}
+// 驳回项目
+export function setReject() {
+  return request({
+    url: '/bmProject/project/reject',
+    method: 'post'
+  })
+}
+
+// 首页-单位榜单-资金
+export function getUnitAmountList() {
+  return request({
+    url: '/deptPlan/plan/unitAmountList',
+    method: 'post'
+  })
+}
+// 首页-单位榜单-任务
+export function getUnitList() {
+  return request({
+    url: '/deptPlan/plan/unitList',
+    method: 'post'
+  })
+}

+ 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'
+  })
+}

+ 168 - 6
ruoyi-ui/src/api/system/config.js

@@ -8,11 +8,94 @@ export function listConfig(query) {
     params: query
   })
 }
+export function listConfigfieu(query) {
+  return request({
+    url: '/system/dept/deptList',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询在谈线索信息
+export function listConfigtwo(query) {
+  return request({
+    url: '/projectInfo/info/' + query,
+    method: 'get'
+    // params:
+  })
+}
+export function listConfigthert(query) {
+  return request({
+    url: '/projectInvestor/investor/list',
+    method: 'get'
+    // params:
+  })
+}
+export function listConfigfour(query) {
+  return request({
+    url: '/projectPersion/persion/list',
+    method: 'get'
+    // params:
+  })
+}
+//字典
+export function listConfigther(query) {
+  return request({
+    url: '/system/dict/data/type/project_status',
+    method: 'get'
+    // params:
+  })
+}
+export function listConfigfive(query) {
+  return request({
+    url: '/projectConstruction/construction/' +query,
+    method: 'get'
+    // params:
+  })
+}
+export function listConfigsix(query) {
+  return request({
+    url: '/constructionRate/rate/list',
+    method: 'get'
+    // params:
+  })
+}
+export function listConfigserve(query) {
+  return request({
+    url: '/constructionEq/constructionEq/list',
+    method: 'get'
+    // params:
+  })
+}
+
+export function listConfigfunding(query) {
+  return request({
+    url: '/constructionPay/pay/list',
+    method: 'get'
+    // params:
+  })
+}
+
+export function listConfigarrival(data) {
+  return request({
+    url: '/constructionPay/pay/payForMoneyALL',
+    method: 'post',
+    data: data
+  })
+}
+
+export function listConfigintegration(data) {
+  return request({
+    url: '/constructionPayInfo/payInfo/' + data,
+    method: 'get'
+    // data: data
+  })
+}
 
 // 查询参数详细
 export function getConfig(configId) {
   return request({
-    url: '/system/config/' + configId,
+    url: '/projectInvestor/investor/' + configId,
     method: 'get'
   })
 }
@@ -25,10 +108,59 @@ export function getConfigKey(configKey) {
   })
 }
 
+export function getConfigKeytwo(configKey) {
+  return request({
+    url: '/projectPersion/persion/' + configKey,
+    method: 'get'
+  })
+}
+
 // 新增参数配置
 export function addConfig(data) {
   return request({
-    url: '/system/config',
+    url: '/projectInvestor/investor',
+    method: 'post',
+    data: data
+  })
+}
+export function addConfigtwo(data) {
+  return request({
+    url: '/projectPersion/persion',
+    method: 'post',
+    data: data
+  })
+}
+export function addConfigther(data) {
+  return request({
+    url: '/constructionRate/rate',
+    method: 'post',
+    data: data
+  })
+}
+export function addConfigtherction(data) {
+  return request({
+    url: '/projectConstruction/construction',
+    method: 'post',
+    data: data
+  })
+}
+export function addConfigfour(data) {
+  return request({
+    url: '/constructionEq/constructionEq',
+    method: 'post',
+    data: data
+  })
+}
+export function addConfigfiv(data) {
+  return request({
+    url: '/constructionPay/pay',
+    method: 'post',
+    data: data
+  })
+}
+export function addConfigsix(data) {
+  return request({
+    url: '/constructionPayInfo/payInfo',
     method: 'post',
     data: data
   })
@@ -37,7 +169,14 @@ export function addConfig(data) {
 // 修改参数配置
 export function updateConfig(data) {
   return request({
-    url: '/system/config',
+    url: '/projectInvestor/investor',
+    method: 'put',
+    data: data
+  })
+}
+export function updateConfigtwo(data) {
+  return request({
+    url: '/projectPersion/persion',
     method: 'put',
     data: data
   })
@@ -46,11 +185,34 @@ export function updateConfig(data) {
 // 删除参数配置
 export function delConfig(configId) {
   return request({
-    url: '/system/config/' + configId,
+    url: '/projectInvestor/investor/' + configId,
+    method: 'delete'
+  })
+}
+export function delConfigtwo(configId) {
+  return request({
+    url: '/projectPersion/persion/' + configId,
+    method: 'delete'
+  })
+}
+export function delConfigther(configId) {
+  return request({
+    url: '/constructionRate/rate/' + configId,
+    method: 'delete'
+  })
+}
+export function delConfigfour(configId) {
+  return request({
+    url: '/constructionEq/constructionEq/' + configId,
+    method: 'delete'
+  })
+}
+export function delConfigfive(configId) {
+  return request({
+    url: '/constructionPay/pay/' + configId,
     method: 'delete'
   })
 }
-
 // 清理参数缓存
 export function clearCache() {
   return request({
@@ -66,4 +228,4 @@ export function exportConfig(query) {
     method: 'get',
     params: query
   })
-}
+}

+ 24 - 1
ruoyi-ui/src/api/system/notice.js

@@ -8,9 +8,24 @@ export function listNotice(query) {
     params: query
   })
 }
+//信息公告列表信息
+export function listNoticetwo(query) {
+  return request({
+    url: '/system/notice/list',
+    method: 'get',
+    params: query
+  })
+}
 
 // 查询公告详细
 export function getNotice(noticeId) {
+  return request({
+    url: '/system/notice/list' + noticeId,
+    method: 'get'
+  })
+}
+//信息动态修改
+export function getNoticetwo(noticeId) {
   return request({
     url: '/system/notice/' + noticeId,
     method: 'get'
@@ -25,6 +40,14 @@ export function addNotice(data) {
     data: data
   })
 }
+// 新增信息动态
+export function addNoticetao(data) {
+  return request({
+    url: '/system/notice',
+    method: 'post',
+    data: data
+  })
+}
 
 // 修改公告
 export function updateNotice(data) {
@@ -41,4 +64,4 @@ export function delNotice(noticeId) {
     url: '/system/notice/' + noticeId,
     method: 'delete'
   })
-}
+}

+ 1 - 1
ruoyi-ui/src/assets/styles/sidebar.scss

@@ -129,7 +129,7 @@
     }
 
     .submenu-title-noDropdown {
-		background: #fff!important;
+		// background: #fff!important;
       padding: 0 !important;
       position: relative;
 

+ 97 - 0
ruoyi-ui/src/components/Echarts/index.vue

@@ -0,0 +1,97 @@
+<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,
+            type: 'bar',
+            data: this.ehaersLists.y,
+            itemStyle: {
+              normal: {
+                color: '#1C84C6', //设置柱子颜色
+                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>

+ 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>

+ 4 - 0
ruoyi-ui/src/main.js

@@ -12,6 +12,10 @@ import store from './store'
 import router from './router'
 import permission from './directive/permission'
 
+import echarts from 'echarts'
+Vue.prototype.$echarts = echarts
+
+
 import './assets/icons' // icon
 import './permission' // permission control
 import { getDicts } from "@/api/system/dict/data";

+ 259 - 3
ruoyi-ui/src/views/index.vue

@@ -1,9 +1,265 @@
 <template>
-  <div>
-    <h1>这是首页</h1>
-    <!-- <sign-contract></sign-contract> -->
+  <div class="in_box">
+    <el-row>
+      <el-col :span="19">
+        <div class="in_left">
+          <div class="toReviewed">
+            <div class="rev_title">
+              待审核项目
+            </div>
+            <el-table v-loading="loading" :data="infoList">
+              <el-table-column label="项目名称" align="center" prop="name" />
+              <el-table-column label="当前状态" align="center" prop="dictLabel" />
+              <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: #DE1939;color: #FFF;padding: 7px;" v-hasPermi="['projectInfo:info:edit']"
+                    @click="infoBtn(scope.row)">确认审核</el-button>
+                  <el-button size="mini" type="text" style="background: #1C84C6;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.targetArrivalAmount}}万</span>
+              <span>{{item.payForMoney}}万</span>
+            </div>
+          </div>
+        </div>
+      </el-col>
+    </el-row>
   </div>
 </template>
 <script>
+  import echarts from '@/components/Echarts/index.vue'
+  import {toBeReviewedList,setExamine,setReject,getUnitList,getUnitAmountList,getIndexEharts} from '@/api/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.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() {
 
+      },
+      zj_btn() {
+        getUnitAmountList().then(res => {
+          this.zjList = res.rows
+        })
+      },
+      bd_btn() {
+        getUnitList().then(res =>{
+          this.unitList = res.rows
+        })
+      },
+      dec_btn(){
+
+      },
+      bh_brn(scope) {
+        this.$confirm('是否确认驳回审核', "提醒", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return setReject({
+            code: 2,
+            bmProjectId: scrop.id
+          });
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("提交成功");
+        })
+      },
+      infoBtn(scope) {
+        this.$confirm('是否确认提交审核', "提醒", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return setExamine({
+            code: 1,
+            bmProjectId: scrop.id
+          });
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("提交成功");
+        })
+        },
+      getList() {
+        toBeReviewedList().then(res => {
+          console.log(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>

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

@@ -59,9 +59,9 @@
       <el-table-column label="填报日期" width="180" 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: #0669B2;color: #FFF;padding: 7px;" v-hasPermi="['projectInfo:info:edit']">查看/审核</el-button>
+          <el-button size="mini" type="text" style="background: #0669B2;color: #FFF;padding: 7px;"  v-hasPermi="['projectInfo:info:edit']" @click="chei(scope.row)" >查看/审核</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,7 +84,9 @@
         </el-form-item>
         <el-form-item label="所属行业:" prop="industry">
           <el-radio-group v-model="xs_form.industry">
-            <el-radio :label="item.dictLabel" :value="item.dictValue" v-for="item in industryOptions"></el-radio>
+            <el-radio :label="item.dictValue" v-for="item in industryOptions">
+              {{item.dictLabel}}
+            </el-radio>
           </el-radio-group>
         </el-form-item>
         <el-form-item label="状态:" prop="isBackbussiness">
@@ -181,7 +183,7 @@
 </template>
 
 <script>
-  import {
+  import {
     setReject,
     setExamine,
     listInfo,
@@ -319,7 +321,7 @@
             this.msgSuccess("提交成功");
           })
         } else {
-          this.$confirm('是否确认撤销审核', "提醒", {
+          this.$confirm('是否确认驳回', "提醒", {
             confirmButtonText: "确定",
             cancelButtonText: "取消",
             type: "warning"
@@ -483,7 +485,19 @@
         }).then(response => {
           this.download(response.msg);
         })
-      }
+      },
+      //查看
+      chei(row){
+        console.log(row)
+        this.$router.push({
+          path:'/management/row',
+          query:{
+            setid:row.id,
+            setrd:row.projectStatus
+            },
+          })
+      }
+
     }
   };
-</script>
+</script>

文件差異過大導致無法顯示
+ 620 - 213
ruoyi-ui/src/views/management/nstruction/index.vue


+ 1 - 1
ruoyi-ui/src/views/management/roduction/index.vue

@@ -117,7 +117,7 @@
   </div>
 
 
-<el-dialog :visible.sync="dialogVisible">
+              <el-dialog :visible.sync="dialogVisible">
                      <img width="100%" :src="dialogImageUrl" alt="">
                    </el-dialog>
   </div>

+ 48 - 41
ruoyi-ui/src/views/management/row/index.vue

@@ -2,25 +2,12 @@
 
   <div class="app-container">
     <div class="header">
-      项目详情 >
+      <span>
+        项目详情 >
+      </span>
     </div>
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          @click="handleAdd"
-          v-hasPermi="['system:config:add']"
-        >提交</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          @click="handleUpdate"
-          v-hasPermi="['system:config:edit']"
-        >暂存</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
+  <div style="height: 115px;"></div>
+
 
   <div class="naue">
     <!-- //步骤条 -->
@@ -32,11 +19,11 @@
       </div>
       <div class="naue_two">
         <el-steps :active="naueactive" align-center finish-status="success">
-          <el-step title="线索审核中"></el-step>
-          <el-step title="线索审核成功"></el-step>
+          <el-step v-for="(item,index) in configList" :key="index" :title="item.dictLabel"></el-step>
+          <!-- <el-step title="线索审核成功"></el-step>
           <el-step title="签约审核成功"></el-step>
           <el-step title="在建审核成功"></el-step>
-          <el-step title="结束"></el-step>
+          <el-step title="结束"></el-step> -->
         </el-steps>
       </div>
     </div>
@@ -99,7 +86,7 @@
 </template>
 
 <script>
-import { listConfig, getConfig, delConfig, addConfig, updateConfig, exportConfig, clearCache } from "@/api/system/config";
+import { listConfig, listConfigther ,getConfig, delConfig, addConfig, updateConfig, exportConfig, clearCache } from "@/api/system/config";
 import myTabs from '../../tab/index.vue'
 import One from '../../under/index.vue'
 import Two from '../nstruction/index.vue'
@@ -143,7 +130,7 @@ export default {
       // 遮罩层
       loading: true,
       //步骤条
-      naueactive:2,
+      naueactive:0,
       tab:1,
       tabNume:['线索信息','签约信息','在建信息','投产信息'],
       // 选中数组
@@ -168,11 +155,11 @@ export default {
       dateRange: [],
       // 查询参数
       queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        configName: undefined,
-        configKey: undefined,
-        configType: undefined
+        // pageNum: 1,
+        // pageSize: 10,
+        // configName: undefined,
+        // configKey: undefined,
+        // configType: undefined
       },
       // 表单参数
       form: {},
@@ -191,6 +178,12 @@ export default {
     };
   },
   created() {
+    if(this.$route.query.setrd == 0){
+      this.naueactive = this.$route.query.setrd - 0
+    }else {
+      this.naueactive = this.$route.query.setrd - 0 - 1
+    }
+    console.log(this.naueactive)
     this.getList();
     this.getDicts("sys_yes_no").then(response => {
       this.typeOptions = response.data;
@@ -200,9 +193,10 @@ export default {
     /** 查询参数列表 */
     getList() {
       this.loading = true;
-      listConfig(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
-          this.configList = response.rows;
-          this.total = response.total;
+      listConfigther().then(response => {
+        console.log(response)
+          this.configList = response.data;
+          // this.total = response.total;
           this.loading = false;
         }
       );
@@ -241,9 +235,10 @@ export default {
     },
     /** 新增按钮操作 */
     handleAdd() {
-      this.reset();
-      this.open = true;
-      this.title = "添加参数";
+      console.log(this.queryParams)
+      // this.reset();
+      // this.open = true;
+      // this.title = "添加参数";
     },
     // 多选框选中数据
     handleSelectionChange(selection) {
@@ -393,14 +388,26 @@ export default {
     }
   }
 .app-container{
+  height: calc(100vh - 84px);
+  overflow-y: auto;
+  padding: 0 20px 20px;
+
   .header{
-    padding-left: 22px;
-    height: 45px;
-    line-height: 40px;
-    background-color: #F1F1F1;
-    font-size: 18px;
-    color: #343434;
-    margin-bottom: 40px;
+   padding-top: 20px;
+    padding-bottom: 90px;
+    position: fixed;
+    z-index: 99;
+    width: calc(100% - 240px);
+    background-color: #fff;
+
+    span{
+      display: block;
+      line-height: 45px;
+      padding-left: 22px;
+      color: #343434;
+      font-size: 18px;
+      background-color: #F1F1F1;
+    }
   }
   .naue{
     border: 1px solid #DADADA;

+ 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>

+ 1 - 1
ruoyi-ui/src/views/system/config/index.vue

@@ -358,4 +358,4 @@ export default {
     }
   }
 };
-</script>
+</script>

+ 56 - 25
ruoyi-ui/src/views/system/notice/index.vue

@@ -81,19 +81,20 @@
         :show-overflow-tooltip="true"
       />
       <el-table-column label="作者" align="center" prop="createBy" />
+      <el-table-column
+         label="发布单位"
+         align="center"
+         prop="deptName"
+         :show-overflow-tooltip="true"
+         width="100"
+       />
       <el-table-column
         label="类型"
         align="center"
         prop="noticeType"
         :formatter="typeFormat"
       />
-     <!-- <el-table-column
-        label="状态"
-        align="center"
-        prop="status"
-        :formatter="statusFormat"
-        width="100"
-      /> -->
+
       <el-table-column label="创建时间" align="center" prop="createTime">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
@@ -137,29 +138,34 @@
             </el-form-item>
           </el-col>
           <el-col :span="24">
-            <el-form-item label="作者" prop="noticeTitle">
-              <el-input v-model="form.noticeTitle" placeholder="请输入作者" />
+            <el-form-item label="作者" prop="createBy">
+              <el-input v-model="form.createBy" placeholder="请输入作者" />
             </el-form-item>
           </el-col>
           <el-col :span="24">
-            <el-form-item label="单位" prop="noticeTitle">
-              <el-input v-model="form.noticeTitle" placeholder="请输入单位" />
+            <el-form-item label="单位" prop="deptName">
+              <el-input v-model="form.deptName" placeholder="请输入单位" />
             </el-form-item>
           </el-col>
           <el-col :span="24">
             <el-form-item label="类型" prop="noticeType">
-              
+                <el-radio-group v-model="form.noticeType">
+                  <el-radio
+                    v-for="dict in typeOptions"
+                    :key="dict.dictValue"
+                    :label="dict.dictValue"
+                  >{{dict.dictLabel}}</el-radio>
+                </el-radio-group>
             </el-form-item>
           </el-col>
           <el-col :span="24">
-            <el-form-item label="状态">
-              <el-radio-group v-model="form.status">
-                <el-radio
-                  v-for="dict in statusOptions"
-                  :key="dict.dictValue"
-                  :label="dict.dictValue"
-                >{{dict.dictLabel}}</el-radio>
-              </el-radio-group>
+            <el-form-item  label="缩略图" class="elItem" prop="je">
+              <el-upload class="upload-demo" ref="upload" action="http://192.168.101.11:8080/common/upload"
+                :on-preview="handlePreview" :on-remove="handleRemove" :on-success="handleSucc" :file-list="fileList" :auto-upload="false" :multiple="true">
+                <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
+                <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">上传到服务器</el-button>
+                <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
+              </el-upload>
             </el-form-item>
           </el-col>
           <el-col :span="24">
@@ -178,7 +184,7 @@
 </template>
 
 <script>
-import { listNotice, getNotice, delNotice, addNotice, updateNotice, exportNotice } from "@/api/system/notice";
+import { listNotice, getNotice, getNoticetwo, delNotice, addNotice, updateNotice, exportNotice,listNoticetwo } from "@/api/system/notice";
 import Editor from '@/components/Editor';
 
 export default {
@@ -228,7 +234,9 @@ export default {
         noticeType: [
           { required: true, message: "公告类型不能为空", trigger: "change" }
         ]
-      }
+      },
+      configList: [{}],
+      fileList: []
     };
   },
   created() {
@@ -244,7 +252,7 @@ export default {
     /** 查询公告列表 */
     getList() {
       this.loading = true;
-      listNotice(this.queryParams).then(response => {
+      listNoticetwo(this.queryParams).then(response => {
         this.noticeList = response.rows;
         this.total = response.total;
         this.loading = false;
@@ -252,7 +260,7 @@ export default {
     },
     // 公告状态字典翻译
     statusFormat(row, column) {
-      return this.selectDictLabel(this.statusOptions, row.status);
+      return this.selectDictLabel(this.statusOptions, row.noticeType);
     },
     // 公告状态字典翻译
     typeFormat(row, column) {
@@ -300,7 +308,10 @@ export default {
     handleUpdate(row) {
       this.reset();
       const noticeId = row.noticeId || this.ids
-      getNotice(noticeId).then(response => {
+      // this.form = row;
+      // this.open = true;
+      // console.log(24)
+      getNoticetwo(noticeId).then(response => {
         this.form = response.data;
         this.open = true;
         this.title = "修改动态";
@@ -339,6 +350,26 @@ export default {
           this.getList();
           this.msgSuccess("删除成功");
         })
+    },
+    submitUpload() {
+
+      this.$refs.upload.submit();
+    },
+    handleRemove(file, fileList) {
+      console.log(file, fileList);
+
+    },
+    handlePreview(file) {
+      console.log(file,45);
+    },
+    handleSucc(response, file, fileList){
+      this.form.imgUrl = file.response.url
+      console.log(this.form.imgUrl)
+      if(file.response.code == 200){
+        this.msgSuccess("上传成功");
+      }
+       
+      console.log(response.url, file, fileList);
     }
   }
 };

+ 4 - 1
ruoyi-ui/src/views/tab/index.vue

@@ -15,7 +15,8 @@ export default {
   name: "'Mytabs'",
   props:{
     tabList: Array,
-    tabIndex: Number
+    tabIndex: Number,
+    queryParams:Object
   },
   data() {
     return {
@@ -29,6 +30,7 @@ export default {
       // 非单个禁用
       single: true,
       // 非多个禁用
+
     };
   },
   created() {
@@ -58,6 +60,7 @@ export default {
       color: #343434;
       padding: 11px 15px;
       margin: 0;
+      cursor: pointer;
     }
     .p{
       border-bottom: 2px solid #1C84C6;

文件差異過大導致無法顯示
+ 507 - 172
ruoyi-ui/src/views/under/index.vue


部分文件因文件數量過多而無法顯示