fix: 冲突解决以及BUG修改
This commit is contained in:
commit
d78ce42578
@ -24,13 +24,13 @@ NODE_ENV = 'development'
|
||||
# VITE_API_URL = 'http://182.90.224.237:15551'
|
||||
# agjt
|
||||
# VITE_API_URL = 'http://42.180.188.17:9809' #生产环境
|
||||
# VITE_API_URL = 'http://42.180.188.17:11211' #测试环境
|
||||
VITE_API_URL = 'http://42.180.188.17:11211' #测试环境
|
||||
# VITE_API_URL = 'http://42.180.188.17:11211' #测试环境
|
||||
# VITE_API_URL = 'http://jxj.zhgdyun.com:19812'
|
||||
# 苏立信
|
||||
# VITE_API_URL = 'http://101.43.164.214:11111'
|
||||
# 中科安信
|
||||
VITE_API_URL = 'http://8.136.222.164:8808'
|
||||
# VITE_API_URL = 'http://8.136.222.164:8808'
|
||||
# 上传
|
||||
VITE_ULD_API_URL = 'http://192.168.34.155:8012/onlinePreview?url='
|
||||
|
||||
|
||||
@ -22,11 +22,11 @@ NODE_ENV = "production"
|
||||
# VITE_API_URL = 'http://182.90.224.237:15551'
|
||||
# agjt
|
||||
# VITE_API_URL = 'http://42.180.188.17:9809' #生产环境
|
||||
# VITE_API_URL = 'http://42.180.188.17:11211' #测试环境
|
||||
VITE_API_URL = 'http://42.180.188.17:11211' #测试环境
|
||||
# 苏立信
|
||||
# VITE_API_URL = 'http://101.43.164.214:11111'
|
||||
# 中科安信
|
||||
VITE_API_URL = 'http://8.136.222.164:8808'
|
||||
# VITE_API_URL = 'http://8.136.222.164:8808'
|
||||
|
||||
# 打包
|
||||
VITE_ULD_API_URL = 'http://jxj.zhgdyun.com:8012/onlinePreview?url='
|
||||
|
||||
937
package-lock.json
generated
937
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -35,8 +35,8 @@
|
||||
"dhtmlx-gantt": "^8.0.6",
|
||||
"driver.js": "^0.9.8",
|
||||
"echarts": "^4.9.0",
|
||||
"echarts-gl": "^2.0.9",
|
||||
"echarts-liquidfill": "^3.1.0",
|
||||
"echarts-gl": "^1.1.2",
|
||||
"echarts-liquidfill": "^2.0.6",
|
||||
"element-china-area-data": "^5.0.2",
|
||||
"element-plus": "^2.2.30",
|
||||
"ezuikit-js": "^7.7.8",
|
||||
|
||||
@ -9,11 +9,15 @@ export const getMemberJobStatusApi = (params: {}) => {
|
||||
};
|
||||
// 检查人
|
||||
export const getInspectManStatusApi = (params: {}) => {
|
||||
return http.post(BASEURL + `/xmgl/xzSecurityQualityInspectionRecord/statsByInspectMan`, params, { headers: { noLoading: true } });
|
||||
return http.post(BASEURL + `/xmgl/xzSecurityQualityInspectionRecord/statsByInspectMan`, params, {
|
||||
headers: { noLoading: true }
|
||||
});
|
||||
};
|
||||
// 按分包单位分析
|
||||
export const getEnterpriseStatusApi = (params: {}) => {
|
||||
return http.post(BASEURL + `/xmgl/xzSecurityQualityInspectionRecord/statsByEnterprise`, params, { headers: { noLoading: true } });
|
||||
return http.post(BASEURL + `/xmgl/xzSecurityQualityInspectionRecord/statsByEnterprise`, params, {
|
||||
headers: { noLoading: true }
|
||||
});
|
||||
};
|
||||
|
||||
// 危大工程弹窗
|
||||
@ -49,17 +53,20 @@ export const getProgressContentApi = (params: {}) => {
|
||||
return http.get(BASEURL + `/xmgl/xzTaskProgressContent/page`, params, { headers: { noLoading: true } });
|
||||
};
|
||||
|
||||
|
||||
// 风险统计弹窗
|
||||
// 顶部数据
|
||||
export const getStatisticsNumDataApi = (params: {}) => {
|
||||
return http.post(BASEURL + `/xmgl/xzSecurityQualityInspectionRecord/selectQualityStatisticsNum`, params, { headers: { noLoading: true } });
|
||||
return http.post(BASEURL + `/xmgl/xzSecurityQualityInspectionRecord/selectQualityStatisticsNum`, params, {
|
||||
headers: { noLoading: true }
|
||||
});
|
||||
};
|
||||
|
||||
// 安全隐患
|
||||
// 顶部数据
|
||||
export const getQualityStatisticsNumDataApi = (params: {}) => {
|
||||
return http.post(BASEURL + `/xmgl/xzSecurityQualityInspectionRecord/selectQualityStatisticsNumList`, params, { headers: { noLoading: true } });
|
||||
return http.post(BASEURL + `/xmgl/xzSecurityQualityInspectionRecord/selectQualityStatisticsNumList`, params, {
|
||||
headers: { noLoading: true }
|
||||
});
|
||||
};
|
||||
// 获取分包单位
|
||||
export const getProjectEnterpriseApi = (params: {}) => {
|
||||
@ -86,35 +93,41 @@ export const getAlarmTypeCountApi = (params: {}) => {
|
||||
};
|
||||
// 顶部数据分页接口
|
||||
export const getAlarmTypeCountPageApi = (params: {}) => {
|
||||
return http.post(BASEURL + `/xmgl/aiStatistic/selectAiAnalyseHardWareAlarmTypeCountPage`, params, { headers: { noLoading: true } });
|
||||
return http.post(BASEURL + `/xmgl/aiStatistic/selectAiAnalyseHardWareAlarmTypeCountPage`, params, {
|
||||
headers: { noLoading: true }
|
||||
});
|
||||
};
|
||||
|
||||
// centerTop底部按钮显示数据接口
|
||||
export const getStatsDirectorateBigScreenApi = (params: {}) => {
|
||||
return http.post(BASEURL + `/xmgl/xzSecurityQualityInspectionRecord/statsDirectorateBigScreen`, params, { headers: { noLoading: true } });
|
||||
export const getStatsDirectorateBigScreenApi = (params: {}, showLoading: boolean) => {
|
||||
return http.post(BASEURL + `/xmgl/xzSecurityQualityInspectionRecord/statsDirectorateBigScreen`, params, {
|
||||
headers: { noLoading: showLoading }
|
||||
});
|
||||
};
|
||||
// centerTop评分数据接口
|
||||
export const getStatScoreApi = (params: {}) => {
|
||||
return http.get(BASEURL + `/xmgl/xzSecurityQualityInspectionRecord/getStatScore`, params, { headers: { noLoading: true } });
|
||||
export const getStatScoreApi = (params: {}, showLoading: boolean) => {
|
||||
return http.get(BASEURL + `/xmgl/xzSecurityQualityInspectionRecord/getStatScore`, params, { headers: { noLoading: showLoading } });
|
||||
};
|
||||
|
||||
// 项目人员考勤
|
||||
// 出勤人员/考勤日环比
|
||||
export const getPersonTypeAndEduStatisticsApi = (params: {}) => {
|
||||
return http.post(BASEURL + `/xmgl/workerInfo/selectPersonTypeAndEduStatistics`, params, { headers: { noLoading: true } });
|
||||
export const getPersonTypeAndEduStatisticsApi = (params: {}, showLoading: boolean) => {
|
||||
return http.post(BASEURL + `/xmgl/workerInfo/selectPersonTypeAndEduStatistics`, params, {
|
||||
headers: { noLoading: showLoading }
|
||||
});
|
||||
};
|
||||
// 总包出勤情况分析
|
||||
export const queryAttendanceOfEachCompanyApi = (params: {}) => {
|
||||
return http.get(BASEURL + `/xmgl/workerAttendance/queryAttendanceOfEachCompany`, params, { headers: { noLoading: true } });
|
||||
export const queryAttendanceOfEachCompanyApi = (params: {}, showLoading: boolean) => {
|
||||
return http.get(BASEURL + `/xmgl/workerAttendance/queryAttendanceOfEachCompany`, params, {
|
||||
headers: { noLoading: showLoading }
|
||||
});
|
||||
};
|
||||
// 进度情况分析
|
||||
// 项目总进度/项目剩余天数
|
||||
export const getCountTaskProgressApi = (params: {}) => {
|
||||
return http.post(BASEURL + `/xmgl/xzTaskProgress/countTaskProgress`, params, { headers: { noLoading: true } });
|
||||
export const getCountTaskProgressApi = (params: {}, showLoading: boolean) => {
|
||||
return http.post(BASEURL + `/xmgl/xzTaskProgress/countTaskProgress`, params, { headers: { noLoading: showLoading } });
|
||||
};
|
||||
// 总包进度列表
|
||||
export const queryCountEnterpriseApi = (params: {}) => {
|
||||
return http.post(BASEURL + `/xmgl/xzTaskProgressTotal/countEnterprise`, params, { headers: { noLoading: true } });
|
||||
export const queryCountEnterpriseApi = (params: {}, showLoading: boolean) => {
|
||||
return http.post(BASEURL + `/xmgl/xzTaskProgressTotal/countEnterprise`, params, { headers: { noLoading: showLoading } });
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -3,8 +3,8 @@ import http from "@/api";
|
||||
const BASEURL = import.meta.env.VITE_API_URL;
|
||||
|
||||
// 项目信息
|
||||
export const getProjectDetail = (params: {}) => {
|
||||
return http.post(BASEURL + `/xmgl/project/getProjectInfoBySn`, params, { headers: { noLoading: true } });
|
||||
export const getProjectDetail = (params: {}, showLoading: boolean) => {
|
||||
return http.post(BASEURL + `/xmgl/project/getProjectInfoBySn`, params, { headers: { noLoading: showLoading } });
|
||||
};
|
||||
|
||||
// 统计企业下项目各人员统计
|
||||
@ -40,13 +40,13 @@ export const eidtProjectShowConfig = (params: {}) => {
|
||||
};
|
||||
|
||||
// 查询效果图
|
||||
export const queryBySnData = (params: {}) => {
|
||||
return http.post(BASEURL + `/xmgl/projectShowConfig/queryBySn`, params, { headers: { noLoading: true } });
|
||||
export const queryBySnData = (params: {}, showLoading: boolean) => {
|
||||
return http.post(BASEURL + `/xmgl/projectShowConfig/queryBySn`, params, { headers: { noLoading: showLoading } });
|
||||
};
|
||||
|
||||
// 里程碑字典
|
||||
export const getStageOption = (params: {}) => {
|
||||
return http.get(BASEURL + `/xmgl/dictionaryItem/list`, params, { headers: { noLoading: true } });
|
||||
export const getStageOption = (params: {}, showLoading: boolean) => {
|
||||
return http.get(BASEURL + `/xmgl/dictionaryItem/list`, params, { headers: { noLoading: showLoading } });
|
||||
};
|
||||
|
||||
//甘特图-列表查询任务进度
|
||||
@ -55,12 +55,16 @@ export const getParentChildTaskListApi = (params: {}) => {
|
||||
};
|
||||
|
||||
// 隐患统计智能分析
|
||||
export const getSelectQualityStatisticsNumApi = (params: {}) => {
|
||||
return http.post(BASEURL + `/xmgl/xzSecurityQualityInspectionRecord/selectQualityStatisticsNum`, params);
|
||||
export const getSelectQualityStatisticsNumApi = (params: {}, showLoading: boolean) => {
|
||||
return http.post(BASEURL + `/xmgl/xzSecurityQualityInspectionRecord/selectQualityStatisticsNum`, params, {
|
||||
headers: { noLoading: showLoading }
|
||||
});
|
||||
};
|
||||
|
||||
export const getCountDangerLevelApi = (params: {}) => {
|
||||
return http.post(BASEURL + `/xmgl/xzSecurityQualityInspectionRecord/countDangerLevel`, params);
|
||||
export const getCountDangerLevelApi = (params: {}, showLoading: boolean) => {
|
||||
return http.post(BASEURL + `/xmgl/xzSecurityQualityInspectionRecord/countDangerLevel`, params, {
|
||||
headers: { noLoading: showLoading }
|
||||
});
|
||||
};
|
||||
|
||||
// 分包单位统计
|
||||
@ -88,36 +92,42 @@ export const getXzSecurityQualitylnspectionRecordSuperviseApi = (params: {}) =>
|
||||
};
|
||||
|
||||
// 隐患智能分析
|
||||
export const getNoticeListApi = (params: {}) => {
|
||||
return http.post(BASEURL + `/xmgl/notice/list`, params);
|
||||
export const getNoticeListApi = (params: {}, showLoading: boolean) => {
|
||||
return http.post(BASEURL + `/xmgl/notice/list`, params, { headers: { noLoading: showLoading } });
|
||||
};
|
||||
|
||||
// 安全问题统计数据|列表
|
||||
export const getInspectionSelectQualityApi = (params: {}) => {
|
||||
return http.post(BASEURL + `/xmgl/xzSecurityQualityInspectionRecord/selectQualityStatisticsNum`, params);
|
||||
export const getInspectionSelectQualityApi = (params: {}, showLoading: boolean) => {
|
||||
return http.post(BASEURL + `/xmgl/xzSecurityQualityInspectionRecord/selectQualityStatisticsNum`, params, {
|
||||
headers: { noLoading: showLoading }
|
||||
});
|
||||
};
|
||||
export const getInspectionSelectQualityListApi = (params: {}) => {
|
||||
return http.post(BASEURL + `/xmgl/xzSecurityQualityInspectionRecord/selectQualityStatisticsNumList`, params);
|
||||
};
|
||||
|
||||
// 风险走势图
|
||||
export const getInspectionRiskChartApi = (params: {}) => {
|
||||
return http.post(BASEURL + `/xmgl/xzSecurityQualityInspectionRecord/riskChart`, params);
|
||||
export const getInspectionRiskChartApi = (params: {}, showLoading: boolean) => {
|
||||
return http.post(BASEURL + `/xmgl/xzSecurityQualityInspectionRecord/riskChart`, params, {
|
||||
headers: { noLoading: showLoading }
|
||||
});
|
||||
};
|
||||
|
||||
// 特殊作业
|
||||
export const getSpecialCountAllSpecialApi = (params: {}) => {
|
||||
return http.post(BASEURL + `/xmgl/xzSpecial/countAllSpecial`, params);
|
||||
export const getSpecialCountAllSpecialApi = (params: {}, showLoading: boolean) => {
|
||||
return http.post(BASEURL + `/xmgl/xzSpecial/countAllSpecial`, params, { headers: { noLoading: showLoading } });
|
||||
};
|
||||
|
||||
// 应急类型统计(今日)
|
||||
export const getCountEmergencyTypedApi = (params: {}) => {
|
||||
return http.post(BASEURL + `/xmgl/xzEmergencyRecord/countEmergencyTyped`, params);
|
||||
export const getCountEmergencyTypedApi = (params: {}, showLoading: boolean) => {
|
||||
return http.post(BASEURL + `/xmgl/xzEmergencyRecord/countEmergencyTyped`, params, { headers: { noLoading: showLoading } });
|
||||
};
|
||||
|
||||
// 应急处置(近七日)
|
||||
export const getCountAlarmNumByEnterpriseApi = (params: {}) => {
|
||||
return http.post(BASEURL + `/xmgl/xzEmergencyRecord/countAlarmNumByEnterprise`, params);
|
||||
export const getCountAlarmNumByEnterpriseApi = (params: {}, showLoading: boolean) => {
|
||||
return http.post(BASEURL + `/xmgl/xzEmergencyRecord/countAlarmNumByEnterprise`, params, {
|
||||
headers: { noLoading: showLoading }
|
||||
});
|
||||
};
|
||||
|
||||
// 获取应急物资
|
||||
|
||||
@ -20,6 +20,6 @@ export const getSafeHatSessionApi = (params: {}) => {
|
||||
};
|
||||
|
||||
// 现场视频
|
||||
export const selectLiveVideoListApi = (params: {}) => {
|
||||
return http.get(BASEURL + `/xmgl/project/getProjectExtendInfo`, params);
|
||||
export const selectLiveVideoListApi = (params: {}, showLoading: boolean) => {
|
||||
return http.get(BASEURL + `/xmgl/project/getProjectExtendInfo`, params, { headers: { noLoading: showLoading } });
|
||||
};
|
||||
|
||||
@ -28,7 +28,7 @@ export const BASE_IMAGE_URL = import.meta.env.VITE_BASE_IMAGE_URL;
|
||||
// export const COMPANY: string = "zsbf"; //中水北方
|
||||
// export const COMPANY: string = "as"; //鞍山项目
|
||||
// export const COMPANY: string = "agjt"; //鞍钢集团
|
||||
// export const COMPANY: string = "agjtCommand"; //鞍钢集团指挥部大屏
|
||||
export const COMPANY: string = "agjtCommand"; //鞍钢集团指挥部大屏
|
||||
// export const COMPANY: string = "slx"; //苏立信项目
|
||||
// export const COMPANY: string = "hfqc"; //合肥启程项目
|
||||
// export const COMPANY: string = "jsyc"; // 江苏盐城项目
|
||||
@ -37,4 +37,4 @@ export const BASE_IMAGE_URL = import.meta.env.VITE_BASE_IMAGE_URL;
|
||||
// export const COMPANY: string = "phmw"; //鄱湖美湾医疗、医美产业集群项目 (需要去src\routers\modules\staticRouter.ts更换首页)
|
||||
// export const COMPANY: string = "xjnb"; // 新建宁波项目
|
||||
// export const COMPANY: string = "ahsa"; // 安徽水安项目
|
||||
export const COMPANY: string = "zkax"; // 中科安信项目
|
||||
// export const COMPANY: string = "zkax"; // 中科安信项目
|
||||
|
||||
@ -24,8 +24,8 @@ export const staticRouter: RouteRecordRaw[] = [
|
||||
{
|
||||
path: "/large",
|
||||
name: "大屏",
|
||||
component: () => import("@/views/sevenLargeScreen/indexL.vue"), //七参数标准版
|
||||
// component: () => import("@/views/commandScreen/indexCommand.vue"), //指挥部大屏
|
||||
// component: () => import("@/views/sevenLargeScreen/indexL.vue"), //七参数标准版
|
||||
component: () => import("@/views/commandScreen/indexCommand.vue"), //指挥部大屏
|
||||
// component: () => import("@/views/sevenLargeScreen/indexL_syhy.vue"), // 只有一级路由(盘锦、嘉兴、鄱湖美湾医疗项目需切换至该首页)
|
||||
children: [
|
||||
{
|
||||
|
||||
@ -159,10 +159,10 @@ let listData = ref([
|
||||
// { header: 'AI报警', type: 3, content: '1#塔吊报警频次较上周增长60%,塔吊间各个设之间的衔接进行全面检查,以防止...', startTime: '2024-04-01', endTime: "2024-04-20" },
|
||||
]);
|
||||
|
||||
const getNoticeList = async () => {
|
||||
const getNoticeList = async (showLoading: boolean) => {
|
||||
// const res: any = await getNoticeListApi({ projectSn: store.sn, type: 10, pageNo: 1, pageSize: 99999, });
|
||||
// const res: any = await getNoticeListApi({ isBigScreen: 1, type: 32 }); // 公告
|
||||
const res: any = await getNoticeListApi({ isBigScreen: 1, type: 31 });
|
||||
const res: any = await getNoticeListApi({ isBigScreen: 1, type: 31 }, showLoading);
|
||||
|
||||
console.log("隐患智能分析", res);
|
||||
listData.value = res.result.records;
|
||||
@ -666,11 +666,11 @@ function getMessCountEchart() {
|
||||
});
|
||||
}
|
||||
|
||||
const getMessCountEchartType = async () => {
|
||||
const getMessCountEchartType = async (showLoading: boolean) => {
|
||||
const res: any = await getCountEmergencyTypedApi({
|
||||
projectSn: store.sn,
|
||||
type: 1
|
||||
});
|
||||
},showLoading);
|
||||
console.log("应急统计图", res);
|
||||
messCountType.value.data = res.result.data.map((item: any) => {
|
||||
return {
|
||||
@ -690,11 +690,11 @@ const getMessCountEchartType = async () => {
|
||||
getMessCountEchart();
|
||||
};
|
||||
|
||||
const getCountAlarmNumByEnterprise = async () => {
|
||||
const getCountAlarmNumByEnterprise = async (showLoading: boolean) => {
|
||||
const res: any = await getCountAlarmNumByEnterpriseApi({
|
||||
projectSn: store.sn,
|
||||
type: 1
|
||||
});
|
||||
},showLoading);
|
||||
dataListAlarm.value = res.result.reduce((prev: any[], item: any) => {
|
||||
console.log("1111", prev);
|
||||
item.list.forEach((ele: any) => {
|
||||
@ -723,16 +723,16 @@ const getCountAlarmNumByEnterprise = async () => {
|
||||
console.log("应急处置统计图", res);
|
||||
getMessEchart();
|
||||
};
|
||||
const setIntervalFn = () => {
|
||||
getNoticeList();
|
||||
getCountAlarmNumByEnterprise();
|
||||
getMessCountEchartType();
|
||||
const setIntervalFn = (showLoading: boolean) => {
|
||||
getNoticeList(showLoading);
|
||||
getCountAlarmNumByEnterprise(showLoading);
|
||||
getMessCountEchartType(showLoading);
|
||||
};
|
||||
onMounted(async () => {
|
||||
setIntervalFn();
|
||||
setIntervalFn(false);
|
||||
// 定时三十秒刷新
|
||||
setInterval(() => {
|
||||
setIntervalFn();
|
||||
setIntervalFn(true);
|
||||
}, 30000);
|
||||
});
|
||||
</script>
|
||||
|
||||
@ -2,35 +2,40 @@
|
||||
<div class="centerTop">
|
||||
<div class="top-content">
|
||||
<div class="content-div aq">
|
||||
<div class="circle-box">
|
||||
<!-- <div class="circle-box">
|
||||
<span>{{ statScore.hiddenDangerScore }}分</span>
|
||||
</div>
|
||||
<span>安全隐患治理</span>
|
||||
</div> -->
|
||||
<div id="waterAq" style="width:80%;height:80%;transform:translateY(-25px)"></div>
|
||||
<span style="transform:translateY(-50px)">安全隐患治理</span>
|
||||
</div>
|
||||
<div class="content-div wd">
|
||||
<div class="circle-box">
|
||||
<!-- <div class="circle-box">
|
||||
<span>{{ statScore.dangerEngScore }}分</span>
|
||||
</div>
|
||||
<span>危大工程</span>
|
||||
</div> -->
|
||||
<div id="waterWd" style="width:80%;height:80%;transform:translateY(-25px)"></div>
|
||||
<span style="transform:translateY(-50px)">危大工程</span>
|
||||
</div>
|
||||
<div class="content-div jy">
|
||||
<div class="circle-box">
|
||||
<!-- <div class="circle-box"> -->
|
||||
<!-- <span>{{statScore}}分</span> -->
|
||||
<span>25分</span>
|
||||
</div>
|
||||
<span>安全教育</span>
|
||||
<!-- <span>25分</span>
|
||||
</div> -->
|
||||
<div id="waterJy" style="width:80%;height:80%;transform:translateY(-25px)"></div>
|
||||
<span style="transform:translateY(-50px)">安全教育</span>
|
||||
</div>
|
||||
<div class="content-div fx">
|
||||
<div class="circle-box">
|
||||
<!-- <div class="circle-box">
|
||||
<span>{{ statScore.riskScore }}分</span>
|
||||
</div>
|
||||
<span>风险管理</span>
|
||||
</div> -->
|
||||
<div id="waterFx" style="width:80%;height:80%;transform:translateY(-25px)"></div>
|
||||
<span style="transform:translateY(-50px)">风险管理</span>
|
||||
</div>
|
||||
<div class="content-div zn">
|
||||
<div class="circle-box">
|
||||
<!-- <div class="circle-box">
|
||||
<span>{{ statScore.aiScore }}分</span>
|
||||
</div>
|
||||
<span>AI警报</span>
|
||||
</div> -->
|
||||
<div id="waterZn" style="width:80%;height:80%;transform:translateY(-25px)"></div>
|
||||
<span style="transform:translateY(-50px)">AI警报</span>
|
||||
</div>
|
||||
<div class="count-div">
|
||||
<div class="count-div-item">
|
||||
@ -107,6 +112,8 @@ import Card from "@/components/card.vue";
|
||||
import { ref, onMounted, watch } from "vue";
|
||||
import { GlobalStore } from "@/stores";
|
||||
import { ElMessage } from "element-plus";
|
||||
import * as echarts from "echarts";
|
||||
import 'echarts-liquidfill';
|
||||
|
||||
import { editProjectInfo, eidtProjectShowConfig, queryBySnData } from "@/api/modules/projectOverview";
|
||||
import { getStatsDirectorateBigScreenApi, getStatScoreApi } from "@/api/modules/agjtCommandApi";
|
||||
@ -141,6 +148,401 @@ watch(
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
//绘画安全隐患治理水波图
|
||||
function drawAqWater(){
|
||||
type EChartsOption = echarts.EChartsOption;
|
||||
var chartDom = document.getElementById("waterAq")!;
|
||||
var myChart = echarts.init(chartDom);
|
||||
var option: EChartsOption;
|
||||
// 配置项
|
||||
option = {
|
||||
series: [
|
||||
{
|
||||
type: "liquidFill", //设置图表类型
|
||||
// data: [0.6], // 设置水位,值为0到1之间
|
||||
data:[0.001,0.001,0.001,0.001,0.001], //设置水位,可以写多个值,用来设置多个水位
|
||||
// data: [
|
||||
// 0.2,
|
||||
// {
|
||||
// value: 0.3, // 图形数据写法二
|
||||
// direction: "left", // 水波运动方向
|
||||
// itemStyle: {
|
||||
// color: "blue", // 水波颜色
|
||||
// opacity: 0.8, // 透明度
|
||||
// },
|
||||
// emphasis: {
|
||||
// itemStyle: {
|
||||
// color: "lightblue", // 鼠标移入时的水波颜色
|
||||
// opacity: 1, // 鼠标移入时的透明度
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
// ],
|
||||
waveAnimation:true,//是否开启水波动画,
|
||||
amplitude: 15, // 设置振幅,值越大波形越尖
|
||||
waveLength:150,//水波的长度,值越大水波越长
|
||||
shape: "circle", //设置形状,可选为'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'
|
||||
direction: "right", //设置方向,可选为'left', 'right', 'top', 'bottom',
|
||||
radius: "60%", // 设置图的大小 默认为50%
|
||||
// color:['#1E90FF','#191970','#000080','#6495ED','#0000FF'] ,// 设置颜色,可以设置多个值,用来设置多个水位
|
||||
color:['#156ACF'] ,// 设置颜色,可以设置多个值,用来设置多个水位
|
||||
center:['50%','50%'],//中心点的位置1E90FF
|
||||
// animationEasing:'linear',
|
||||
animationEasing:'easeOut',
|
||||
outline: {
|
||||
borderDistance: 4, // 外边框距离
|
||||
itemStyle: {
|
||||
borderWidth: 2, // 外边框宽度
|
||||
borderColor: "#156ACF", // 外边框颜色
|
||||
},
|
||||
},
|
||||
// // 水波样式
|
||||
// itemStyle:{
|
||||
// opacity:0.5, // 透明度
|
||||
// color:'red', // 统一配置水波的颜色
|
||||
// shadowBlur:10, // 水波阴影大小
|
||||
// shadowColor:'red', // 阴影颜色
|
||||
// shadowOffsetX:10, // 阴影水平偏移量
|
||||
// shadowOffsetY:10, // 阴影竖直偏移量
|
||||
// },
|
||||
backgroundStyle: {
|
||||
color: "rgba(0,0,0,0)", // 背景色
|
||||
},
|
||||
label: {
|
||||
normal: {
|
||||
formatter: function(){
|
||||
return statScore.value.hiddenDangerScore + "分"
|
||||
},
|
||||
textStyle: {
|
||||
// color: "#6495ED", //蓝色
|
||||
color: "#fff",
|
||||
insideColor: "#fff",
|
||||
fontSize: 16,
|
||||
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
// 使用配置项设置图表
|
||||
myChart.setOption(option);
|
||||
}
|
||||
//绘画危大工程水波图
|
||||
function drawWdWater(){
|
||||
type EChartsOption = echarts.EChartsOption;
|
||||
var chartDom = document.getElementById("waterWd")!;
|
||||
var myChart = echarts.init(chartDom);
|
||||
var option: EChartsOption;
|
||||
// 配置项
|
||||
option = {
|
||||
series: [
|
||||
{
|
||||
type: "liquidFill", //设置图表类型
|
||||
// data: [0.6], // 设置水位,值为0到1之间
|
||||
data:[0.001,0.001,0.001,0.001,0.001], //设置水位,可以写多个值,用来设置多个水位
|
||||
// data: [
|
||||
// 0.2,
|
||||
// {
|
||||
// value: 0.3, // 图形数据写法二
|
||||
// direction: "left", // 水波运动方向
|
||||
// itemStyle: {
|
||||
// color: "blue", // 水波颜色
|
||||
// opacity: 0.8, // 透明度
|
||||
// },
|
||||
// emphasis: {
|
||||
// itemStyle: {
|
||||
// color: "lightblue", // 鼠标移入时的水波颜色
|
||||
// opacity: 1, // 鼠标移入时的透明度
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
// ],
|
||||
waveAnimation:true,//是否开启水波动画,
|
||||
amplitude: 15, // 设置振幅,值越大波形越尖
|
||||
waveLength:150,//水波的长度,值越大水波越长
|
||||
shape: "circle", //设置形状,可选为'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'
|
||||
direction: "right", //设置方向,可选为'left', 'right', 'top', 'bottom',
|
||||
radius: "60%", // 设置图的大小 默认为50%
|
||||
// color:['#1E90FF','#191970','#000080','#6495ED','#0000FF'] ,// 设置颜色,可以设置多个值,用来设置多个水位
|
||||
color:['#156ACF'] ,// 设置颜色,可以设置多个值,用来设置多个水位
|
||||
center:['50%','50%'],//中心点的位置1E90FF
|
||||
// animationEasing:'linear',
|
||||
animationEasing:'easeOut',
|
||||
outline: {
|
||||
borderDistance: 4, // 外边框距离
|
||||
itemStyle: {
|
||||
borderWidth: 2, // 外边框宽度
|
||||
borderColor: "#156ACF", // 外边框颜色
|
||||
},
|
||||
},
|
||||
// // 水波样式
|
||||
// itemStyle:{
|
||||
// opacity:0.5, // 透明度
|
||||
// color:'red', // 统一配置水波的颜色
|
||||
// shadowBlur:10, // 水波阴影大小
|
||||
// shadowColor:'red', // 阴影颜色
|
||||
// shadowOffsetX:10, // 阴影水平偏移量
|
||||
// shadowOffsetY:10, // 阴影竖直偏移量
|
||||
// },
|
||||
backgroundStyle: {
|
||||
color: "rgba(0,0,0,0)", // 背景色
|
||||
},
|
||||
label: {
|
||||
normal: {
|
||||
formatter: function(){
|
||||
return statScore.value.dangerEngScore + "分"
|
||||
},
|
||||
textStyle: {
|
||||
color: "#fff",
|
||||
insideColor: "#fff",
|
||||
fontSize: 16,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
// 使用配置项设置图表
|
||||
myChart.setOption(option);
|
||||
}
|
||||
//绘画安全隐患治理水波图
|
||||
function drawJyWater(){
|
||||
type EChartsOption = echarts.EChartsOption;
|
||||
var chartDom = document.getElementById("waterJy")!;
|
||||
var myChart = echarts.init(chartDom);
|
||||
var option: EChartsOption;
|
||||
// 配置项
|
||||
option = {
|
||||
series: [
|
||||
{
|
||||
type: "liquidFill", //设置图表类型
|
||||
// data: [0.6], // 设置水位,值为0到1之间
|
||||
data:[0.001,0.001,0.001,0.001,0.001], //设置水位,可以写多个值,用来设置多个水位
|
||||
// data: [
|
||||
// 0.2,
|
||||
// {
|
||||
// value: 0.3, // 图形数据写法二
|
||||
// direction: "left", // 水波运动方向
|
||||
// itemStyle: {
|
||||
// color: "blue", // 水波颜色
|
||||
// opacity: 0.8, // 透明度
|
||||
// },
|
||||
// emphasis: {
|
||||
// itemStyle: {
|
||||
// color: "lightblue", // 鼠标移入时的水波颜色
|
||||
// opacity: 1, // 鼠标移入时的透明度
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
// ],
|
||||
waveAnimation:true,//是否开启水波动画,
|
||||
amplitude: 15, // 设置振幅,值越大波形越尖
|
||||
waveLength:150,//水波的长度,值越大水波越长
|
||||
shape: "circle", //设置形状,可选为'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'
|
||||
direction: "right", //设置方向,可选为'left', 'right', 'top', 'bottom',
|
||||
radius: "60%", // 设置图的大小 默认为50%
|
||||
// color:['#1E90FF','#191970','#000080','#6495ED','#0000FF'] ,// 设置颜色,可以设置多个值,用来设置多个水位
|
||||
color:['#156ACF'] ,// 设置颜色,可以设置多个值,用来设置多个水位
|
||||
center:['50%','50%'],//中心点的位置1E90FF
|
||||
// animationEasing:'linear',
|
||||
animationEasing:'easeOut',
|
||||
outline: {
|
||||
borderDistance: 4, // 外边框距离
|
||||
itemStyle: {
|
||||
borderWidth: 2, // 外边框宽度
|
||||
borderColor: "#156ACF", // 外边框颜色
|
||||
},
|
||||
},
|
||||
// // 水波样式
|
||||
// itemStyle:{
|
||||
// opacity:0.5, // 透明度
|
||||
// color:'red', // 统一配置水波的颜色
|
||||
// shadowBlur:10, // 水波阴影大小
|
||||
// shadowColor:'red', // 阴影颜色
|
||||
// shadowOffsetX:10, // 阴影水平偏移量
|
||||
// shadowOffsetY:10, // 阴影竖直偏移量
|
||||
// },
|
||||
backgroundStyle: {
|
||||
color: "rgba(0,0,0,0)", // 背景色
|
||||
},
|
||||
label: {
|
||||
normal: {
|
||||
formatter: function(){
|
||||
// return statScore.value + "分"
|
||||
return "25分"
|
||||
},
|
||||
textStyle: {
|
||||
color: "#fff",
|
||||
insideColor: "#fff",
|
||||
fontSize: 16,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
// 使用配置项设置图表
|
||||
myChart.setOption(option);
|
||||
}
|
||||
//绘画安全隐患治理水波图
|
||||
function drawFxWater(){
|
||||
type EChartsOption = echarts.EChartsOption;
|
||||
var chartDom = document.getElementById("waterFx")!;
|
||||
var myChart = echarts.init(chartDom);
|
||||
var option: EChartsOption;
|
||||
// 配置项
|
||||
option = {
|
||||
series: [
|
||||
{
|
||||
type: "liquidFill", //设置图表类型
|
||||
// data: [0.6], // 设置水位,值为0到1之间
|
||||
data:[0.001,0.001,0.001,0.001,0.001], //设置水位,可以写多个值,用来设置多个水位
|
||||
// data: [
|
||||
// 0.2,
|
||||
// {
|
||||
// value: 0.3, // 图形数据写法二
|
||||
// direction: "left", // 水波运动方向
|
||||
// itemStyle: {
|
||||
// color: "blue", // 水波颜色
|
||||
// opacity: 0.8, // 透明度
|
||||
// },
|
||||
// emphasis: {
|
||||
// itemStyle: {
|
||||
// color: "lightblue", // 鼠标移入时的水波颜色
|
||||
// opacity: 1, // 鼠标移入时的透明度
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
// ],
|
||||
waveAnimation:true,//是否开启水波动画,
|
||||
amplitude: 15, // 设置振幅,值越大波形越尖
|
||||
waveLength:150,//水波的长度,值越大水波越长
|
||||
shape: "circle", //设置形状,可选为'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'
|
||||
direction: "right", //设置方向,可选为'left', 'right', 'top', 'bottom',
|
||||
radius: "60%", // 设置图的大小 默认为50%
|
||||
// color:['#1E90FF','#191970','#000080','#6495ED','#0000FF'] ,// 设置颜色,可以设置多个值,用来设置多个水位
|
||||
color:['#156ACF'] ,// 设置颜色,可以设置多个值,用来设置多个水位
|
||||
center:['50%','50%'],//中心点的位置1E90FF
|
||||
// animationEasing:'linear',
|
||||
animationEasing:'easeOut',
|
||||
outline: {
|
||||
borderDistance: 4, // 外边框距离
|
||||
itemStyle: {
|
||||
borderWidth: 2, // 外边框宽度
|
||||
borderColor: "#156ACF", // 外边框颜色
|
||||
},
|
||||
},
|
||||
// // 水波样式
|
||||
// itemStyle:{
|
||||
// opacity:0.5, // 透明度
|
||||
// color:'red', // 统一配置水波的颜色
|
||||
// shadowBlur:10, // 水波阴影大小
|
||||
// shadowColor:'red', // 阴影颜色
|
||||
// shadowOffsetX:10, // 阴影水平偏移量
|
||||
// shadowOffsetY:10, // 阴影竖直偏移量
|
||||
// },
|
||||
backgroundStyle: {
|
||||
color: "rgba(0,0,0,0)", // 背景色
|
||||
},
|
||||
label: {
|
||||
normal: {
|
||||
formatter: function(){
|
||||
return statScore.value.riskScore + "分"
|
||||
},
|
||||
textStyle: {
|
||||
color: "#fff",
|
||||
insideColor: "#fff",
|
||||
fontSize: 16,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
// 使用配置项设置图表
|
||||
myChart.setOption(option);
|
||||
}
|
||||
//绘画安全隐患治理水波图
|
||||
function drawZnWater(){
|
||||
type EChartsOption = echarts.EChartsOption;
|
||||
var chartDom = document.getElementById("waterZn")!;
|
||||
var myChart = echarts.init(chartDom);
|
||||
var option: EChartsOption;
|
||||
// 配置项
|
||||
option = {
|
||||
series: [
|
||||
{
|
||||
type: "liquidFill", //设置图表类型
|
||||
// data: [0.6], // 设置水位,值为0到1之间
|
||||
data:[0.001,0.001,0.001,0.001,0.001], //设置水位,可以写多个值,用来设置多个水位
|
||||
// data: [
|
||||
// 0.2,
|
||||
// {
|
||||
// value: 0.3, // 图形数据写法二
|
||||
// direction: "left", // 水波运动方向
|
||||
// itemStyle: {
|
||||
// color: "blue", // 水波颜色
|
||||
// opacity: 0.8, // 透明度
|
||||
// },
|
||||
// emphasis: {
|
||||
// itemStyle: {
|
||||
// color: "lightblue", // 鼠标移入时的水波颜色
|
||||
// opacity: 1, // 鼠标移入时的透明度
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
// ],
|
||||
waveAnimation:true,//是否开启水波动画,
|
||||
amplitude: 15, // 设置振幅,值越大波形越尖
|
||||
waveLength:150,//水波的长度,值越大水波越长
|
||||
shape: "circle", //设置形状,可选为'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'
|
||||
direction: "right", //设置方向,可选为'left', 'right', 'top', 'bottom',
|
||||
radius: "60%", // 设置图的大小 默认为50%
|
||||
// color:['#1E90FF','#191970','#000080','#6495ED','#0000FF'] ,// 设置颜色,可以设置多个值,用来设置多个水位
|
||||
color:['#156ACF'] ,// 设置颜色,可以设置多个值,用来设置多个水位
|
||||
center:['50%','50%'],//中心点的位置1E90FF
|
||||
// animationEasing:'linear',
|
||||
animationEasing:'easeOut',
|
||||
outline: {
|
||||
borderDistance: 4, // 外边框距离
|
||||
itemStyle: {
|
||||
borderWidth: 2, // 外边框宽度
|
||||
borderColor: "#156ACF", // 外边框颜色
|
||||
},
|
||||
},
|
||||
// // 水波样式
|
||||
// itemStyle:{
|
||||
// opacity:0.5, // 透明度
|
||||
// color:'red', // 统一配置水波的颜色
|
||||
// shadowBlur:10, // 水波阴影大小
|
||||
// shadowColor:'red', // 阴影颜色
|
||||
// shadowOffsetX:10, // 阴影水平偏移量
|
||||
// shadowOffsetY:10, // 阴影竖直偏移量
|
||||
// },
|
||||
backgroundStyle: {
|
||||
color: "rgba(0,0,0,0)", // 背景色
|
||||
},
|
||||
label: {
|
||||
normal: {
|
||||
formatter: function(){
|
||||
return statScore.value.aiScore + "分"
|
||||
},
|
||||
textStyle: {
|
||||
color: "#fff",
|
||||
insideColor: "#fff",
|
||||
fontSize: 16,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
// 使用配置项设置图表
|
||||
myChart.setOption(option);
|
||||
}
|
||||
|
||||
//效果图
|
||||
const picUrl = ref("" as any);
|
||||
|
||||
@ -164,10 +566,13 @@ let topText = ref([
|
||||
{ id: 2, title: "宣传视频", isActive: false },
|
||||
{ id: 3, title: "效果图", isActive: false }
|
||||
]);
|
||||
const getVideoList = async () => {
|
||||
let res: any = await selectLiveVideoListApi({
|
||||
projectSn: store.sn
|
||||
});
|
||||
const getVideoList = async (showLoading: boolean) => {
|
||||
let res: any = await selectLiveVideoListApi(
|
||||
{
|
||||
projectSn: store.sn
|
||||
},
|
||||
showLoading
|
||||
);
|
||||
console.log(res, "445566");
|
||||
if (res.result && res.result.extend1) {
|
||||
videoList.value = JSON.parse(res.result.extend1).result.videoList;
|
||||
@ -188,8 +593,8 @@ const getVideoList = async () => {
|
||||
};
|
||||
let statsDirectorateBigScreen = ref({} as any);
|
||||
//获取centerTop底部按钮显示数据
|
||||
const getStatsDirectorateBigScreen = async () => {
|
||||
const res = await getStatsDirectorateBigScreenApi({ projectSn: store.sn });
|
||||
const getStatsDirectorateBigScreen = async (showLoading: boolean) => {
|
||||
const res = await getStatsDirectorateBigScreenApi({ projectSn: store.sn }, showLoading);
|
||||
statsDirectorateBigScreen.value = res.result;
|
||||
};
|
||||
let statScore = ref({
|
||||
@ -201,10 +606,16 @@ let statScore = ref({
|
||||
lastMonthTotal: 0
|
||||
} as any);
|
||||
//获取centerTop底部按钮显示数据
|
||||
const getStatScore = async () => {
|
||||
const res = await getStatScoreApi({ projectSn: store.sn });
|
||||
const getStatScore = async (showLoading: boolean) => {
|
||||
const res = await getStatScoreApi({ projectSn: store.sn }, showLoading);
|
||||
console.log("获取项目信息6666666666666666666666666666666666", res);
|
||||
statScore.value = res.result;
|
||||
|
||||
drawAqWater()
|
||||
drawWdWater()
|
||||
drawJyWater()
|
||||
drawFxWater()
|
||||
drawZnWater()
|
||||
};
|
||||
|
||||
function boxStyle(item: any) {
|
||||
@ -254,11 +665,14 @@ const uploadSuccess = () => {
|
||||
});
|
||||
};
|
||||
// 查询效果图
|
||||
function getQueryBySnData() {
|
||||
queryBySnData({
|
||||
projectSn: store.sn,
|
||||
showType: 3
|
||||
}).then((res: any) => {
|
||||
function getQueryBySnData(showLoading: boolean) {
|
||||
queryBySnData(
|
||||
{
|
||||
projectSn: store.sn,
|
||||
showType: 3
|
||||
},
|
||||
showLoading
|
||||
).then((res: any) => {
|
||||
console.log(res, "效果图");
|
||||
if (res.result) {
|
||||
picUrl.value = res.result.configValue;
|
||||
@ -280,17 +694,17 @@ function saveOrDeleteVideo(url) {
|
||||
defineExpose({
|
||||
getQueryBySnData
|
||||
});
|
||||
const setIntervalFn = () => {
|
||||
getVideoList();
|
||||
getQueryBySnData();
|
||||
getStatsDirectorateBigScreen();
|
||||
getStatScore();
|
||||
const setIntervalFn = (showLoading: boolean) => {
|
||||
getVideoList(showLoading);
|
||||
getQueryBySnData(showLoading);
|
||||
getStatsDirectorateBigScreen(showLoading);
|
||||
getStatScore(showLoading);
|
||||
};
|
||||
onMounted(async () => {
|
||||
setIntervalFn();
|
||||
setIntervalFn(false);
|
||||
// 定时三十秒刷新
|
||||
setInterval(() => {
|
||||
setIntervalFn();
|
||||
setIntervalFn(true);
|
||||
}, 30000);
|
||||
});
|
||||
</script>
|
||||
|
||||
@ -159,10 +159,13 @@ let totalPerson = ref("" as any);
|
||||
//考勤日环比
|
||||
let totalPersonRhbRatio = ref("" as any);
|
||||
//获取出勤人员数据/考勤日环比
|
||||
const getPersonTypeAndEduStatistics = async () => {
|
||||
const res: any = await getPersonTypeAndEduStatisticsApi({
|
||||
projectSn: store.sn
|
||||
});
|
||||
const getPersonTypeAndEduStatistics = async (showLoading: boolean) => {
|
||||
const res: any = await getPersonTypeAndEduStatisticsApi(
|
||||
{
|
||||
projectSn: store.sn
|
||||
},
|
||||
showLoading
|
||||
);
|
||||
if (res.result) {
|
||||
console.log("出勤人员数据/考勤日环比", res);
|
||||
totalPerson.value = res.result.personType.attendancePerson.totalPerson;
|
||||
@ -182,11 +185,14 @@ let xData = ref([] as any);
|
||||
let yData = ref([] as any);
|
||||
//获取总包出勤情况分析数据
|
||||
let isFlag = ref(true as any);
|
||||
const queryAttendanceOfEachCompany = async () => {
|
||||
const res: any = await queryAttendanceOfEachCompanyApi({
|
||||
projectSn: store.sn,
|
||||
isCountMainEnterprise: 1
|
||||
});
|
||||
const queryAttendanceOfEachCompany = async (showLoading: boolean) => {
|
||||
const res: any = await queryAttendanceOfEachCompanyApi(
|
||||
{
|
||||
projectSn: store.sn,
|
||||
isCountMainEnterprise: 1
|
||||
},
|
||||
showLoading
|
||||
);
|
||||
if (res.result) {
|
||||
console.log("获取总包出勤情况分析数据", res);
|
||||
projectCompanyWorkTotalList.value = res.result.projectCompanyWorkTotalList;
|
||||
@ -367,10 +373,13 @@ let projectTotalProgress = ref("" as any);
|
||||
// 项目剩余天数
|
||||
let projectSurplusDayNum = ref({} as any);
|
||||
// 获取项目总进度/项目剩余天数
|
||||
const getCountTaskProgress = async () => {
|
||||
const res: any = await getCountTaskProgressApi({
|
||||
projectSn: store.sn
|
||||
});
|
||||
const getCountTaskProgress = async (showLoading: boolean) => {
|
||||
const res: any = await getCountTaskProgressApi(
|
||||
{
|
||||
projectSn: store.sn
|
||||
},
|
||||
showLoading
|
||||
);
|
||||
if (res.result) {
|
||||
console.log("项目总进度/项目剩余天数", res);
|
||||
projectTotalProgress.value = res.result.projectTotalProgress + "";
|
||||
@ -380,28 +389,31 @@ const getCountTaskProgress = async () => {
|
||||
// 总包进度列表
|
||||
let processList = ref([] as any);
|
||||
// 获取总包进度列表
|
||||
const queryCountEnterprise = async () => {
|
||||
const res: any = await queryCountEnterpriseApi({
|
||||
projectSn: store.sn,
|
||||
isCountMainEnterprise: 1
|
||||
});
|
||||
const queryCountEnterprise = async (showLoading: boolean) => {
|
||||
const res: any = await queryCountEnterpriseApi(
|
||||
{
|
||||
projectSn: store.sn,
|
||||
isCountMainEnterprise: 1
|
||||
},
|
||||
showLoading
|
||||
);
|
||||
if (res.result) {
|
||||
console.log("总包进度列表", res);
|
||||
processList.value = res.result;
|
||||
}
|
||||
};
|
||||
const setIntervalFn = () => {
|
||||
const setIntervalFn = (showLoading: boolean) => {
|
||||
// drawBar()
|
||||
getPersonTypeAndEduStatistics();
|
||||
queryAttendanceOfEachCompany();
|
||||
getCountTaskProgress();
|
||||
queryCountEnterprise();
|
||||
getPersonTypeAndEduStatistics(showLoading);
|
||||
queryAttendanceOfEachCompany(showLoading);
|
||||
getCountTaskProgress(showLoading);
|
||||
queryCountEnterprise(showLoading);
|
||||
};
|
||||
onMounted(async () => {
|
||||
setIntervalFn();
|
||||
setIntervalFn(false);
|
||||
// 定时三十秒刷新
|
||||
setInterval(() => {
|
||||
setIntervalFn();
|
||||
setIntervalFn(true);
|
||||
}, 30000);
|
||||
});
|
||||
</script>
|
||||
|
||||
@ -15,50 +15,53 @@
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="content-info">
|
||||
<span style="font-size:15px">项目名称:</span>
|
||||
<span style="font-size:15px">{{ projectData.projectName || "" }}</span>
|
||||
<span style="font-size: 15px">项目名称:</span>
|
||||
<span style="font-size: 15px">{{ projectData.projectName || "" }}</span>
|
||||
</div>
|
||||
<div class="content-info">
|
||||
<span style="font-size:15px">项目地址:</span>
|
||||
<span style="font-size:15px">{{addressData()}}</span>
|
||||
<span style="font-size: 15px">项目地址:</span>
|
||||
<span style="font-size: 15px">{{ addressData() }}</span>
|
||||
</div>
|
||||
<div class="content-info">
|
||||
<span style="font-size:15px">项目编号:</span>
|
||||
<span style="font-size:15px">{{ projectData.projectNumber || "" }}</span>
|
||||
<span style="font-size: 15px">项目编号:</span>
|
||||
<span style="font-size: 15px">{{ projectData.projectNumber || "" }}</span>
|
||||
</div>
|
||||
<div style="font-size:15px;line-height:22px">
|
||||
<div style="display:flex;color:white;margin-top:8px">
|
||||
<div style="width:50%;display:flex;">
|
||||
<div style="font-size: 15px; line-height: 22px">
|
||||
<div style="display: flex; color: white; margin-top: 8px">
|
||||
<div style="width: 50%; display: flex">
|
||||
<span>项目经理:</span>
|
||||
<span>{{ projectData.projectManage || "" }}</span>
|
||||
</div>
|
||||
<div style="width:50%;display:flex;">
|
||||
<div style="width: 50%; display: flex">
|
||||
<span>联系电话:</span>
|
||||
<span>{{ projectData.projectTel || "" }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div style="display:flex;color:white;margin-top:8px">
|
||||
<div style="width:50%;display:flex;">
|
||||
<div style="display: flex; color: white; margin-top: 8px">
|
||||
<div style="width: 50%; display: flex">
|
||||
<span>建筑面积:</span>
|
||||
<span>{{ projectData.projectAcreage || "" }} {{ projectData.projectAcreage ? '㎡' : "" }}</span>
|
||||
<span>{{ projectData.projectAcreage || "" }} {{ projectData.projectAcreage ? "㎡" : "" }}</span>
|
||||
</div>
|
||||
<div style="width:50%;display:flex;">
|
||||
<div style="width: 50%; display: flex">
|
||||
<span>开工日期:</span>
|
||||
<span>{{ projectData.startWorkDate || "" }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div style="display:flex;color:white;margin-top:8px">
|
||||
<div style="width:50%;display:flex;">
|
||||
<div style="display: flex; color: white; margin-top: 8px">
|
||||
<div style="width: 50%; display: flex">
|
||||
<span>工程类别:</span>
|
||||
<span>{{ projectData.projectType && projectTypeEnumList.length > 0 ? projectTypeEnumList[projectData.projectType - 1].name : "" }}</span>
|
||||
<div style="margin-left:5px;line-height:20px;">
|
||||
<img style="width:25px;height:25px;" src="@/assets/images/mountain-icon.png" alt="" />
|
||||
<span>{{
|
||||
projectData.projectType && projectTypeEnumList.length > 0
|
||||
? projectTypeEnumList[projectData.projectType - 1].name
|
||||
: ""
|
||||
}}</span>
|
||||
<div style="margin-left: 5px; line-height: 20px">
|
||||
<img style="width: 25px; height: 25px" src="@/assets/images/mountain-icon.png" alt="" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- <div class="content-info">
|
||||
<span>项目名称:</span>
|
||||
<span>{{ projectData.projectName || "" }}</span>
|
||||
@ -101,16 +104,15 @@ import { getProjectDetail, getStageOption } from "@/api/modules/projectOverview"
|
||||
import { GlobalStore } from "@/stores";
|
||||
const store = GlobalStore();
|
||||
const projectData = ref({} as any);
|
||||
const projectTypeEnumList:any = ref([]); //工程类别
|
||||
const projectTypeEnumList: any = ref([]); //工程类别
|
||||
const addressData = () => {
|
||||
return projectData.value.provinceName ? projectData.value.provinceName +
|
||||
projectData.value.cityName +
|
||||
projectData.value.areaName +
|
||||
projectData.value.projectAddress : '';
|
||||
}
|
||||
return projectData.value.provinceName
|
||||
? projectData.value.provinceName + projectData.value.cityName + projectData.value.areaName + projectData.value.projectAddress
|
||||
: "";
|
||||
};
|
||||
// 工程类别字典数据
|
||||
const projectTypeEnum = async () => {
|
||||
const res: any = await getStageOption({ dictionaryEncoding: "project_type", projectSn: store.sn });
|
||||
const projectTypeEnum = async (showLoading: boolean) => {
|
||||
const res: any = await getStageOption({ dictionaryEncoding: "project_type", projectSn: store.sn }, showLoading);
|
||||
if (res.result.length > 0) {
|
||||
let newArray = res.result.map((item: any) => {
|
||||
return {
|
||||
@ -118,21 +120,28 @@ const projectTypeEnum = async () => {
|
||||
id: Number(item.data)
|
||||
};
|
||||
});
|
||||
projectTypeEnumList.value = newArray
|
||||
projectTypeEnumList.value = newArray;
|
||||
} else {
|
||||
projectTypeEnumList.value = []
|
||||
projectTypeEnumList.value = [];
|
||||
}
|
||||
};
|
||||
//获取项目信息
|
||||
const getProjectInfo = async () => {
|
||||
const res = await getProjectDetail({ projectSn: store.sn });
|
||||
const getProjectInfo = async (showLoading: boolean) => {
|
||||
const res = await getProjectDetail({ projectSn: store.sn }, showLoading);
|
||||
console.log("获取项目信息666", res);
|
||||
// console.log("获取工程类别", projectTypeEnum);
|
||||
projectData.value = res.result;
|
||||
};
|
||||
const setIntervalFn = (showLoading: boolean) => {
|
||||
getProjectInfo(showLoading);
|
||||
projectTypeEnum(showLoading);
|
||||
};
|
||||
|
||||
onMounted(async () => {
|
||||
getProjectInfo();
|
||||
projectTypeEnum();
|
||||
setIntervalFn(false);
|
||||
setInterval(() => {
|
||||
setIntervalFn(true);
|
||||
}, 30000);
|
||||
});
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@ -155,7 +164,7 @@ onMounted(async () => {
|
||||
// color: white;
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
background-image: linear-gradient(to bottom left, #c8E3FF, #007AFF);
|
||||
background-image: linear-gradient(to bottom left, #c8e3ff, #007aff);
|
||||
-webkit-background-clip: text;
|
||||
background-clip: text;
|
||||
color: transparent;
|
||||
@ -169,15 +178,15 @@ onMounted(async () => {
|
||||
flex-direction: column;
|
||||
margin-top: 10px;
|
||||
margin-left: 10px;
|
||||
&-info:not(:first-child){
|
||||
&-info:not(:first-child) {
|
||||
margin-top: 11px;
|
||||
}
|
||||
&-info{
|
||||
&-info {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
color: white;
|
||||
font-size: 14px;
|
||||
span:nth-child(2){
|
||||
span:nth-child(2) {
|
||||
display: inline-block;
|
||||
width: 80%;
|
||||
white-space: nowrap;
|
||||
@ -275,24 +284,24 @@ onMounted(async () => {
|
||||
}
|
||||
}
|
||||
}
|
||||
::v-deep .el-dialog{
|
||||
::v-deep .el-dialog {
|
||||
background: url("@/assets/images/commandScreen/dialog-bg.png") no-repeat;
|
||||
// background-color: #fff;
|
||||
background-size: 100% 100%;
|
||||
margin-top: 12%;
|
||||
}
|
||||
::v-deep .el-dialog__headerbtn{
|
||||
::v-deep .el-dialog__headerbtn {
|
||||
right: 35px;
|
||||
top: 25px;
|
||||
}
|
||||
::v-deep .el-dialog .el-dialog__header .el-dialog__title{
|
||||
::v-deep .el-dialog .el-dialog__header .el-dialog__title {
|
||||
margin-left: 30px;
|
||||
margin-top: 10px;
|
||||
font-size: 18px;
|
||||
color: #fff;
|
||||
position: absolute;
|
||||
}
|
||||
::v-deep el-dialog__header{
|
||||
::v-deep el-dialog__header {
|
||||
margin-top: 20px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -940,17 +940,20 @@ function getSpecialEchart() {
|
||||
console.log(echartsTest);
|
||||
}
|
||||
|
||||
const getSafeInfo = async () => {
|
||||
const getSafeInfo = async (showLoading: boolean) => {
|
||||
// const res: any = await getProjectInspectRecordCountApi({ projectSn: store.sn });
|
||||
// console.log("获取安全管理", res);
|
||||
// safeData.value = res.result;
|
||||
// dataList.value[0].value = res.result.rectificationNum;
|
||||
// dataList.value[1].value = res.result.totalNum - res.result.rectificationNum;
|
||||
const result: any = await getInspectionSelectQualityApi({
|
||||
projectSn: store.sn,
|
||||
inspectStartTime: dateRange.value[0],
|
||||
inspectEndTime: dateRange.value[1]
|
||||
});
|
||||
const result: any = await getInspectionSelectQualityApi(
|
||||
{
|
||||
projectSn: store.sn,
|
||||
inspectStartTime: dateRange.value[0],
|
||||
inspectEndTime: dateRange.value[1]
|
||||
},
|
||||
showLoading
|
||||
);
|
||||
|
||||
console.log("安全统计数据", result);
|
||||
dataList.value = [];
|
||||
@ -1017,12 +1020,15 @@ const getSafeInfo = async () => {
|
||||
// majorDangerRate.value = result.result.percent;
|
||||
console.log("1111111111111", dataList.value);
|
||||
|
||||
const res: any = await getCountDangerLevelApi({
|
||||
projectSn: store.sn,
|
||||
isOverdueRectification: 1,
|
||||
inspectStartTime: dateRange.value[0],
|
||||
inspectEndTime: dateRange.value[1]
|
||||
});
|
||||
const res: any = await getCountDangerLevelApi(
|
||||
{
|
||||
projectSn: store.sn,
|
||||
isOverdueRectification: 1,
|
||||
inspectStartTime: dateRange.value[0],
|
||||
inspectEndTime: dateRange.value[1]
|
||||
},
|
||||
showLoading
|
||||
);
|
||||
// dataList.value = res.result.data.map((item: any, index: number) => {
|
||||
// return {
|
||||
// ...item,
|
||||
@ -1313,18 +1319,21 @@ let dataList2 = ref([
|
||||
// });
|
||||
// }
|
||||
|
||||
const qualityInfo = async () => {
|
||||
const qualityInfo = async (showLoading: boolean) => {
|
||||
// const res: any = await selectQualityStatisticsApi({ projectSn: store.sn });
|
||||
// dataList2.value[0].value = res.result.total.rectificationNum;
|
||||
// dataList2.value[1].value = res.result.total.totalNum - res.result.total.rectificationNum;
|
||||
// questionTotal.value = res.result.total.totalNum;
|
||||
|
||||
const res: any = await getCountDangerLevelApi({
|
||||
projectSn: store.sn,
|
||||
isNotQualified: 1,
|
||||
inspectStartTime: dateRange.value[0],
|
||||
inspectEndTime: dateRange.value[1]
|
||||
});
|
||||
const res: any = await getCountDangerLevelApi(
|
||||
{
|
||||
projectSn: store.sn,
|
||||
isNotQualified: 1,
|
||||
inspectStartTime: dateRange.value[0],
|
||||
inspectEndTime: dateRange.value[1]
|
||||
},
|
||||
showLoading
|
||||
);
|
||||
// dataList2.value = res.result.data.map((item: any, index: number) => {
|
||||
// return {
|
||||
// ...item,
|
||||
@ -1347,18 +1356,21 @@ const qualityInfo = async () => {
|
||||
// drawEchart2();
|
||||
};
|
||||
|
||||
const getSelectQualityStatisticsNum = async () => {
|
||||
const res: any = await getSelectQualityStatisticsNumApi({
|
||||
projectSn: store.sn,
|
||||
inspectStartTime: dateRange.value[0],
|
||||
inspectEndTime: dateRange.value[1]
|
||||
});
|
||||
const getSelectQualityStatisticsNum = async (showLoading: boolean) => {
|
||||
const res: any = await getSelectQualityStatisticsNumApi(
|
||||
{
|
||||
projectSn: store.sn,
|
||||
inspectStartTime: dateRange.value[0],
|
||||
inspectEndTime: dateRange.value[1]
|
||||
},
|
||||
showLoading
|
||||
);
|
||||
console.log(res);
|
||||
};
|
||||
|
||||
const getNoticeList = async () => {
|
||||
const getNoticeList = async (showLoading: boolean) => {
|
||||
// const res: any = await getNoticeListApi({ projectSn: store.sn, type: 10, pageNo: 1, pageSize: 99999, });
|
||||
const res: any = await getNoticeListApi({ isBigScreen: 1, type: 31 });
|
||||
const res: any = await getNoticeListApi({ isBigScreen: 1, type: 31 }, showLoading);
|
||||
console.log("隐患智能分析", res);
|
||||
listData2.value = res.result.records;
|
||||
// listData2.value.push({
|
||||
@ -1377,50 +1389,56 @@ const getNoticeList = async () => {
|
||||
|
||||
watch(
|
||||
dateRange,
|
||||
async () => {
|
||||
() => {
|
||||
if (dateRange.value == null) {
|
||||
dateRange.value = [];
|
||||
}
|
||||
await getSafeInfo();
|
||||
await qualityInfo();
|
||||
getSafeInfo(true);
|
||||
qualityInfo(true);
|
||||
// await getSelectQualityStatisticsNum();
|
||||
},
|
||||
{ deep: true }
|
||||
);
|
||||
|
||||
const getInspectionRiskChart = async () => {
|
||||
const res: any = await getInspectionRiskChartApi({
|
||||
projectSn: store.sn,
|
||||
queryType: 1
|
||||
});
|
||||
const getInspectionRiskChart = async (showLoading: boolean) => {
|
||||
const res: any = await getInspectionRiskChartApi(
|
||||
{
|
||||
projectSn: store.sn,
|
||||
queryType: 1
|
||||
},
|
||||
showLoading
|
||||
);
|
||||
console.log("风险走势图", res);
|
||||
riskList.value = res.result;
|
||||
getRiskEchart();
|
||||
};
|
||||
|
||||
const getCountAllSpecial = async () => {
|
||||
const res: any = await getSpecialCountAllSpecialApi({
|
||||
projectSn: store.sn,
|
||||
type: 1
|
||||
});
|
||||
const getCountAllSpecial = async (showLoading: boolean) => {
|
||||
const res: any = await getSpecialCountAllSpecialApi(
|
||||
{
|
||||
projectSn: store.sn,
|
||||
type: 1
|
||||
},
|
||||
showLoading
|
||||
);
|
||||
console.log("特殊作业图", res);
|
||||
specialList.value = res.result;
|
||||
getSpecialEchart();
|
||||
};
|
||||
|
||||
const setIntervalFn = () => {
|
||||
getInspectionRiskChart();
|
||||
getCountAllSpecial();
|
||||
getSafeInfo();
|
||||
qualityInfo();
|
||||
getSelectQualityStatisticsNum();
|
||||
getNoticeList();
|
||||
const setIntervalFn = (showLoading: boolean) => {
|
||||
getInspectionRiskChart(showLoading);
|
||||
getCountAllSpecial(showLoading);
|
||||
getSafeInfo(showLoading);
|
||||
qualityInfo(showLoading);
|
||||
getSelectQualityStatisticsNum(showLoading);
|
||||
getNoticeList(showLoading);
|
||||
};
|
||||
|
||||
onMounted(async () => {
|
||||
setIntervalFn();
|
||||
setIntervalFn(false);
|
||||
setInterval(() => {
|
||||
setIntervalFn();
|
||||
setIntervalFn(true);
|
||||
}, 30000);
|
||||
});
|
||||
</script>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user