|
|
@@ -50,20 +50,6 @@
|
|
|
</el-radio-group>
|
|
|
</div>
|
|
|
<div class="card">
|
|
|
- <!-- 正常办结 -->
|
|
|
- <el-card style="min-width: 200px">
|
|
|
- <div class="title">
|
|
|
- <div class="block">
|
|
|
- <span>正常办结</span><br />
|
|
|
- <span class="num">{{ state4 }}</span>
|
|
|
- </div>
|
|
|
- <img src="../../assets/images/zhengchangbanjie.png" alt="" />
|
|
|
- </div>
|
|
|
- <!-- <div class="jindu">
|
|
|
- <el-progress percentage="80" color="rgba(0, 97, 255, 1)" />
|
|
|
- <span class="title">(同比上月)</span>
|
|
|
- </div> -->
|
|
|
- </el-card>
|
|
|
<!-- 预警在办 -->
|
|
|
<el-card style="min-width: 200px">
|
|
|
<div class="title">
|
|
|
@@ -120,6 +106,20 @@
|
|
|
<span class="title">(同比上月)</span>
|
|
|
</div> -->
|
|
|
</el-card>
|
|
|
+ <!-- 正常办结 -->
|
|
|
+ <el-card style="min-width: 200px">
|
|
|
+ <div class="title">
|
|
|
+ <div class="block">
|
|
|
+ <span>正常办结</span><br />
|
|
|
+ <span class="num">{{ state4 }}</span>
|
|
|
+ </div>
|
|
|
+ <img src="../../assets/images/zhengchangbanjie.png" alt="" />
|
|
|
+ </div>
|
|
|
+ <!-- <div class="jindu">
|
|
|
+ <el-progress percentage="80" color="rgba(0, 97, 255, 1)" />
|
|
|
+ <span class="title">(同比上月)</span>
|
|
|
+ </div> -->
|
|
|
+ </el-card>
|
|
|
<!-- 项目总数 -->
|
|
|
<el-card style="min-width: 200px">
|
|
|
<div class="title">
|
|
|
@@ -1201,12 +1201,12 @@ const departmentList = async () => {
|
|
|
if (res.data.code == 200) {
|
|
|
departmentData.value = res.data.data;
|
|
|
} else {
|
|
|
- ElMessage({
|
|
|
- type: "error",
|
|
|
- showClose: true,
|
|
|
- message: res.data.message,
|
|
|
- center: true,
|
|
|
- });
|
|
|
+ // ElMessage({
|
|
|
+ // type: "error",
|
|
|
+ // showClose: true,
|
|
|
+ // message: res.data.message,
|
|
|
+ // center: true,
|
|
|
+ // });
|
|
|
}
|
|
|
|
|
|
// let res = await axios({
|
|
|
@@ -1256,12 +1256,12 @@ const users = async () => {
|
|
|
});
|
|
|
searchOrganizeData.value = resdata;
|
|
|
} else {
|
|
|
- ElMessage({
|
|
|
- type: "error",
|
|
|
- showClose: true,
|
|
|
- message: res.data.message,
|
|
|
- center: true,
|
|
|
- });
|
|
|
+ // ElMessage({
|
|
|
+ // type: "error",
|
|
|
+ // showClose: true,
|
|
|
+ // message: res.data.message,
|
|
|
+ // center: true,
|
|
|
+ // });
|
|
|
}
|
|
|
};
|
|
|
|
|
|
@@ -1320,12 +1320,12 @@ const projectWatch = async () => {
|
|
|
// loading.value = false;
|
|
|
} else {
|
|
|
// loading.value = false;
|
|
|
- ElMessage({
|
|
|
- type: "error",
|
|
|
- showClose: true,
|
|
|
- message: res.data.message,
|
|
|
- center: true,
|
|
|
- });
|
|
|
+ // ElMessage({
|
|
|
+ // type: "error",
|
|
|
+ // showClose: true,
|
|
|
+ // message: res.data.message,
|
|
|
+ // center: true,
|
|
|
+ // });
|
|
|
}
|
|
|
};
|
|
|
|
|
|
@@ -1357,12 +1357,12 @@ const rankingList = async () => {
|
|
|
if (res.data.code == 200) {
|
|
|
rankList.value = res.data.data;
|
|
|
} else {
|
|
|
- ElMessage({
|
|
|
- type: "error",
|
|
|
- showClose: true,
|
|
|
- message: res.data.message,
|
|
|
- center: true,
|
|
|
- });
|
|
|
+ // ElMessage({
|
|
|
+ // type: "error",
|
|
|
+ // showClose: true,
|
|
|
+ // message: res.data.message,
|
|
|
+ // center: true,
|
|
|
+ // });
|
|
|
}
|
|
|
|
|
|
let ress = await axios({
|
|
|
@@ -1378,12 +1378,12 @@ const rankingList = async () => {
|
|
|
if (ress.data.code == 200) {
|
|
|
finishingList.value = ress.data.data;
|
|
|
} else {
|
|
|
- ElMessage({
|
|
|
- type: "error",
|
|
|
- showClose: true,
|
|
|
- message: ress.data.message,
|
|
|
- center: true,
|
|
|
- });
|
|
|
+ // ElMessage({
|
|
|
+ // type: "error",
|
|
|
+ // showClose: true,
|
|
|
+ // message: ress.data.message,
|
|
|
+ // center: true,
|
|
|
+ // });
|
|
|
}
|
|
|
};
|
|
|
|
|
|
@@ -1404,12 +1404,13 @@ const warningClick = (val) => {
|
|
|
warningList();
|
|
|
};
|
|
|
const warningList = lodash.debounce(async () => {
|
|
|
+ detailref.value.$el.querySelector('.el-table__body-wrapper .el-scrollbar .el-scrollbar__wrap').scrollTop = 0
|
|
|
currentPageDetail.value = 1;
|
|
|
warnData();
|
|
|
}, 300);
|
|
|
const warnData = async () => {
|
|
|
- console.log(currentPageDetail.value,'当前页数');
|
|
|
-
|
|
|
+ console.log(currentPageDetail.value, "当前页数");
|
|
|
+
|
|
|
// loading.value = true;
|
|
|
if (warningFlag.value == 1) {
|
|
|
let data = {
|
|
|
@@ -1441,12 +1442,12 @@ const warnData = async () => {
|
|
|
// loading.value = false;
|
|
|
} else {
|
|
|
// loading.value = false;
|
|
|
- ElMessage({
|
|
|
- type: "error",
|
|
|
- showClose: true,
|
|
|
- message: res.data.message,
|
|
|
- center: true,
|
|
|
- });
|
|
|
+ // ElMessage({
|
|
|
+ // type: "error",
|
|
|
+ // showClose: true,
|
|
|
+ // message: res.data.message,
|
|
|
+ // center: true,
|
|
|
+ // });
|
|
|
}
|
|
|
} else if (warningFlag.value == 2) {
|
|
|
let params = {
|
|
|
@@ -1498,12 +1499,12 @@ const warnData = async () => {
|
|
|
}
|
|
|
} else {
|
|
|
// loading.value = false;
|
|
|
- ElMessage({
|
|
|
- type: "error",
|
|
|
- showClose: true,
|
|
|
- message: res.data.message,
|
|
|
- center: true,
|
|
|
- });
|
|
|
+ // ElMessage({
|
|
|
+ // type: "error",
|
|
|
+ // showClose: true,
|
|
|
+ // message: res.data.message,
|
|
|
+ // center: true,
|
|
|
+ // });
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
@@ -1512,14 +1513,15 @@ 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("置顶到顶部");
|
|
|
- }
|
|
|
+ // 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;
|
|
|
@@ -1527,7 +1529,7 @@ const detailTableScroll = (ele) => {
|
|
|
// console.log(scrollHeight, "scrollHeight");
|
|
|
// console.log(clientHeight);
|
|
|
if (scrollTop + clientHeight == scrollHeight) {
|
|
|
- console.log("滚动到底部了",currentPageDetail.value,totalDetail.value);
|
|
|
+ console.log("滚动到底部了", currentPageDetail.value, totalDetail.value);
|
|
|
|
|
|
// 判断数据是否加载完
|
|
|
if (currentPageDetail.value < totalDetail.value) {
|
|
|
@@ -1635,13 +1637,20 @@ const getList = async () => {
|
|
|
if (res.data.message.indexOf("Handler dispatch failed") != -1) {
|
|
|
window.location.href =
|
|
|
"https://chtech.ncjti.edu.cn/kpi/template/api/sysUser/authorize";
|
|
|
+ ElMessage({
|
|
|
+ type: "error",
|
|
|
+ showClose: true,
|
|
|
+ message: "token已过期,请重新登录",
|
|
|
+ center: true,
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ ElMessage({
|
|
|
+ type: "error",
|
|
|
+ showClose: true,
|
|
|
+ message: res.data.message,
|
|
|
+ center: true,
|
|
|
+ });
|
|
|
}
|
|
|
- ElMessage({
|
|
|
- type: "error",
|
|
|
- showClose: true,
|
|
|
- message: res.data.message,
|
|
|
- center: true,
|
|
|
- });
|
|
|
}
|
|
|
};
|
|
|
// 搜索框主办单位 根据部门获取用户
|
|
|
@@ -1661,6 +1670,7 @@ const getUser1 = async (val) => {
|
|
|
const projectCard = async (row) => {
|
|
|
cardVisible.value = true;
|
|
|
console.log(row);
|
|
|
+ logFlag.value = 1;
|
|
|
cardTitle.value = row.projectName;
|
|
|
fileList.value = row.fileUrl;
|
|
|
cardInfo.projectName = row.projectName;
|
|
|
@@ -1714,12 +1724,23 @@ const taskList = async () => {
|
|
|
console.log(res, "任务管理");
|
|
|
taskData.value = res.data.data;
|
|
|
} else {
|
|
|
- ElMessage({
|
|
|
- type: "error",
|
|
|
- showClose: true,
|
|
|
- message: res.data.message,
|
|
|
- center: true,
|
|
|
- });
|
|
|
+ if (res.data.message.indexOf("Handler dispatch failed") != -1) {
|
|
|
+ window.location.href =
|
|
|
+ "https://chtech.ncjti.edu.cn/kpi/template/api/sysUser/authorize";
|
|
|
+ ElMessage({
|
|
|
+ type: "error",
|
|
|
+ showClose: true,
|
|
|
+ message: "token已过期,请重新登录",
|
|
|
+ center: true,
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ ElMessage({
|
|
|
+ type: "error",
|
|
|
+ showClose: true,
|
|
|
+ message: res.data.message,
|
|
|
+ center: true,
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
};
|
|
|
// 任务日志
|
|
|
@@ -1739,12 +1760,23 @@ const logList = async () => {
|
|
|
console.log(res, "任务日志");
|
|
|
logData.value = res.data.data;
|
|
|
} else {
|
|
|
- ElMessage({
|
|
|
- type: "error",
|
|
|
- showClose: true,
|
|
|
- message: res.data.message,
|
|
|
- center: true,
|
|
|
- });
|
|
|
+ if (res.data.message.indexOf("Handler dispatch failed") != -1) {
|
|
|
+ window.location.href =
|
|
|
+ "https://chtech.ncjti.edu.cn/kpi/template/api/sysUser/authorize";
|
|
|
+ ElMessage({
|
|
|
+ type: "error",
|
|
|
+ showClose: true,
|
|
|
+ message: "token已过期,请重新登录",
|
|
|
+ center: true,
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ ElMessage({
|
|
|
+ type: "error",
|
|
|
+ showClose: true,
|
|
|
+ message: res.data.message,
|
|
|
+ center: true,
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
};
|
|
|
const cancelCard = () => {
|
|
|
@@ -1843,12 +1875,23 @@ const projectScroll = async (event) => {
|
|
|
// totalPage.value = res.data.data.project.totalPage;
|
|
|
} else {
|
|
|
loading.value = false;
|
|
|
- ElMessage({
|
|
|
- type: "error",
|
|
|
- showClose: true,
|
|
|
- message: res.data.message,
|
|
|
- center: true,
|
|
|
- });
|
|
|
+ if (res.data.message.indexOf("Handler dispatch failed") != -1) {
|
|
|
+ window.location.href =
|
|
|
+ "https://chtech.ncjti.edu.cn/kpi/template/api/sysUser/authorize";
|
|
|
+ ElMessage({
|
|
|
+ type: "error",
|
|
|
+ showClose: true,
|
|
|
+ message: "token已过期,请重新登录",
|
|
|
+ center: true,
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ ElMessage({
|
|
|
+ type: "error",
|
|
|
+ showClose: true,
|
|
|
+ message: res.data.message,
|
|
|
+ center: true,
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
} else {
|
|
|
console.log(currentPageWarn.value, "加载完毕");
|
|
|
@@ -1885,12 +1928,23 @@ const urgeOneProject = async (row) => {
|
|
|
center: true,
|
|
|
});
|
|
|
} else {
|
|
|
- ElMessage({
|
|
|
- type: "error",
|
|
|
- showClose: true,
|
|
|
- message: res.data.message,
|
|
|
- center: true,
|
|
|
- });
|
|
|
+ if (res.data.message.indexOf("Handler dispatch failed") != -1) {
|
|
|
+ window.location.href =
|
|
|
+ "https://chtech.ncjti.edu.cn/kpi/template/api/sysUser/authorize";
|
|
|
+ ElMessage({
|
|
|
+ type: "error",
|
|
|
+ showClose: true,
|
|
|
+ message: "token已过期,请重新登录",
|
|
|
+ center: true,
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ ElMessage({
|
|
|
+ type: "error",
|
|
|
+ showClose: true,
|
|
|
+ message: res.data.message,
|
|
|
+ center: true,
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
})
|
|
|
.catch(() => {});
|
|
|
@@ -1979,12 +2033,12 @@ onBeforeMount(async () => {
|
|
|
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,
|
|
|
- });
|
|
|
+ // ElMessage({
|
|
|
+ // type: "error",
|
|
|
+ // showClose: true,
|
|
|
+ // message: res.data.message,
|
|
|
+ // center: true,
|
|
|
+ // });
|
|
|
}
|
|
|
});
|
|
|
onMounted(() => {
|
|
|
@@ -2306,6 +2360,9 @@ onUnmounted(() => {
|
|
|
height: 3px;
|
|
|
width: 4px;
|
|
|
}
|
|
|
+ &::-webkit-scrollbar-thumb:hover {
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
}
|
|
|
.table {
|
|
|
display: flex;
|
|
|
@@ -2375,6 +2432,9 @@ onUnmounted(() => {
|
|
|
height: 3px;
|
|
|
width: 4px;
|
|
|
}
|
|
|
+ &::-webkit-scrollbar-thumb:hover {
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
// 滚动条的可拖拽部分(滑块)
|
|
|
// .form::-webkit-scrollbar-thumb {
|
|
|
// background: #57b2ff;
|
|
|
@@ -2701,11 +2761,11 @@ onUnmounted(() => {
|
|
|
margin-left: 5px;
|
|
|
}
|
|
|
|
|
|
- :deep(.el-table__body .even) {
|
|
|
+ .el-table__body .even {
|
|
|
background-color: #fff;
|
|
|
}
|
|
|
|
|
|
- :deep(.el-table__body .odd) {
|
|
|
+ .el-table__body .odd {
|
|
|
background-color: rgba(240, 243, 247, 1);
|
|
|
}
|
|
|
|