Browse Source

修改bug

hzj18279462576@163.com 1 year ago
parent
commit
1f57670db3

+ 155 - 32
src/views/homePage/homePage.vue

@@ -227,6 +227,7 @@
           <div class="title"><span class="icon"></span>完成率排行榜</div>
           <div class="title"><span class="icon"></span>完成率排行榜</div>
           <el-table
           <el-table
             :data="finishingList"
             :data="finishingList"
+            ref="finishTable"
             style="width: 100%"
             style="width: 100%"
             :header-cell-style="{
             :header-cell-style="{
               background: 'rgba(240, 243, 247, 1)',
               background: 'rgba(240, 243, 247, 1)',
@@ -241,7 +242,12 @@
               width="80"
               width="80"
             />
             />
             <el-table-column align="center" prop="name" label="部门名称" />
             <el-table-column align="center" prop="name" label="部门名称" />
-            <el-table-column align="center" prop="num" label="完成率/%" />
+            <el-table-column align="center" label="完成率/%">
+              <template #default="scope">
+                <span v-if="scope.row.num">{{ scope.row.num * 100 }}%</span>
+                <span v-else>0%</span>
+              </template>
+            </el-table-column>
           </el-table>
           </el-table>
         </div>
         </div>
       </div>
       </div>
@@ -482,6 +488,7 @@
             :row-class-name="tableRowClassName"
             :row-class-name="tableRowClassName"
             :data="warnCollectList"
             :data="warnCollectList"
             style="width: 100%"
             style="width: 100%"
+            ref="detailref"
             :header-cell-style="{
             :header-cell-style="{
               background: 'rgba(240, 243, 247, 1)',
               background: 'rgba(240, 243, 247, 1)',
               height: '40px',
               height: '40px',
@@ -887,11 +894,33 @@
             />
             />
             <el-table-column
             <el-table-column
               align="center"
               align="center"
+              width="120"
+              prop=""
+              tooltip-effect
+              label="更新进度附件"
+            >
+              <template #default="scope">
+                <div v-if="scope.row.fileUrl2">
+                  <div v-for="i in scope.row.fileUrl2.split(',')">
+                    <div
+                      style="color: rgba(33, 107, 255, 1); cursor: pointer"
+                      @click="pdfChange(i)"
+                    >
+                      {{ i }}
+                    </div>
+                  </div>
+                </div>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="center"
               prop="scoreStandard"
               prop="scoreStandard"
               label="评价标准"
               label="评价标准"
               width="170"
               width="170"
             />
             />
-            <el-table-column align="center" prop="weight" label="权重" />
+            <el-table-column align="center" label="权重">
+              <template #default="scope"> {{ scope.row.weight }}% </template>
+            </el-table-column>
             <el-table-column
             <el-table-column
               align="center"
               align="center"
               prop="headerName"
               prop="headerName"
@@ -940,7 +969,7 @@
               prop="createTime"
               prop="createTime"
               label="发生时间"
               label="发生时间"
             />
             />
-            <el-table-column align="center" prop="createBy" label="操作人" />
+            <el-table-column align="center" prop="createName" label="操作人" />
           </el-table>
           </el-table>
         </div>
         </div>
       </div>
       </div>
@@ -1038,7 +1067,7 @@ const searchInput = reactive({
   timeType: "最近7日",
   timeType: "最近7日",
   updateBy: "", // 时间筛选
   updateBy: "", // 时间筛选
 });
 });
-const organize=ref() // 主办单位绑定的值
+const organize = ref(); // 主办单位绑定的值
 const projectOriginData = ref([
 const projectOriginData = ref([
   { name: "涉内", id: "涉内" },
   { name: "涉内", id: "涉内" },
   { name: "涉外", id: "涉外" },
   { name: "涉外", id: "涉外" },
@@ -1102,9 +1131,10 @@ const warnCollect = reactive({
 });
 });
 const warnCollectList = ref();
 const warnCollectList = ref();
 // (明细)
 // (明细)
-const currentPage = ref(1); // 当前页
-const pageSize = ref(10);
-const total = ref(40); // 当前总数
+const detailref = ref();
+const currentPageDetail = ref(1); // 当前页
+const pageSizeDetail = ref(10);
+const totalDetail = ref(10); // 当前总数
 const selectData = reactive({
 const selectData = reactive({
   list: [],
   list: [],
 }); // 多选框选择的数据
 }); // 多选框选择的数据
@@ -1237,7 +1267,7 @@ const users = async () => {
 
 
 // 项目总览 (======================================================)
 // 项目总览 (======================================================)
 const projectWatch = async () => {
 const projectWatch = async () => {
-  loading.value = true;
+  // loading.value = true;
   let data = {
   let data = {
     organize: projectWatchSel.department,
     organize: projectWatchSel.department,
   };
   };
@@ -1287,9 +1317,9 @@ const projectWatch = async () => {
         state6.value = i.num;
         state6.value = i.num;
       }
       }
     });
     });
-    loading.value = false;
+    // loading.value = false;
   } else {
   } else {
-    loading.value = false;
+    // loading.value = false;
     ElMessage({
     ElMessage({
       type: "error",
       type: "error",
       showClose: true,
       showClose: true,
@@ -1346,7 +1376,7 @@ const rankingList = async () => {
   });
   });
   console.log(ress, "部门完成率排行");
   console.log(ress, "部门完成率排行");
   if (ress.data.code == 200) {
   if (ress.data.code == 200) {
-    finishingList.value = res.data.data;
+    finishingList.value = ress.data.data;
   } else {
   } else {
     ElMessage({
     ElMessage({
       type: "error",
       type: "error",
@@ -1361,10 +1391,26 @@ const rankingList = async () => {
 // 预警消息推送汇总 (汇总)
 // 预警消息推送汇总 (汇总)
 const warningClick = (val) => {
 const warningClick = (val) => {
   warningFlag.value = val;
   warningFlag.value = val;
+  warnCollect.organize = ""; // 主办部门
+  warnCollect.projectName = ""; // 项目名称
+  warnCollect.projectFrom = ""; // 项目来源
+  warnCollect.projectLevel = ""; // 项目等级
+  warnCollect.state = ""; // 1、正常在办,2、预警在办,3、超时在办,4、正常办结,5、超时办结
+  warnCollect.coOrganize = ""; // 协办单位
+  warnCollect.sposonerName = ""; // 主办人
+  warnCollect.coSposonerName = ""; // 协办人
+  warnCollect.updateBy = "最近7日"; // 协办人
+  warnCollect.time = ""; // 协办人
   warningList();
   warningList();
 };
 };
-const warningList = async () => {
-  loading.value = true;
+const warningList = lodash.debounce(async () => {
+  currentPageDetail.value = 1;
+  warnData();
+}, 300);
+const warnData = async () => {
+  console.log(currentPageDetail.value,'当前页数');
+  
+  // loading.value = true;
   if (warningFlag.value == 1) {
   if (warningFlag.value == 1) {
     let data = {
     let data = {
       organize: warnCollect.organize, // 主办部门
       organize: warnCollect.organize, // 主办部门
@@ -1392,9 +1438,9 @@ const warningList = async () => {
     console.log(res, "预警消息统计");
     console.log(res, "预警消息统计");
     if (res.data.code == 200) {
     if (res.data.code == 200) {
       warnCollectList.value = res.data.data;
       warnCollectList.value = res.data.data;
-      loading.value = false;
+      // loading.value = false;
     } else {
     } else {
-      loading.value = false;
+      // loading.value = false;
       ElMessage({
       ElMessage({
         type: "error",
         type: "error",
         showClose: true,
         showClose: true,
@@ -1403,6 +1449,10 @@ const warningList = async () => {
       });
       });
     }
     }
   } else if (warningFlag.value == 2) {
   } else if (warningFlag.value == 2) {
+    let params = {
+      page: currentPageDetail.value,
+      rows: pageSizeDetail.value,
+    };
     let data = {
     let data = {
       organize: warnCollect.organize, // 主办部门
       organize: warnCollect.organize, // 主办部门
       projectName: warnCollect.projectName, // 项目名称
       projectName: warnCollect.projectName, // 项目名称
@@ -1431,14 +1481,23 @@ const warningList = async () => {
         tokenP: sessionStorage.getItem("tokenP"),
         tokenP: sessionStorage.getItem("tokenP"),
         user_head: sessionStorage.getItem("userhead"),
         user_head: sessionStorage.getItem("userhead"),
       },
       },
+      params,
       data,
       data,
     });
     });
     console.log(res, "预警消息明细");
     console.log(res, "预警消息明细");
     if (res.data.code == 200) {
     if (res.data.code == 200) {
-      loading.value = false;
-      warnCollectList.value = res.data.data;
+      // loading.value = false;
+      totalDetail.value = res.data.data.totalPage;
+      // warnCollectList.value = res.data.data.rows;
+      if (currentPageDetail.value > 1) {
+        warnCollectList.value = warnCollectList.value.concat(
+          res.data.data.rows
+        );
+      } else {
+        warnCollectList.value = res.data.data.rows;
+      }
     } else {
     } else {
-      loading.value = false;
+      // loading.value = false;
       ElMessage({
       ElMessage({
         type: "error",
         type: "error",
         showClose: true,
         showClose: true,
@@ -1449,6 +1508,40 @@ const warningList = async () => {
   }
   }
 };
 };
 
 
+const detailTableScroll = (ele) => {
+  // ele : 绑定的表格元素
+  // console.log(ele.layout.table, "priceTable.value.bodyWrapper");
+  let table = ele.layout.table.refs.bodyWrapper;
+  table.addEventListener(
+    "scroll",
+    (e) => {
+      if (detailref.value) {
+        e.target.scrollTop = 0;
+        detailref.value = false;
+        console.log("置顶到顶部");
+      }
+      let scrollTop = e.target.scrollTop;
+      let scrollHeight = e.target.scrollHeight;
+      let clientHeight = e.target.clientHeight;
+      // console.log(scrollTop, "scrollTop");
+      // console.log(scrollHeight, "scrollHeight");
+      // console.log(clientHeight);
+      if (scrollTop + clientHeight == scrollHeight) {
+        console.log("滚动到底部了",currentPageDetail.value,totalDetail.value);
+
+        // 判断数据是否加载完
+        if (currentPageDetail.value < totalDetail.value) {
+          currentPageDetail.value++;
+          console.log(currentPageDetail.value, "加载完毕");
+          // 滚动到底部页面加一
+          warnData();
+        }
+      }
+    },
+    true
+  );
+};
+
 // 搜索功能
 // 搜索功能
 const searchBtn = lodash.debounce(async () => {
 const searchBtn = lodash.debounce(async () => {
   let project = document.getElementById("project");
   let project = document.getElementById("project");
@@ -1462,15 +1555,15 @@ const searchBtn = lodash.debounce(async () => {
 // 问题清单 预警清单 (=================================================)
 // 问题清单 预警清单 (=================================================)
 const problemClick = (val) => {
 const problemClick = (val) => {
   projectDesk.value = val;
   projectDesk.value = val;
-  searchInput.projectName= null // 项目名称
-  searchInput.projectFrom= null // 项目来源
-  searchInput.projectLevel= null // 项目等级
-  searchInput.state= null //
-  organize.value=null
-  searchInput.organize= null // 主办单位
-  searchInput.sposonerName= null // 主办人
-  searchInput.coOrganize= null // 协办单位
-  searchInput.coSposonerName= null // 协办人
+  searchInput.projectName = null; // 项目名称
+  searchInput.projectFrom = null; // 项目来源
+  searchInput.projectLevel = null; // 项目等级
+  searchInput.state = null; //
+  organize.value = null;
+  searchInput.organize = null; // 主办单位
+  searchInput.sposonerName = null; // 主办人
+  searchInput.coOrganize = null; // 协办单位
+  searchInput.coSposonerName = null; // 协办人
   searchBtn();
   searchBtn();
 };
 };
 // 问题清单
 // 问题清单
@@ -1481,7 +1574,7 @@ const getList = async () => {
     rows: pageSizeWarn.value, // 一页数据条数
     rows: pageSizeWarn.value, // 一页数据条数
   };
   };
   let data = {
   let data = {
-    // timeType: "", 
+    // timeType: "",
     project: {
     project: {
       projectName: searchInput.projectName, // 项目名称
       projectName: searchInput.projectName, // 项目名称
       projectFrom: searchInput.projectFrom, // 项目来源
       projectFrom: searchInput.projectFrom, // 项目来源
@@ -1538,9 +1631,11 @@ const getList = async () => {
     totalPageWarn.value = res.data.data.totalPage;
     totalPageWarn.value = res.data.data.totalPage;
     loading.value = false;
     loading.value = false;
   } else {
   } else {
-    // window.location.href =
-    //   "https://chtech.ncjti.edu.cn/kpi/template/api/sysUser/authorize";
     loading.value = false;
     loading.value = false;
+    if (res.data.message.indexOf("Handler dispatch failed") != -1) {
+      window.location.href =
+        "https://chtech.ncjti.edu.cn/kpi/template/api/sysUser/authorize";
+    }
     ElMessage({
     ElMessage({
       type: "error",
       type: "error",
       showClose: true,
       showClose: true,
@@ -1856,7 +1951,7 @@ const tableRowClassName = ({ row, rowIndex }) => {
   return "";
   return "";
 };
 };
 
 
-onBeforeMount(() => {
+onBeforeMount(async () => {
   api.value = store.state.user.api;
   api.value = store.state.user.api;
   // console.log(router.currentRoute.value.query.token);
   // console.log(router.currentRoute.value.query.token);
   departmentList(); // 部门数据
   departmentList(); // 部门数据
@@ -1865,11 +1960,38 @@ onBeforeMount(() => {
   warningList(); // 预警消息统计
   warningList(); // 预警消息统计
   users(); // 获取协办单位和人数据
   users(); // 获取协办单位和人数据
   // getList(); // 问题清单 预警清单
   // getList(); // 问题清单 预警清单
+  let params = {
+    page: 1, // 当前页
+    rows: 100, // 一页数据条数
+  };
+  let data = new FormData();
+  data.append("name", "");
+  let res = await axios({
+    method: "post",
+    url: api.value + "/api/sysConfig/queryPage",
+    headers: {
+      tokenP: sessionStorage.getItem("tokenP"),
+      user_head: sessionStorage.getItem("userhead"),
+    },
+    params: params,
+    data,
+  });
+  if (res.data.code == 200) {
+    cardInfo.progress = res.data.data.rows[2].configValue;
+  } else {
+    ElMessage({
+      type: "error",
+      showClose: true,
+      message: res.data.message,
+      center: true,
+    });
+  }
 });
 });
 onMounted(() => {
 onMounted(() => {
   const timer = setTimeout(() => {
   const timer = setTimeout(() => {
     getList();
     getList();
-  }, 200);
+  }, 300);
+  detailTableScroll(detailref.value);
 });
 });
 onUnmounted(() => {
 onUnmounted(() => {
   // document.removeEventListener("keyup", Enters);
   // document.removeEventListener("keyup", Enters);
@@ -2279,6 +2401,7 @@ onUnmounted(() => {
       margin-bottom: 20px;
       margin-bottom: 20px;
       .el-table--fit {
       .el-table--fit {
         height: 280px;
         height: 280px;
+        // height: 100px;
         :deep(.el-table__header-wrapper) {
         :deep(.el-table__header-wrapper) {
           background-color: #000;
           background-color: #000;
           font-size: 14px;
           font-size: 14px;

+ 4 - 1
src/views/menu/menu.vue

@@ -330,7 +330,10 @@ const getList = async () => {
   if (res.data.code == 200) {
   if (res.data.code == 200) {
     tableData.list = res.data.data;
     tableData.list = res.data.data;
   } else {
   } else {
-    window.location.href = 'https://chtech.ncjti.edu.cn/kpi/template/api/sysUser/authorize';
+    if(res.data.message.indexOf('Handler dispatch failed')!=-1){
+      window.location.href =
+      "https://chtech.ncjti.edu.cn/kpi/template/api/sysUser/authorize";
+    }
     ElMessage({
     ElMessage({
       type: "error",
       type: "error",
       showClose: true,
       showClose: true,

+ 35 - 7
src/views/project/project.vue

@@ -546,6 +546,8 @@
             :props="organizeProps"
             :props="organizeProps"
             @change="organizeChange"
             @change="organizeChange"
             v-model="sposonerVal"
             v-model="sposonerVal"
+            filterable
+            clearable
           >
           >
             <template #default="{ node, data }">
             <template #default="{ node, data }">
               <span>{{ data.userName }}</span>
               <span>{{ data.userName }}</span>
@@ -564,6 +566,7 @@
             clearable
             clearable
             @change="coOrganizeChange"
             @change="coOrganizeChange"
             v-model="coSposonerVal"
             v-model="coSposonerVal"
+            filterable
           >
           >
             <template #default="{ node, data }">
             <template #default="{ node, data }">
               <span>{{ data.userName }}</span>
               <span>{{ data.userName }}</span>
@@ -899,11 +902,34 @@
             />
             />
             <el-table-column
             <el-table-column
               align="center"
               align="center"
+              width="250"
+              tooltip-effect
+              label="更新进度附件"
+            >
+              <template #default="scope">
+                <div v-if="scope.row.fileUrl2">
+                  <div v-for="i in scope.row.fileUrl2.split(',')">
+                    <div
+                      style="color: rgba(33, 107, 255, 1); cursor: pointer"
+                      @click="pdfChange(i)"
+                    >
+                      {{ i }}
+                    </div>
+                  </div>
+                </div>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="center"
               prop="scoreStandard"
               prop="scoreStandard"
               label="评价标准"
               label="评价标准"
               width="170"
               width="170"
             />
             />
-            <el-table-column align="center" prop="weight" label="权重(%)" />
+            <el-table-column align="center" label="权重(%)">
+              <template #default="scope">
+                {{ scope.row.weight }}%
+              </template>  
+            </el-table-column>
             <el-table-column
             <el-table-column
               align="center"
               align="center"
               prop="headerName"
               prop="headerName"
@@ -1024,7 +1050,7 @@
               prop="createTime"
               prop="createTime"
               label="发生时间"
               label="发生时间"
             />
             />
-            <el-table-column align="center" prop="createBy" label="操作人" />
+            <el-table-column align="center" prop="createName" label="操作人" />
           </el-table>
           </el-table>
         </div>
         </div>
       </div>
       </div>
@@ -1648,15 +1674,17 @@ const getList = async () => {
       })
       })
     }
     }
     tableData.list = res.data.data.project.rows;
     tableData.list = res.data.data.project.rows;
-    cardInfo.progress = res.data.data.config[2].configValue * 100;
+    cardInfo.progress = res.data.data.config[2].configValue;
     total.value = res.data.data.project.total;
     total.value = res.data.data.project.total;
     totalPage.value = res.data.data.project.totalPage;
     totalPage.value = res.data.data.project.totalPage;
 
 
     loading.value = false;
     loading.value = false;
   } else {
   } else {
-    window.location.href =
-      "https://chtech.ncjti.edu.cn/kpi/template/api/sysUser/authorize";
     loading.value = false;
     loading.value = false;
+    if(res.data.message.indexOf('Handler dispatch failed')!=-1){
+      window.location.href =
+      "https://chtech.ncjti.edu.cn/kpi/template/api/sysUser/authorize";
+    }
     ElMessage({
     ElMessage({
       type: "error",
       type: "error",
       showClose: true,
       showClose: true,
@@ -3572,11 +3600,11 @@ onMounted(() => {
           margin-left: 5px;
           margin-left: 5px;
         }
         }
 
 
-        :deep(.el-table__body .even) {
+        .el-table__body .even {
           background-color: #fff;
           background-color: #fff;
         }
         }
 
 
-        :deep(.el-table__body .odd) {
+        .el-table__body .odd {
           background-color: rgba(240, 243, 247, 1);
           background-color: rgba(240, 243, 247, 1);
         }
         }
 
 

+ 4 - 1
src/views/role/role.vue

@@ -383,8 +383,11 @@ const getList = async () => {
     total.value = res.data.data.total;
     total.value = res.data.data.total;
     loading.value = false;
     loading.value = false;
   } else {
   } else {
-    window.location.href = 'https://chtech.ncjti.edu.cn/kpi/template/api/sysUser/authorize';
     loading.value = false;
     loading.value = false;
+    if(res.data.message.indexOf('Handler dispatch failed')!=-1){
+      window.location.href =
+      "https://chtech.ncjti.edu.cn/kpi/template/api/sysUser/authorize";
+    }
     ElMessage({
     ElMessage({
       type: "error",
       type: "error",
       showClose: true,
       showClose: true,

+ 5 - 2
src/views/system/system.vue

@@ -44,7 +44,7 @@
           <el-table-column align="center" prop="configKey" label="维度名称" />
           <el-table-column align="center" prop="configKey" label="维度名称" />
           <el-table-column align="center" prop="configValue" label="维度权重(%)">
           <el-table-column align="center" prop="configValue" label="维度权重(%)">
             <template #default="scope">
             <template #default="scope">
-              {{ scope.row.configValue }}
+              {{ scope.row.configValue }}%
             </template>
             </template>
           </el-table-column>
           </el-table-column>
           <!-- <el-table-column align="center" prop="createBy" label="创建人" /> -->
           <!-- <el-table-column align="center" prop="createBy" label="创建人" /> -->
@@ -243,7 +243,10 @@ const getList = async () => {
     warningList.value = res.data.data.rows[1];
     warningList.value = res.data.data.rows[1];
     tableData.list = [res.data.data.rows[2], res.data.data.rows[3]];
     tableData.list = [res.data.data.rows[2], res.data.data.rows[3]];
   } else {
   } else {
-    window.location.href = 'https://chtech.ncjti.edu.cn/kpi/template/api/sysUser/authorize';
+    if(res.data.message.indexOf('Handler dispatch failed')!=-1){
+      window.location.href =
+      "https://chtech.ncjti.edu.cn/kpi/template/api/sysUser/authorize";
+    }
     ElMessage({
     ElMessage({
       type: "error",
       type: "error",
       showClose: true,
       showClose: true,

+ 4 - 2
src/views/user/user.vue

@@ -559,9 +559,11 @@ const getList = async () => {
     total.value = res.data.data.total;
     total.value = res.data.data.total;
     loading.value = false;
     loading.value = false;
   } else {
   } else {
-    window.location.href =
-      "https://chtech.ncjti.edu.cn/kpi/template/api/sysUser/authorize";
     loading.value = false;
     loading.value = false;
+    if(res.data.message.indexOf('Handler dispatch failed')!=-1){
+      window.location.href =
+      "https://chtech.ncjti.edu.cn/kpi/template/api/sysUser/authorize";
+    }
     ElMessage({
     ElMessage({
       type: "error",
       type: "error",
       showClose: true,
       showClose: true,