flx:冲突
This commit is contained in:
commit
59a17d392d
@ -5,7 +5,7 @@ NODE_ENV = 'development'
|
||||
# 后端本地
|
||||
# VITE_API_URL = 'http://192.168.34.221:19111'
|
||||
# VITE_API_URL = 'http://192.168.34.221:9111' #雄哥本地
|
||||
VITE_API_URL = 'http://182.90.224.237:51234' #雄哥远程
|
||||
# VITE_API_URL = 'http://182.90.224.237:51234' #雄哥远程
|
||||
# VITE_API_URL = 'http://192.168.34.221:28889'
|
||||
# VITE_API_URL = 'http://121.196.214.246/api'
|
||||
# VITE_API_URL = 'http://jxj.zhgdyun.com:100'
|
||||
@ -29,6 +29,8 @@ VITE_API_URL = 'http://182.90.224.237:51234' #雄哥远程
|
||||
# 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_ULD_API_URL = 'http://192.168.34.155:8012/onlinePreview?url='
|
||||
|
||||
|
||||
@ -21,10 +21,12 @@ 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:9809' #生产环境
|
||||
# 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_ULD_API_URL = 'http://jxj.zhgdyun.com:8012/onlinePreview?url='
|
||||
|
||||
4834
package-lock.json
generated
4834
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
BIN
src/assets/images/green_flag_bg.png
Normal file
BIN
src/assets/images/green_flag_bg.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.3 KiB |
@ -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,3 +37,4 @@ export const COMPANY: string = "agjtCommand"; //鞍钢集团指挥部大屏
|
||||
// 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"; // 中科安信项目
|
||||
|
||||
@ -1320,4 +1320,27 @@ export const ZHZRFMenu: Array<any> = [
|
||||
]
|
||||
},
|
||||
|
||||
]; //中海·臻如府
|
||||
]; //中海·臻如府
|
||||
// 中科安信大屏
|
||||
export const ZKAXMenu: Array<any> = [
|
||||
{
|
||||
moduleName: "首页概览",
|
||||
modulePath: "/projectOverview"
|
||||
},
|
||||
{
|
||||
moduleName: "劳务管理",
|
||||
modulePath: "/laborManagement"
|
||||
},
|
||||
{
|
||||
moduleName: "质量管理",
|
||||
modulePath: "/qualityManagement"
|
||||
},
|
||||
{
|
||||
moduleName: "安全管理",
|
||||
modulePath: "/securityManagement"
|
||||
},
|
||||
{
|
||||
menuName: "进度计划",
|
||||
companyPath: "/schedulePlan"
|
||||
}
|
||||
];
|
||||
@ -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: [
|
||||
{
|
||||
|
||||
@ -50,12 +50,26 @@
|
||||
<span :style="statScore.radio > 0 ? 'color:#0db027' : 'color:#f77c7d'">{{ statScore.radio > 0 ? "↑" : "↓" }} </span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="score-div" @click="openDialogData({ index: 9, title: '月度安全综合评分' })">
|
||||
<div :class="['score-div', statScore.total >= 80 ? 'scoreBg1':statScore.total >= 60 ? 'scoreBg2':'scoreBg3']" @click="openDialogData({ index: 9, title: '月度安全综合评分' })">
|
||||
<div class="score-part">
|
||||
<span>{{ statScore.total }}</span>
|
||||
<span>分</span>
|
||||
</div>
|
||||
<span>安全评分</span>
|
||||
<div class="scoreInner scoreTextBg1" v-if="statScore.total >= 80">
|
||||
<span style="font-size:18px">安全评分</span>
|
||||
<div class="scoreReview" >优秀</div>
|
||||
<div class="scoreStar"></div>
|
||||
</div>
|
||||
<div class="scoreInner scoreTextBg2" v-if="statScore.total >= 60 && statScore.total < 80">
|
||||
<span style="font-size:18px">安全评分</span>
|
||||
<div class="scoreReview">一般</div>
|
||||
<div class="scoreStar"></div>
|
||||
</div>
|
||||
<div class="scoreInner scoreTextBg3" v-if="statScore.total < 60">
|
||||
<span style="font-size:18px">安全评分</span>
|
||||
<div class="scoreReview">差</div>
|
||||
<div class="scoreStar"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="classify-div">
|
||||
<div class="classify-div-item" @click="openDialogData({ index: 1, title: '危大工程' })">
|
||||
@ -288,13 +302,20 @@ onMounted(async () => {
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.scoreBg1{background-image: radial-gradient(circle, rgb(46, 200, 49) 0px, rgba(255, 255, 255, 0) 115px);}
|
||||
.scoreBg2{background-image: radial-gradient(circle, rgb(255,175,0) 0px, rgba(255, 255, 255, 0) 115px);}
|
||||
.scoreBg3{background-image: radial-gradient(circle, rgb(200, 46, 56) 0px, rgba(255, 255, 255, 0) 115px);}
|
||||
.scoreTextBg1{background-image: radial-gradient(circle, rgb(46, 200, 49) 0px, rgba(255, 255, 255, 0) 40px);}
|
||||
.scoreTextBg2{background-image: radial-gradient(circle, rgb(255,175,0) 0px, rgba(255, 255, 255, 0) 40px);}
|
||||
.scoreTextBg3{background-image: radial-gradient(circle, rgb(200, 46, 56) 0px, rgba(255, 255, 255, 0) 40px);}
|
||||
.centerTop {
|
||||
// background-color: darkred;
|
||||
.top-content {
|
||||
height: 100%;
|
||||
position: relative;
|
||||
background-image: url("@/assets/images/commandScreen/top-bg.png");
|
||||
background-position: center;
|
||||
// background-position: center;
|
||||
background-position: -28px;
|
||||
background-repeat: no-repeat;
|
||||
|
||||
.content-div {
|
||||
@ -386,21 +407,22 @@ onMounted(async () => {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.score-div {
|
||||
|
||||
color: white;
|
||||
position: absolute;
|
||||
// bottom: 210px;
|
||||
// left: 383px;
|
||||
width: 30%;
|
||||
height: 30%;
|
||||
bottom: 33%;
|
||||
height: 45%;
|
||||
bottom: 30%;
|
||||
left: 35.5%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
|
||||
.score-part {
|
||||
margin-top: 60px;
|
||||
span:nth-child(1) {
|
||||
font-size: 72px;
|
||||
}
|
||||
@ -414,6 +436,36 @@ onMounted(async () => {
|
||||
color: white;
|
||||
font-size: 18px;
|
||||
}
|
||||
.scoreInner{
|
||||
text-align: center;
|
||||
margin-top: -10px;
|
||||
width: 90%;
|
||||
// height: 100px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
// background-color: red;
|
||||
.scoreReview{
|
||||
opacity: 0.7;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 50px;
|
||||
// background-color: blue;
|
||||
}
|
||||
.scoreStar{
|
||||
// background-color: purple;
|
||||
// margin-top: 20px;
|
||||
width: 28%;
|
||||
height: 40px;
|
||||
background: url("@/assets/images/green_flag_bg.png") no-repeat;
|
||||
background-size: 100% 100%;
|
||||
|
||||
transform: translateY(-20px);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.classify-div {
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
<template>
|
||||
s<template>
|
||||
<div class="leftBottom">
|
||||
<div class="header">
|
||||
<div class="hLeft">项目人员考勤</div>
|
||||
@ -139,7 +139,7 @@
|
||||
<script setup lang="ts">
|
||||
import { onMounted, ref } from "vue";
|
||||
import * as echarts from "echarts";
|
||||
import ECharts from "vue-echarts";
|
||||
// import ECharts from "vue-echarts";
|
||||
import { selectQualityStatisticsApi } from "@/api/modules/projectOverview";
|
||||
import {
|
||||
getPersonTypeAndEduStatisticsApi,
|
||||
@ -311,7 +311,10 @@ function drawBar() {
|
||||
if (!attendanceRhbRate) {
|
||||
attendanceRhbRate = "--";
|
||||
} else {
|
||||
attendanceRhbRate = attendanceRhbRate + "%";
|
||||
if(attendanceRhbRate > 0) attendanceRhbRate = "<span style='color:blue;margin-right:5px'>↑</span>"+Math.abs(attendanceRhbRate)+"%"
|
||||
if(attendanceRhbRate < 0) attendanceRhbRate = "<span style='color:darkred;margin-right:5px'>↓</span>"+Math.abs(attendanceRhbRate)+"%"
|
||||
if(attendanceRhbRate == 0) attendanceRhbRate = "0%"
|
||||
// attendanceRhbRate = attendanceRhbRate + "%";
|
||||
}
|
||||
console.log(params);
|
||||
console.log(123123, projectCompanyWorkTotalList.value[params.dataIndex].attendancePersonRate);
|
||||
|
||||
@ -30,7 +30,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="ctContent" style="position: relative">
|
||||
<div id="echartsSafe" style="width: 100%; height: 100%"></div>
|
||||
<div id="echartsSafe" style="width: 100%; height: 100%;transform:translateY(-13px)"></div>
|
||||
<div class="safetext1" v-if="dataList.length != 0">状态统计(较昨日)</div>
|
||||
<div class="safetext2" v-if="dataList.length != 0">风险统计(较昨日)</div>
|
||||
<div class="notoDta" v-if="dataCode != 200">
|
||||
@ -341,7 +341,7 @@ function drawEchart() {
|
||||
type: "plain",
|
||||
orient: "vertical",
|
||||
right: "0%",
|
||||
top: "20%",
|
||||
top: "25%",
|
||||
align: "left",
|
||||
itemGap: 14,
|
||||
itemWidth: 8, // 设置宽度
|
||||
@ -409,7 +409,7 @@ function drawEchart() {
|
||||
type: "plain",
|
||||
orient: "vertical",
|
||||
left: "35%",
|
||||
top: "20%",
|
||||
top: "25%",
|
||||
align: "left",
|
||||
itemGap: 14,
|
||||
itemWidth: 8, // 设置宽度
|
||||
|
||||
@ -53,12 +53,14 @@
|
||||
<p>暂无数据</p>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="tabList">
|
||||
|
||||
|
||||
<!-- <div class="tabList">
|
||||
<div>排名</div>
|
||||
<div v-if="activeIndex === '1' || activeIndex === '2'">姓名</div>
|
||||
<div v-if="activeIndex === '0'">分包单位</div>
|
||||
<div v-if="activeIndex === '0' || activeIndex === '2'">整改数量</div>
|
||||
<div v-if="activeIndex === '1'">发起隐患数</div>
|
||||
<div v-if="activeIndex === '0' || activeIndex === '1'">整改数量</div>
|
||||
<div v-if="activeIndex === '2'">发起隐患数</div>
|
||||
<div>整改率</div>
|
||||
<div>及时整改率</div>
|
||||
</div>
|
||||
@ -78,6 +80,81 @@
|
||||
<img src="@/assets/images/noData.png" alt="" />
|
||||
<p>暂无数据</p>
|
||||
</div>
|
||||
</div> -->
|
||||
<div v-if="activeIndex === '0'">
|
||||
<div class="tabList">
|
||||
<div>排名</div>
|
||||
<div>分包单位</div>
|
||||
<div>整改数量</div>
|
||||
<div>整改率</div>
|
||||
<div>及时整改率</div>
|
||||
</div>
|
||||
<div class="listBox">
|
||||
|
||||
<el-scrollbar>
|
||||
<div v-for="(item, index) in tabList" :key="index" class="listStyle">
|
||||
<div>{{ index + 1 }}</div>
|
||||
<div :title="item.enterpriseName">{{ item.enterpriseName }}</div>
|
||||
<div>{{ item.createDangerNum || item.rectifiedNum}}</div>
|
||||
<div>{{ item.rectifiedNumRatio }}</div>
|
||||
<div>{{ item.rectifiedNumRatioTimely }}</div>
|
||||
</div>
|
||||
</el-scrollbar>
|
||||
<div class="notoDta" v-if="tabList.length == 0">
|
||||
<img src="@/assets/images/noData.png" alt="" />
|
||||
<p>暂无数据</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="activeIndex === '1'">
|
||||
<div class="tabList">
|
||||
<div>排名</div>
|
||||
<div>姓名</div>
|
||||
<div>整改数量</div>
|
||||
<div>整改率</div>
|
||||
<div>及时整改率</div>
|
||||
</div>
|
||||
<div class="listBox">
|
||||
|
||||
<el-scrollbar>
|
||||
<div v-for="(item, index) in tabList" :key="index" class="listStyle">
|
||||
<div>{{ index + 1 }}</div>
|
||||
<div>{{ item.workerName }}</div>
|
||||
<div>{{ item.createDangerNum || item.rectifiedNum}}</div>
|
||||
<div>{{ item.rectifiedNumRatio }}</div>
|
||||
<div>{{ item.rectifiedNumRatioTimely }}</div>
|
||||
</div>
|
||||
</el-scrollbar>
|
||||
<div class="notoDta" v-if="tabList.length == 0">
|
||||
<img src="@/assets/images/noData.png" alt="" />
|
||||
<p>暂无数据</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="activeIndex === '2'">
|
||||
<div class="tabList">
|
||||
<div>排名</div>
|
||||
<div>姓名</div>
|
||||
<div>发起隐患数</div>
|
||||
<div>整改率</div>
|
||||
<div>及时整改率</div>
|
||||
</div>
|
||||
<div class="listBox">
|
||||
|
||||
<el-scrollbar>
|
||||
<div v-for="(item, index) in tabList" :key="index" class="listStyle">
|
||||
<div>{{ index + 1 }}</div>
|
||||
<div>{{ item.workerName }}</div>
|
||||
<div>{{ item.createDangerNum }}</div>
|
||||
<div>{{ item.rectifiedNumRatio }}</div>
|
||||
<div>{{ item.rectifiedNumRatioTimely }}</div>
|
||||
</div>
|
||||
</el-scrollbar>
|
||||
<div class="notoDta" v-if="tabList.length == 0">
|
||||
<img src="@/assets/images/noData.png" alt="" />
|
||||
<p>暂无数据</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -97,7 +97,7 @@ import ScaleBox from "vue3-scale-box";
|
||||
import { ref, reactive, onMounted, onBeforeUnmount, computed } from "vue";
|
||||
import { getTaskTimeDetail } from "@/api/modules/schedulePlan";
|
||||
import { jumpLargeUserInfoApi } from "@/api/modules/login";
|
||||
import { JSYCMenu, XJNBMenu, AHSAMenu, HFQCMenu,ASMenu,AGJTMenu,SLXMenu } from "@/config/staticMenu";
|
||||
import { JSYCMenu, XJNBMenu, AHSAMenu, HFQCMenu,ASMenu,AGJTMenu,SLXMenu,ZKAXMenu } from "@/config/staticMenu";
|
||||
import { COMPANY } from "@/config/config";
|
||||
|
||||
import { useRouter } from "vue-router";
|
||||
@ -486,7 +486,9 @@ onMounted(async () => {
|
||||
if (COMPANY === "slx") {
|
||||
menuList.value = SLXMenu;
|
||||
}
|
||||
|
||||
if (COMPANY === "zkax") {
|
||||
menuList.value = ZKAXMenu;
|
||||
}
|
||||
console.log("配置菜单", menuList.value);
|
||||
console.log("当前跳转的路由", router.currentRoute.value);
|
||||
// await getAllModelMenu();
|
||||
|
||||
@ -97,7 +97,7 @@ import ScaleBox from "vue3-scale-box";
|
||||
import { ref, reactive, onMounted, onBeforeUnmount, computed } from "vue";
|
||||
import { getTaskTimeDetail } from "@/api/modules/schedulePlan";
|
||||
import { jumpLargeUserInfoApi } from "@/api/modules/login";
|
||||
import { JSYCMenu, XJNBMenu, AHSAMenu, HFQCMenu,ASMenu,AGJTMenu,SLXMenu,ZSBFMenu,ZHZRFMenu } from "@/config/staticMenu";
|
||||
import { JSYCMenu, XJNBMenu, AHSAMenu, HFQCMenu,ASMenu,AGJTMenu,SLXMenu,ZSBFMenu,ZHZRFMenu, ZKAXMenu } from "@/config/staticMenu";
|
||||
import { COMPANY } from "@/config/config";
|
||||
|
||||
import { useRouter } from "vue-router";
|
||||
@ -492,7 +492,9 @@ onMounted(async () => {
|
||||
if (COMPANY === "zhzrf") {
|
||||
menuList.value = ZHZRFMenu;
|
||||
}
|
||||
|
||||
if (COMPANY === "zkax") {
|
||||
menuList.value = ZKAXMenu;
|
||||
}
|
||||
console.log("配置菜单", menuList.value);
|
||||
console.log("当前跳转的路由", router.currentRoute.value);
|
||||
// await getAllModelMenu();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user