浏览代码

科德项目修改

刘湘琪 2 年之前
父节点
当前提交
a720d8be70

二进制
src/assets/images/profile.png


+ 2 - 1
src/store/getters.js

@@ -13,6 +13,7 @@ const getters = {
   permission_routes: state => state.permission.routes,
   topbarRouters:state => state.permission.topbarRouters,
   defaultRoutes:state => state.permission.defaultRoutes,
-  sidebarRouters:state => state.permission.sidebarRouters,
+  sidebarRouters:state => state.permission.sidebarRouters,
+  userType:state => state.user.userType
 }
 export default getters

+ 1 - 1
src/store/modules/user.js

@@ -59,7 +59,7 @@ const user = {
       return new Promise((resolve, reject) => {
         getInfo().then(res => {
           const user = res.user
-          const avatar = (user.avatar == "" || user.avatar == null) ? require("@/assets/images/profile.jpg") : process.env.VUE_APP_BASE_API + user.avatar;
+          const avatar = (user.avatar == "" || user.avatar == null) ? require("@/assets/images/profile.png") : process.env.VUE_APP_BASE_API + user.avatar;
           if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组
             commit('SET_ROLES', res.roles)
             commit('SET_PERMISSIONS', res.permissions)

+ 24 - 34
src/views/enterprise/declare/index.vue

@@ -1,44 +1,32 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" size="small" label-width="100px">
-      <template v-if="roleType == 'gov'">
-        <el-form-item label="市" prop="cityId"  v-if="userType == 'GOV_PROV'">
-          <el-select v-model="queryParams.cityId" placeholder="请选择市" @change="getDistrictData" filterable style="width: 200px;">
-            <el-option v-for="(item, index) in cityDataList" :key="index" :label="item.name" :value="item.id"></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="区" prop="districtId" v-if="userType == 'GOV_PROV' || userType == 'GOV_CITY'">
-          <el-select v-model="queryParams.districtId" placeholder="请选择区" filterable style="width: 200px;">
-            <el-option v-for="(item, index) in districtDataList" :key="index" :label="item.name" :value="item.id"></el-option>
-          </el-select>
-        </el-form-item>
-      </template>
-      <template v-else>
+      <template v-if="!checkRole(['entAdmin','entUser'])">
         <el-form-item label="省" prop="provinceId">
-          <el-select v-model="queryParams.provinceId" placeholder="请选择省" @change="getCityData" filterable style="width: 200px;">
-            <el-option v-for="(item,index) in provinceDataList" :key="index" :label="item.name" :value="item.id"></el-option>
-          </el-select>
+            <el-select v-model="queryParams.provinceId" placeholder="请选择省" @change="getCityData" filterable style="width: 200px;">
+              <el-option v-for="(item,index) in provinceDataList" :key="index" :label="item.name" :value="item.id"></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="市" prop="cityId">
+            <el-select v-model="queryParams.cityId" placeholder="请选择市" @change="getDistrictData" filterable style="width: 200px;">
+              <el-option v-for="(item, index) in cityDataList" :key="index" :label="item.name" :value="item.id"></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="区" prop="districtId">
+            <el-select v-model="queryParams.districtId" placeholder="请选择区" filterable style="width: 200px;">
+              <el-option v-for="(item, index) in districtDataList" :key="index" :label="item.name" :value="item.id"></el-option>
+            </el-select>
+          </el-form-item>
+        <el-form-item label="年份" prop="year">
+          <el-date-picker v-model="queryParams.year" type="year" placeholder="选择年" style="width: 200px;" value-format="yyyy"></el-date-picker>
         </el-form-item>
-        <el-form-item label="市" prop="cityId">
-          <el-select v-model="queryParams.cityId" placeholder="请选择市" @change="getDistrictData" filterable style="width: 200px;">
-            <el-option v-for="(item, index) in cityDataList" :key="index" :label="item.name" :value="item.id"></el-option>
-          </el-select>
+        <el-form-item label="企业名称" prop="entName">
+          <el-input v-model="queryParams.entName" clearable style="width: 200px;" placeholder="请输入企业名称"></el-input>
         </el-form-item>
-        <el-form-item label="区" prop="districtId">
-          <el-select v-model="queryParams.districtId" placeholder="请选择区" filterable style="width: 200px;">
-            <el-option v-for="(item, index) in districtDataList" :key="index" :label="item.name" :value="item.id"></el-option>
-          </el-select>
+        <el-form-item label="社会信用代码" prop="license">
+          <el-input v-model="queryParams.license" style="width: 200px;" placeholder="请输入社会信用代码"></el-input>
         </el-form-item>
-      </template>
-      <el-form-item label="年份" prop="year">
-        <el-date-picker v-model="queryParams.year" type="year" placeholder="选择年" style="width: 200px;" value-format="yyyy"></el-date-picker>
-      </el-form-item>
-      <el-form-item label="企业名称" prop="entName">
-        <el-input v-model="queryParams.entName" clearable style="width: 200px;" placeholder="请输入企业名称"></el-input>
-      </el-form-item>
-      <el-form-item label="社会信用代码" prop="license">
-        <el-input v-model="queryParams.license" style="width: 200px;" placeholder="请输入社会信用代码"></el-input>
-      </el-form-item>
+      </template>    
       <el-form-item label="项目编号" prop="projectNo">
         <el-input v-model="queryParams.projectNo" style="width: 200px;" placeholder="请输入项目编号"></el-input>
       </el-form-item>
@@ -90,6 +78,7 @@
   import {listDeclareApi,listDeclareCommonApi,projectBackApi} from '@/api/enterprise/declare/declare'
   import {entStateOptions, getLabel, authStateOptions,yesOrNoOptions} from '@/utils/dataFormat'
   import { downLoadZip } from "@/utils/zipdownload";
+  import { checkRole } from "@/utils/permission"; // 权限判断函数
   export default {
     data () {
       return {
@@ -143,6 +132,7 @@
       }
     },
     methods: {
+      checkRole,
       handleDownloadBatch() {
         if(this.selectCount <= 0) {
           this.$message.error('请选择要下载的项目');

+ 19 - 2
src/views/enterprise/ent/components/audit.vue

@@ -13,12 +13,13 @@
 </template>
 
 <script>
-  import {auditEntApi} from "@/api/admin/ent/ent"
+  import {auditEntApi,getEntInfoByIdApi,updateEntInfoApi} from "@/api/admin/ent/ent"
   export default {
     data () {
       return {
         open: false,
         disabled: false,
+        type: '',
         form: {
           serviceTime: [],
           authState: '2',
@@ -36,9 +37,25 @@
       }
     },
     methods: {
-      init(id) {
+      init(id,type) {
         this.open = true;
         this.form.id = id;
+        this.type == type || ''
+        if(this.type) {
+          this.getData()
+        }
+      },
+      getData() {
+        this.loading = true
+        getEntInfoByIdApi(this.form.id).then(res => {
+          this.loading = false
+          this.form = res.data || {}
+          this.form.serviceDate = []
+          if(this.form.startDate) {
+            this.form.serviceDate[0] = this.form.startDate
+            this.form.serviceDate[1] = this.form.endDate
+          }
+        })
       },
       submitForm() {
         this.$refs.form.validate(valid => {

+ 97 - 0
src/views/enterprise/ent/components/service.vue

@@ -0,0 +1,97 @@
+<template>
+  <el-dialog title="修改服务时间" :visible.sync="open" width="800px" append-to-body>
+    <el-form ref="form" :model="form" :rules="rules" label-width="140px">
+        <el-form-item label="服务时间段" prop="serviceTime">
+          <el-date-picker v-model="form.serviceTime" placeholder="选择日期" type="daterange" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @input="$forceUpdate()"></el-date-picker>
+        </el-form-item>
+    </el-form>
+    <div slot="footer" class="dialog-footer">
+      <el-button type="primary" :disabled="disabled" @click="submitForm">确 定</el-button>
+      <el-button @click="cancel">取 消</el-button>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+  import {auditEntApi,getEntInfoByIdApi,updateEntInfoApi} from "@/api/admin/ent/ent"
+  export default {
+    data () {
+      return {
+        open: false,
+        disabled: false,
+        type: '',
+        form: {
+          serviceTime: [],
+          endDate: '',
+          startDate: ''
+        },
+        rules: {
+          serviceTime: [
+            {required: true, message: '请设置服务时间段', trigger: 'change'}
+          ]
+        }
+      }
+    },
+    methods: {
+      init(id) {
+        this.open = true;
+        this.form.id = id;
+        if(this.form.id) {
+          this.getData()
+        }
+      },
+      getData() {
+        getEntInfoByIdApi(this.form.id).then(res => {
+          this.form = res.data || {}
+          this.form.serviceTime = []
+          if(this.form.startDate) {
+            this.form.serviceTime[0] = this.form.startDate
+            this.form.serviceTime[1] = this.form.endDate
+          }
+        })
+      },
+      submitForm() {
+        this.$refs.form.validate(valid => {
+          if (valid) {
+            this.disabled = true
+            if(this.form.serviceTime.length > 0) {
+              this.form.startDate = this.form.serviceTime[0]
+              this.form.endDate = this.form.serviceTime[1]
+            }else {
+              this.form.startDate = ''
+              this.form.endDate = ''
+            }
+            updateEntInfoApi(this.form).then(res => {
+              this.disabled = false;
+              if(res.code == 200) {
+                this.$message({
+                  message: '服务时间修改成功',
+                  type: 'success'
+                });
+              }
+              this.open = false;
+              this.$emit('refreshData');
+            })
+          }
+        })
+      },
+      cancel() {
+        this.open = false
+      },
+    },
+    watch: {
+      "form.serviceTime"(val) {
+        if(this.form.serviceTime.length > 0) {
+          this.form.startDate = this.form.serviceTime[0]
+          this.form.endDate = this.form.serviceTime[1]
+        }else {
+          this.form.startDate = ''
+          this.form.endDate = ''
+        }
+      }
+    }
+  }
+</script>
+
+<style>
+</style>

+ 2 - 19
src/views/enterprise/ent/edit.vue

@@ -351,11 +351,7 @@
         </el-col>
       </el-row>
     </el-form>
-    <upload-enclosure ref="uploadEnclosure" v-if="enclosureVisible" @refreshData="getList()" :attachType="attachType"></upload-enclosure>
-  <!-- 图片预览 -->
-    <!-- <div v-if="imgShow">
-      <img :src="downloadUrl" />
-    </div> -->
+    <upload-enclosure ref="uploadEnclosure" v-if="enclosureVisible" @refreshData="getList()" :attachType="attachType"></upload-enclosure>
     <el-dialog
       :visible.sync="dialogVisible"
       title="预览"
@@ -365,9 +361,6 @@
         :src="dialogImageUrl"
         style="display: block; max-width: 100%; margin: 0 auto"/>
     </el-dialog>
-    <!-- <el-dialog :visible.sync="fileVisible" width="50%" class="fileVisible" :close-on-click-modal="false">
-      <iframe :src="fileUrl" frameborder="0" width="100%" height="600"></iframe>
-    </el-dialog> -->
   </div>
 </template>
 <script>
@@ -608,17 +601,7 @@ export default {
       this.getEnclosureData()
     }else{
       this.getProvinceData()
-    }
-    // if(this.form.provinceId) {
-    //   console.log("&&&&&&&&&&&&&&&&&&&")
-    //   getRegionChildrenApi(this.form.provinceId).then(res => {
-    //     if(res.code == 200) {
-    //       this.cityDataList = res.data
-    //       this.form.cityId = '1481196860266852482'
-    //       console.log("@@@@@@@@@@@@@@@@@@@@")
-    //     }
-    //   })
-    // }
+    }
   },
   methods: {
     validLicense(val) {

+ 49 - 19
src/views/enterprise/ent/index.vue

@@ -41,6 +41,11 @@
           <el-option v-for="(item, index) in entStateOptions" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option>
         </el-select>
       </el-form-item>
+      <el-form-item label="审核状态" prop="authState">
+        <el-select v-model="queryParams.authState" style="width: 200px;" placeholder="请选择">
+          <el-option v-for="(item, index) in authStateOptions" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option>
+        </el-select>
+      </el-form-item>
 
       <el-form-item>
         <el-button type="primary" @click="handleQuery">搜索</el-button>
@@ -71,20 +76,30 @@
       <el-table-column label="联系人手机号" prop="phonenumber" align="center" width="160"></el-table-column>
       <el-table-column label="联系人邮箱" prop="email" align="center" width="180"></el-table-column>
       <el-table-column label="创建时间" prop="createTime" align="center" width="160"></el-table-column>
-      <el-table-column label="服务时间" align="center" width="180">
+      <el-table-column label="服务时间" align="center" width="200">
         <template slot-scope="scope">
           <template v-if="scope.row.entState == '1'">
             <span>--</span>
           </template>
           <template v-else-if="scope.row.entState == '2'">
-            <span>{{scope.row.startDate}}-{{scope.row.endDate}}</span>
+            <span>{{scope.row.startDate}} - {{scope.row.endDate}}</span>
+            <el-button @click="handleEdit(scope.row)" type="text" size="small">修改服务时间</el-button>
           </template>
           <template v-else>
             <span>已到期</span>
           </template>
         </template>
       </el-table-column>
-      <el-table-column label="服务状态" prop="entState" align="center" width="120" :formatter="entSateFormat"></el-table-column>
+      <el-table-column label="服务状态" prop="entState" align="center" width="120" :formatter="entSateFormat">
+        <template slot-scope="scope">
+          <template v-if="scope.row.authState == '3'">
+            <span>驳回</span>
+          </template>
+          <template v-else>
+            <span>{{scope.row.entState | entStateMode}}</span>
+          </template>
+        </template>
+      </el-table-column>
       <el-table-column label="审核状态" prop="authState" align="center" width="120" :formatter="authStateFormat"></el-table-column>
       <el-table-column label="操作" align="center" width="180" class-name="small-padding fixed-width">
         <template slot-scope="scope">
@@ -112,8 +127,9 @@
       :total="total"
       :page.sync="queryParams.pageNum"
       :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
+      @pagination="getList"/>
+
+      <audit-ent v-if="auditEntVisible" ref="auditEnt" @refreshData="getList()"></audit-ent>
   </div>
 </template>
 <!-- 企业管理模块只有科德管理员和税务人员 -->
@@ -123,9 +139,14 @@
   import {entStateOptions, getLabel, authStateOptions} from '@/utils/dataFormat'
   import {listEntTaxApi} from '@/api/gov/gov'
   import { resetUserPwd } from "@/api/system/user";
+  import AuditEnt from "./components/service"
   export default {
+    components: {
+      AuditEnt
+    },
     data () {
       return {
+        auditEntVisible: false,
         loading: false,
         provinceDataList: [],
         cityDataList: [],
@@ -171,7 +192,30 @@
         return this.$store.state.user.userType
       }
     },
+    filters: {
+      entStateMode(val) {
+        switch(val) {
+          case 1:
+            return '待审核';
+          case 2:
+            return '服务中';
+          case 3:
+            return '已过期';
+          case 4:
+            return '冻结';
+          default:
+            return "";
+        }
+      }
+    },
     methods: {
+      /** 修改服务时间 */
+      handleEdit(row){
+        this.auditEntVisible = true
+        this.$nextTick(() => {
+          this.$refs.auditEnt.init(row.id)
+        })
+      },
       getAreaData() {
         getRegionChildrenApi(this.scopeId).then(res => {
           if(res.code == 200) {
@@ -258,20 +302,6 @@
             }, 500);
           })
       },
-      /** 重置密码按钮操作 */
-      // handleResetPwd(row) {
-      //   this.$prompt('请输入"' + row.userName + '"的新密码', "提示", {
-      //     confirmButtonText: "确定",
-      //     cancelButtonText: "取消",
-      //     closeOnClickModal: false,
-      //     inputPattern: /^.{5,20}$/,
-      //     inputErrorMessage: "用户密码长度必须介于 5 和 20 之间"
-      //   }).then(({ value }) => {
-      //       resetPwdApi(row.id, value).then(response => {
-      //         this.$modal.msgSuccess("修改成功,新密码是:" + value);
-      //       });
-      //     }).catch(() => {});
-      // },
       handleRemind(row) {
         this.$confirm('是否确认提醒用户服务时间到期?', "警告", {
             confirmButtonText: "确定",

+ 1 - 1
src/views/enterprise/project/components/FinDataEnclosure.vue

@@ -13,7 +13,7 @@
       <el-table-column label="文件名称" prop="fileName" align="center"></el-table-column>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
-          <el-button type="text" @click="handleView(scope.row)">预览打印</el-button>
+          <el-button type="text" @click="handleView(scope.row)">查看</el-button>
           <el-button type="text" @click="handleDownload(scope.row)">下载</el-button>
           <el-button type="text" @click="handleDelete(scope.row)" v-if="userType == 'ENT_FIN' || userType == 'ENT_ADMIN_FIN'">删除</el-button>
         </template>

+ 29 - 26
src/views/enterprise/project/index.vue

@@ -1,30 +1,32 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" size="small" label-width="100px">
-      <el-form-item label="省" prop="provinceId">
-        <el-select v-model="queryParams.provinceId" placeholder="请选择省" @change="getCityData" filterable style="width: 200px;" clearable>
-          <el-option v-for="(item,index) in provinceDataList" :key="index" :label="item.name" :value="item.id"></el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item label="市" prop="cityId">
-        <el-select v-model="queryParams.cityId" placeholder="请选择市" @change="getDistrictData" filterable style="width: 200px;" clearable>
-          <el-option v-for="(item, index) in cityDataList" :key="index" :label="item.name" :value="item.id"></el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item label="区" prop="districtId">
-        <el-select v-model="queryParams.districtId" placeholder="请选择区" filterable style="width: 200px;" clearable>
-          <el-option v-for="(item, index) in districtDataList" :key="index" :label="item.name" :value="item.id"></el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item label="年份" prop="year">
-        <el-date-picker v-model="queryParams.year" type="year" placeholder="选择年" style="width: 200px;" clearable value-format="yyyy"></el-date-picker>
-      </el-form-item>
-      <el-form-item label="企业名称" prop="entName">
-        <el-input v-model="queryParams.entName" clearable style="width: 200px;" placeholder="请填入企业名称"></el-input>
-      </el-form-item>
-      <el-form-item label="社会信用代码" prop="license">
-        <el-input v-model="queryParams.license" style="width: 200px;" placeholder="请输入社会信用代码" clearable></el-input>
-      </el-form-item>
+      <template v-if="!checkRole(['entAdmin','entUser'])">
+        <el-form-item label="省" prop="provinceId">
+          <el-select v-model="queryParams.provinceId" placeholder="请选择省" @change="getCityData" filterable style="width: 200px;" clearable>
+            <el-option v-for="(item,index) in provinceDataList" :key="index" :label="item.name" :value="item.id"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="市" prop="cityId">
+          <el-select v-model="queryParams.cityId" placeholder="请选择市" @change="getDistrictData" filterable style="width: 200px;" clearable>
+            <el-option v-for="(item, index) in cityDataList" :key="index" :label="item.name" :value="item.id"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="区" prop="districtId">
+          <el-select v-model="queryParams.districtId" placeholder="请选择区" filterable style="width: 200px;" clearable>
+            <el-option v-for="(item, index) in districtDataList" :key="index" :label="item.name" :value="item.id"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="年份" prop="year">
+          <el-date-picker v-model="queryParams.year" type="year" placeholder="选择年" style="width: 200px;" clearable value-format="yyyy"></el-date-picker>
+        </el-form-item>
+        <el-form-item label="企业名称" prop="entName">
+          <el-input v-model="queryParams.entName" clearable style="width: 200px;" placeholder="请填入企业名称"></el-input>
+        </el-form-item>
+        <el-form-item label="社会信用代码" prop="license">
+          <el-input v-model="queryParams.license" style="width: 200px;" placeholder="请输入社会信用代码" clearable></el-input>
+        </el-form-item>
+      </template>
       <el-form-item label="项目编号" prop="projectNo">
         <el-input v-model="queryParams.projectNo" style="width: 200px;" placeholder="请输入项目编号" clearable></el-input>
       </el-form-item>
@@ -41,7 +43,7 @@
       <div class="tool">
         <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-if="roleType == 'entAdmin' || roleType == 'entUser'">新增</el-button>
         <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleDownloadBatch">下载</el-button>
-        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleBatchDel" v-if="roleType == 'entAdmin' || roleType == 'entUser'">批量删除</el-button>
+        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleBatchDel" v-if="roleType == 'entAdmin' || roleType == 'entUser' || roleType == 'manager'">批量删除</el-button>
       </div>
     </h3>
     <el-table v-loading="loading" :data="list" border @selection-change="handleSelectionChange">
@@ -130,6 +132,7 @@
   import AuditProject from './components/audit'
   import {downloadProjectByIDApi} from '@/api/common/common'
   import { downLoadZip } from "@/utils/zipdownload";
+  import { checkRole } from "@/utils/permission"; // 权限判断函数
   export default {
     components: {
       AddProject,
@@ -186,10 +189,10 @@
       this.roleType = this.roles.join(',')
     },
     methods: {
+      checkRole,
       // 多选框选中数据
       handleSelectionChange(selection) {
         this.ids = selection.map(item => item.id)
-        console.log(this.ids)
         this.selectCount = selection.length;
       },
       handleBatchDel() {

+ 11 - 11
src/views/index.vue

@@ -8,21 +8,21 @@
         <el-col :span="8">
           <div class="stat_box">
             <i class="icon icon_1"></i>
-            <span class="num">{{info.entSumCnt}}</span>
+            <span class="num">{{info.entSumCnt || 0}}</span>
             <span class="label">企业总数</span>
           </div>
         </el-col>
         <el-col :span="8">
           <div class="stat_box">
             <i class="icon icon_9"></i>
-            <span class="num">{{info.entValidCnt}}</span>
+            <span class="num">{{info.entValidCnt || 0}}</span>
             <span class="label">服务中企业</span>
           </div>
         </el-col>
         <el-col :span="8">
           <div class="stat_box">
             <i class="icon icon_8"></i>
-            <span class="num">{{info.entExpiredCnt}}</span>
+            <span class="num">{{info.entExpiredCnt || 0}}</span>
             <span class="label">服务已到期企业</span>
           </div>
         </el-col>
@@ -30,7 +30,7 @@
           <router-link to="project/project">
             <div class="stat_box">
               <i class="icon icon_5"></i>
-              <span class="num">{{info.proSumCnt}}</span>
+              <span class="num">{{info.proSumCnt || 0}}</span>
               <span class="label">项目总数</span>
             </div>
           </router-link>
@@ -38,14 +38,14 @@
         <el-col :span="8">
           <div class="stat_box">
             <i class="icon icon_6"></i>
-            <span class="num">{{info.proFinishCnt}}</span>
+            <span class="num">{{info.proFinishCnt || 0}}</span>
             <span class="label">已完成项目</span>
           </div>
         </el-col>
         <el-col :span="8">
           <div class="stat_box">
             <i class="icon icon_7"></i>
-            <span class="num">{{info.proUnfinishCnt}}</span>
+            <span class="num">{{info.proUnfinishCnt || 0}}</span>
             <span class="label">待完成项目</span>
           </div>
         </el-col>
@@ -56,14 +56,14 @@
         <el-col :span="8">
           <div class="stat_box">
             <i class="icon icon_1"></i>
-            <span class="num">{{info.entSumCnt}}</span>
+            <span class="num">{{info.entSumCnt || 0}}</span>
             <span class="label">企业总数</span>
           </div>
         </el-col>
         <el-col :span="8">
           <div class="stat_box">
             <i class="icon icon_1"></i>
-            <span class="num">{{info.proFinishCnt}}</span>
+            <span class="num">{{info.proFinishCnt || 0}}</span>
             <span class="label">项目申报数</span>
           </div>
         </el-col>
@@ -75,7 +75,7 @@
           <router-link to="project/project">
             <div class="stat_box">
               <i class="icon icon_5"></i>
-              <span class="num">{{info.proSumCnt}}</span>
+              <span class="num">{{info.proSumCnt || 0}}</span>
               <span class="label">项目总数</span>
             </div>
           </router-link>
@@ -84,14 +84,14 @@
         <el-col :span="8">
           <div class="stat_box">
             <i class="icon icon_6"></i>
-            <span class="num">{{info.proFinishCnt}}</span>
+            <span class="num">{{info.proFinishCnt || 0}}</span>
             <span class="label">已完成项目</span>
           </div>
         </el-col>
         <el-col :span="8">
           <div class="stat_box">
             <i class="icon icon_7"></i>
-            <span class="num">{{info.proUnfinishCnt}}</span>
+            <span class="num">{{info.proUnfinishCnt || 0}}</span>
             <span class="label">待完成项目</span>
           </div>
         </el-col>