+
+ ${v.seriesName}
+
${v.value}
+ %`;
+ });
+
+ return html;
+ },
+ extraCssText: 'background: #fff; border-radius: 0;box-shadow: 0 0 3px rgba(0, 0, 0, 0.2);color: #333;',
+ axisPointer: {
+ type: 'shadow',
+ shadowStyle: {
+ // color: "#ffffff",
+ shadowColor: 'rgba(225,225,225,1)',
+ shadowBlur: 5,
+ },
+ },
+ },
+ grid: {
+ top: '15%',
+ left: '5%',
+ right: '15%', // 为图例留出空间
+ bottom: '15%',
+ containLabel: true,
+ },
+ xAxis: [
+ {
+ type: 'category',
+ boundaryGap: false,
+ axisLabel: {
+ formatter: '{value}月',
+ textStyle: {
+ color: '#fff',
+ },
+ },
+ axisTick: {
+ show: false,
+ },
+ axisLine: {
+ lineStyle: {
+ color: '#fff',
+ },
+ },
+ data: xAxisData,
+ },
+ ],
+ yAxis: [
+ {
+ type: 'value',
+ axisLabel: {
+ textStyle: {
+ color: '#fff',
+ },
+ },
+ nameTextStyle: {
+ color: '#fff',
+ fontSize: 12,
+ lineHeight: 40,
+ },
+ splitLine: {
+ show: false,
+ lineStyle: {
+ type: 'dashed',
+ color: '#fff',
+ },
+ },
+ axisLine: {
+ show: false,
+ lineStyle: {
+ color: '#00c7ff',
+ width: 1,
+ type: 'solid',
+ },
+ },
+ axisTick: {
+ show: false,
+ },
+ },
+ ],
+ series: seriesArr,
+ };
+
+ this.echartsInstances.opretionTrend.setOption(option);
+ // 监听resize
+ const resizeHandler = () => {
+ if (this.echartsInstances.opretionTrend) {
+ this.echartsInstances.opretionTrend.resize();
+ }
+ };
+
+ if (this.trendResizeHandler) {
+ window.removeEventListener('resize', this.trendResizeHandler);
+ }
+
+ this.trendResizeHandler = resizeHandler;
+ window.addEventListener('resize', resizeHandler);
+ };
+ riskLevel = () => {
+ // 如果已有实例,先销毁
+ if (this.echartsInstances.riskLevel) {
+ this.echartsInstances.riskLevel.dispose();
+ this.echartsInstances.riskLevel = null;
+ }
+
+ const riskLevels = document.getElementById('riskLevelFull');
+ if (!riskLevels) {
+ console.warn('风险分级图表容器未找到');
+ // 使用requestAnimationFrame而不是setTimeout
+ requestAnimationFrame(() => {
+ this.riskLevel();
+ });
+ return;
+ }
+
+ console.log('初始化风险分级图表');
+
+ // 初始化echarts实例并保存引用
+ this.echartsInstances.riskLevel = echarts.init(riskLevels);
+ const option = {
+ color: ['#c92a2a', '#FF6710', '#FFDD1E', '#0091FF', '#fa8a89'],
+ title: [
+ {
+ text: '风险分级占比',
+ x: 'center',
+ y: '5%',
+ textStyle: {
+ fontSize: 16,
+ color: '#fff',
+ },
+ },
+ ],
+ tooltip: {
+ trigger: 'item',
+ formatter: function (params) {
+ const color = params.color;
+ return `
+
+ ${params.name}:
+ ${params.value}
+
`;
+ },
+ backgroundColor: 'rgba(255, 255, 255, 0.5)',
+ borderColor: '#FFFFFF',
+ borderWidth: 2,
+ textStyle: {
+ color: '#000',
+ fontSize: 14,
+ fontWeight: 'normal',
+ },
+ },
+ series: [
+ {
+ name: '访问来源',
+ type: 'pie',
+ minAngle: 20,
+ radius: ['40%', '60%'],
+ center: ['50%', '50%'],
+ clockwise: true,
+ avoidLabelOverlap: true,
+ hoverOffset: 15,
+ label: {
+ show: true,
+ position: 'inside',
+ formatter: '{a|{b}:{c}}{e|({d}%)}\n',
+ color: '#FFFFFF',
+ textBorderWidth: 0,
+ rich: {
+ a: {
+ padding: [-15, 0, 0, 0],
+ fontSize: 15,
+ color: '#FFFFFF',
+ textBorderWidth: 0,
+ textShadow: 'none',
+ },
+ e: {
+ fontSize: 14,
+ color: '#FFFFFF',
+ padding: [-15, 0, 0, 5],
+ textBorderWidth: 0,
+ textShadow: 'none',
+ },
+ },
+ },
+ labelLine: {
+ normal: {
+ show: false,
+ },
+ },
+ data: this.state.riskTypeRate,
+ },
+ ],
+ };
+
+ this.echartsInstances.riskLevel.setOption(option);
+
+ // 监听窗口大小变化
+ const resizeHandler = () => {
+ if (this.echartsInstances.riskLevel) {
+ this.echartsInstances.riskLevel.resize();
+ }
+ };
+
+ // 移除旧的监听器
+ if (this.riskResizeHandler) {
+ window.removeEventListener('resize', this.riskResizeHandler);
+ }
+
+ this.riskResizeHandler = resizeHandler;
+ window.addEventListener('resize', resizeHandler);
+ };
+
+ render() {
+ const width = 1920,
+ height = 1200;
+ // 固定好16:9的宽高比,计算出最合适的缩放比,宽高比可根据需要自行更改
+ const { scale, safetySloganOne, animationDuration, sliderColor, sliderSize, activeTab } = this.state;
+ const renderContent = () => {
+ if (activeTab === '首页') {
+ return (
+ <>
+ {/* 首页内容 - 原来的两行布局 */}
+
+
+ {/* 原第一行内容 */}
+
+ {/* 风险等级基本信息 */}
+
+
+
+
+
+ {this.state.riskTypeRate.map((item, index) => (
+
+
{item.riskType}
+
{item.count}
+
+ ))}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {/* 中间内容 */}
+
+
+
+
+
+ 安全方针:以人为本、关注健康、依法治企、安全发展。
+
+
+ 安全理念:一切风险皆可控,一切事故皆可防!
+
+
+
+
+
+
+
+
+
+ {/* 右边内容 */}
+
+
+
+
+
+
+
+
+
+ {this.state.meetingData.map((item, index) => (
+
+
+
+
+
{item.name}
+
+ {item.value}
+
+ 次
+
+
+
+
+
+
+ ))}
+
+
+
+
+
+
+
+
+
+ {/* 第二行内容 */}
+
+
+
+
+
+
+
+ {this.state.riskChangeData.map((item, index) => (
+
+
+
+
{item.name}
+
{item.value}
+
+
+
+ ))}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 各家公司安全检查统计
+
+
+
+
+
+
+
+
+ >
+ );
+ } else {
+ // 其他tab的内容 - 这里可以替换为你想要的其他内容
+ return (
+
+
+
+
+
{activeTab} 页面
+
这里是 {activeTab} 的内容展示区域
+
请根据实际需求替换此内容
+
+
+
+
+ );
+ }
+ };
+ return (
+
+
+
+
+ {/* 头部保持不变 */}
+
+
+
+
+

+
+ {this.state.configBanner.slice(0, 3).map((item, index) => (
+
this.handleTabClick(item.name)}
+ onKeyPress={(e) => e.key === 'Enter' && this.handleTabClick(item.name)}
+ tabIndex={0}
+ title={`点击进入${item.name}`}
+ role="button"
+ style={{ cursor: 'pointer' }}
+ >
+ {item.name}
+
+ ))}
+
+
+
+
+
+
+
+
+ {this.state.configBanner.slice(3, 6).map((item, index) => (
+
this.handleTabClick(item.name)}
+ onKeyPress={(e) => e.key === 'Enter' && this.handleTabClick(item.name)}
+ tabIndex={0}
+ title={`点击进入${item.name}`}
+ role="button"
+ style={{ cursor: 'pointer' }}
+ >
+ {item.name}
+
+ ))}
+
+
+ {/* {this.state.nowWeek} */}
+ {this.state.nowDate}
+
+
+
+
+
+ {/* 条件渲染的内容区域 */}
+ {renderContent()}
+
+
+
+
+ );
+ }
+}
+
+export default withRouter(connect(({ login }) => ({ login }))(FullScreen));
diff --git a/src/layout/full.less b/src/layout/full.less
index 48b3c39..4335dd3 100644
--- a/src/layout/full.less
+++ b/src/layout/full.less
@@ -1,24 +1,31 @@
@font-face {
font-family: pangmenzhengdao;
- src: url("../assets/fonts/pangmenzhengdao.ttf");
+ src: url('../assets/fonts/pangmenzhengdao.ttf');
}
@font-face {
- font-family: "阿里妈妈东方大楷 Regular";
+ font-family: '阿里妈妈东方大楷 Regular';
font-weight: normal;
- src: url("../assets/fonts/AlimamaDongFangDaKai-Regular.ttf")
- format("truetype");
+ src: url('../assets/fonts/AlimamaDongFangDaKai-Regular.ttf') format('truetype');
font-display: swap;
}
@font-face {
- font-family: "站酷庆科黄油体";
+ font-family: '站酷庆科黄油体';
font-weight: normal;
- src: url("../assets/fonts/zhankuqingke.ttf") format("truetype");
+ src: url('../assets/fonts/zhankuqingke.ttf') format('truetype');
font-display: swap;
}
+.box {
+ transform-origin: 0 0;
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ transition: 0.3s;
+}
+
.blackBack {
- background-image: url("../assets/login/bg.png");
+ background-image: url('../assets/login/bg.png');
width: 100%;
// height: calc(100% - 10px); // 进入全屏
height: 100%;
@@ -35,7 +42,7 @@
flex-direction: column;
}
.header {
- background-image: url("../assets/layout/full-header.png");
+ background-image: url('../assets/layout/full-header.png');
background-size: cover;
background-position: center;
background-repeat: no-repeat;
@@ -51,7 +58,7 @@
font-size: 32px;
// font-weight: bold;
margin-top: 10px;
- font-family: "pangmenzhengdao";
+ font-family: 'pangmenzhengdao';
}
.row {
// height: calc(65% - 200px);
@@ -185,7 +192,7 @@
font-size: 18px;
}
.title {
- background-image: url("../assets/layout/title.png");
+ background-image: url('../assets/layout/title.png');
background-size: cover;
background-position: bottom;
background-repeat: no-repeat;
@@ -208,7 +215,7 @@
.titlename {
color: #fff;
font-size: 16px;
- font-family: "站酷庆科黄油体";
+ font-family: '站酷庆科黄油体';
letter-spacing: 3px;
}
.risklevelOne {
@@ -264,7 +271,7 @@
margin-bottom: 20px;
}
.scoreBox1 {
- background-image: url("../assets/layout/score-box.png");
+ background-image: url('../assets/layout/score-box.png');
background-size: contain;
background-position: center;
background-repeat: no-repeat;
@@ -282,7 +289,7 @@
flex-direction: row;
// align-items: center;
// justify-content: space-between;
- background-image: url("../assets/layout/ks.png");
+ background-image: url('../assets/layout/ks.png');
background-size: cover;
background-position: center;
background-repeat: no-repeat;
@@ -297,7 +304,7 @@
flex-direction: row;
// align-items: center;
// justify-content: space-between;
- background-image: url("../assets/layout/xk.png");
+ background-image: url('../assets/layout/xk.png');
background-size: cover;
background-position: center;
background-repeat: no-repeat;
@@ -311,7 +318,7 @@
flex-direction: row;
// align-items: center;
// justify-content: space-between;
- background-image: url("../assets/layout/wk.png");
+ background-image: url('../assets/layout/wk.png');
background-size: cover;
background-position: center;
background-repeat: no-repeat;
@@ -325,7 +332,7 @@
flex-direction: column;
align-items: center;
justify-content: space-between;
- background-image: url("../assets/layout/score.png");
+ background-image: url('../assets/layout/score.png');
background-size: contain;
background-position: center;
background-repeat: no-repeat;
@@ -376,58 +383,45 @@
}
li:nth-of-type(1) {
// transform: rotate(45deg);
- transform: translate(-50%, -50%) rotate(12deg) translate(-280px)
- rotate(-12deg);
+ transform: translate(-50%, -50%) rotate(12deg) translate(-280px) rotate(-12deg);
// transform-origin: 20px 220px;
}
li:nth-of-type(2) {
- transform: translate(-50%, -50%) rotate(38deg) translate(-280px)
- rotate(-38deg);
+ transform: translate(-50%, -50%) rotate(38deg) translate(-280px) rotate(-38deg);
}
li:nth-of-type(3) {
- transform: translate(-50%, -50%) rotate(64deg) translate(-280px)
- rotate(-64deg);
+ transform: translate(-50%, -50%) rotate(64deg) translate(-280px) rotate(-64deg);
}
li:nth-of-type(4) {
- transform: translate(-50%, -50%) rotate(90deg) translate(-280px)
- rotate(-90deg);
+ transform: translate(-50%, -50%) rotate(90deg) translate(-280px) rotate(-90deg);
}
li:nth-of-type(5) {
- transform: translate(-50%, -50%) rotate(116deg) translate(-280px)
- rotate(-116deg);
+ transform: translate(-50%, -50%) rotate(116deg) translate(-280px) rotate(-116deg);
}
li:nth-of-type(6) {
- transform: translate(-50%, -50%) rotate(142deg) translate(-280px)
- rotate(-142deg);
+ transform: translate(-50%, -50%) rotate(142deg) translate(-280px) rotate(-142deg);
}
li:nth-of-type(7) {
- transform: translate(-50%, -50%) rotate(168deg) translate(-280px)
- rotate(-168deg);
+ transform: translate(-50%, -50%) rotate(168deg) translate(-280px) rotate(-168deg);
}
li:nth-of-type(8) {
- transform: translate(-50%, -50%) rotate(-12deg) translate(-280px)
- rotate(12deg);
+ transform: translate(-50%, -50%) rotate(-12deg) translate(-280px) rotate(12deg);
}
li:nth-of-type(9) {
- transform: translate(-50%, -50%) rotate(-38deg) translate(-280px)
- rotate(38deg);
+ transform: translate(-50%, -50%) rotate(-38deg) translate(-280px) rotate(38deg);
}
li:nth-of-type(10) {
- transform: translate(-50%, -50%) rotate(-64deg) translate(-280px)
- rotate(64deg);
+ transform: translate(-50%, -50%) rotate(-64deg) translate(-280px) rotate(64deg);
}
li:nth-of-type(11) {
- transform: translate(-50%, -50%) rotate(-116deg) translate(-280px)
- rotate(116deg);
+ transform: translate(-50%, -50%) rotate(-116deg) translate(-280px) rotate(116deg);
}
li:nth-of-type(12) {
- transform: translate(-50%, -50%) rotate(-142deg) translate(-280px)
- rotate(142deg);
+ transform: translate(-50%, -50%) rotate(-142deg) translate(-280px) rotate(142deg);
}
li:nth-of-type(13) {
- transform: translate(-50%, -50%) rotate(-168deg) translate(-280px)
- rotate(168deg);
+ transform: translate(-50%, -50%) rotate(-168deg) translate(-280px) rotate(168deg);
}
}
diff --git a/src/layout/fullinter.less b/src/layout/fullinter.less
new file mode 100644
index 0000000..409a83a
--- /dev/null
+++ b/src/layout/fullinter.less
@@ -0,0 +1,551 @@
+@font-face {
+ font-family: pangmenzhengdao;
+ src: url('../assets/fonts/pangmenzhengdao.ttf');
+}
+
+@font-face {
+ font-family: '阿里妈妈东方大楷 Regular';
+ font-weight: normal;
+ src: url('../assets/fonts/AlimamaDongFangDaKai-Regular.ttf') format('truetype');
+ font-display: swap;
+}
+@font-face {
+ font-family: '站酷庆科黄油体';
+ font-weight: normal;
+ src: url('../assets/fonts/zhankuqingke.ttf') format('truetype');
+ font-display: swap;
+}
+
+.box {
+ transform-origin: 0 0;
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ transition: 0.3s;
+}
+
+.blackBack {
+ background-image: url('../assets/login/bg.png');
+ width: 100%;
+ // height: calc(100% - 10px); // 进入全屏
+ height: 100%;
+ background-size: cover;
+ background-position: center;
+ background-repeat: no-repeat;
+}
+.backImage {
+ background-color: #021428; //021428
+ width: 100%;
+ height: 100%;
+ opacity: 0.9;
+ display: flex;
+ flex-direction: column;
+ overflow: hidden;
+}
+.header {
+ // background-image: url('../assets/layout/full-header.png');
+ // background-size: cover;
+ // background-position: center;
+ // background-repeat: no-repeat;
+ height: 60px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ flex-direction: row;
+ margin: 10px;
+ background-color: rgba(73, 122, 175, 0.3);
+}
+.headerText {
+ color: GoldenRod;
+ font-size: 32px;
+ white-space: nowrap;
+ // font-weight: bold;
+ // margin-top: 10px;
+ font-family: 'pangmenzhengdao';
+}
+.configBanners {
+ // height: 100%;
+ width: 110px;
+ height: 48px;
+ font-size: 20px; // 适当减小字体大小
+ margin: 0px 10px;
+ font-style: italic;
+ font-weight: bold;
+ color: #fff;
+ border: 1px solid transparent; // 默认透明边框
+ // border: 1px solid #00caf7;
+ white-space: nowrap;
+ background: linear-gradient(to bottom, #01408e, #07295e);
+ display: flex; // 使用flex布局
+ align-items: center; // 垂直居中
+ justify-content: center; // 水平居中
+ text-align: center; // 文字居中
+ box-sizing: border-box; // 确保边框计算在内
+ padding: 0 2px; // 如果需要可以添加内边距
+ overflow: hidden; // 防止内容溢出
+ text-overflow: ellipsis; // 文字过长显示省略号
+ position: relative;
+ overflow: hidden;
+ &:hover {
+ border-color: #00caf7; // 悬停效果
+ opacity: 0.9;
+ }
+
+ &.active {
+ border: 1px solid #00caf7 !important;
+ background: linear-gradient(to bottom, #0150a0, #083070); // 激活时背景加深
+ box-shadow: 0 0 10px rgba(0, 202, 247, 0.5); // 可选:添加发光效果
+ }
+
+ &::after {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: -100%;
+ width: 100%;
+ height: 100%;
+ background: linear-gradient(90deg, transparent, rgba(0, 202, 247, 0.2), transparent);
+ transition: left 0.5s ease;
+ }
+
+ &.active::after {
+ left: 100%;
+ }
+
+ &.active {
+ animation: pulse 2s infinite;
+ }
+}
+@keyframes pulse {
+ 0% {
+ box-shadow: 0 0 5px rgba(0, 202, 247, 0.5);
+ }
+ 50% {
+ box-shadow: 0 0 15px rgba(0, 202, 247, 0.8);
+ }
+ 100% {
+ box-shadow: 0 0 5px rgba(0, 202, 247, 0.5);
+ }
+}
+.boxBack {
+ width: 100%;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ flex-direction: column;
+ padding: 0px 20px;
+}
+.otherTabContent {
+ flex: 1; // 占据剩余空间
+ width: 100%;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background: rgba(2, 20, 40, 0.7);
+ border-radius: 10px;
+ margin: 10px;
+ border: 1px solid rgba(0, 202, 247, 0.3);
+}
+.row {
+ // height: calc(65% - 200px);
+ flex: 1;
+ width: 100%;
+}
+.rowTwo {
+ height: 30%;
+ width: 100%;
+ margin-top: 10px;
+}
+.boxleft {
+ height: 100%;
+ // width: 100%;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+}
+.fullBorderBox {
+ width: 100%;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: 10px; // 如果需要内边距
+ box-sizing: border-box; // 确保内边距计算在内
+}
+.risklevel {
+ height: 50%;
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ padding: 0px 10px;
+}
+.risklevelOne {
+ height: 50%;
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ padding: 0px 10px;
+}
+.risklevelTwo {
+ height: 100%;
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ padding: 0px 10px 10px 10px;
+}
+.riskChange {
+ width: 30%;
+ height: 100%;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: space-around;
+ padding: 20px 10px;
+}
+.riskChangeTwo {
+ width: 70%;
+ height: 100%;
+ padding: 26px 10px;
+ display: flex;
+ align-items: center;
+ justify-content: flex-start;
+}
+.gradient {
+ background-image: linear-gradient(
+ 250deg,
+ rgba(47, 109, 255, 1) 0%,
+ rgba(255, 255, 255, 54) 50%,
+ rgba(47, 109, 255, 1) 100%
+ );
+ width: 100%;
+ height: 30%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: 2px;
+ // margin: 10px;
+}
+.gradientTwo {
+ background-image: linear-gradient(
+ 250deg,
+ rgba(47, 109, 255, 1) 0%,
+ rgba(255, 255, 255, 54) 50%,
+ rgba(47, 109, 255, 1) 100%
+ );
+ width: 100%;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: space-around;
+ padding: 2px;
+}
+.gradientThree {
+ background-image: linear-gradient(
+ 275deg,
+ rgba(47, 109, 255, 1) 0%,
+ rgba(255, 255, 255, 54) 50%,
+ rgba(47, 109, 255, 1) 100%
+ );
+ display: flex;
+ align-items: center;
+ justify-content: space-around;
+ padding: 2px;
+}
+.gradientNext {
+ width: 100%;
+ height: 100%;
+ background-color: #021428;
+ // z-index: 999;
+}
+.gradientNextTwo {
+ width: 100%;
+ height: 100%;
+ background-color: rgba(47, 109, 255, 0.1);
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ padding: 5px;
+ color: #fff;
+}
+.gradientText {
+ font-size: 34px;
+ font-weight: bold;
+ color: #49ebff;
+ font-style: italic;
+ font-family: '站酷庆科黄油体';
+}
+.gradientName {
+ font-size: 12px;
+}
+.gradientTextTwo {
+ font-size: 86px;
+ font-weight: bold;
+ // color: #ef595a;
+ color: #12f714;
+}
+.gradientNameTwo {
+ font-size: 28px;
+}
+.title {
+ background-image: url('../assets/layout/title.png');
+ background-size: cover;
+ background-position: bottom;
+ background-repeat: no-repeat;
+ width: 90%;
+ height: 25px;
+ padding-bottom: 10px;
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ // justify-content: center;
+}
+.circle {
+ width: 12px;
+ height: 12px;
+ background: #021428;
+ border-radius: 50%;
+ border: 3px solid #fff;
+ margin-right: 5px;
+}
+.titlename {
+ color: #fff;
+ font-size: 16px;
+ font-family: '站酷庆科黄油体';
+ letter-spacing: 3px;
+}
+// .risklevelOne {
+// height: 60%;
+// width: 90%;
+// }
+.boxTwo {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ height: 100%;
+ // width: 100%;
+}
+.capsuleChart {
+ width: 100%;
+ height: 100%;
+ display: flex;
+ align-items: flex-start;
+ justify-content: center;
+ flex-direction: column;
+ padding: 20px;
+}
+.scrollboard {
+ width: 90%;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin: 0px 20px 20px 20px;
+ flex: 1;
+}
+.scrollboard :global(.header) {
+ height: auto;
+ padding: 0;
+}
+.scrollboard :global(.dv-scroll-board .rows .ceil) {
+ text-align: center;
+}
+.scrollboard :global(.dv-scroll-board .header .header-item) {
+ text-align: center;
+}
+
+.scoreBox {
+ // background-image: url("../assets/layout/score-box.png");
+ // background-size: cover;
+ // background-position: center;
+ // background-repeat: no-repeat;
+ width: 100%;
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ justify-content: space-between;
+ margin-bottom: 20px;
+}
+.scoreBox1 {
+ background-image: url('../assets/layout/score-box.png');
+ background-size: contain;
+ background-position: center;
+ background-repeat: no-repeat;
+ width: 100%;
+ // height: 140px;
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ justify-content: space-around;
+ margin-bottom: 20px;
+ padding: 5px;
+}
+.score {
+ display: flex;
+ flex-direction: row;
+ // align-items: center;
+ // justify-content: space-between;
+ background-image: url('../assets/layout/ks.png');
+ background-size: cover;
+ background-position: center;
+ background-repeat: no-repeat;
+ object-fit: cover;
+ // width: 230px;
+ width: 33%;
+ height: auto;
+ margin: 10px;
+}
+.score2 {
+ display: flex;
+ flex-direction: row;
+ // align-items: center;
+ // justify-content: space-between;
+ background-image: url('../assets/layout/xk.png');
+ background-size: cover;
+ background-position: center;
+ background-repeat: no-repeat;
+ object-fit: cover;
+ width: 33%;
+ height: auto;
+ margin: 10px;
+}
+.score3 {
+ display: flex;
+ flex-direction: row;
+ // align-items: center;
+ // justify-content: space-between;
+ background-image: url('../assets/layout/wk.png');
+ background-size: cover;
+ background-position: center;
+ background-repeat: no-repeat;
+ object-fit: cover;
+ width: 33%;
+ height: auto;
+ margin: 10px;
+}
+.score4 {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: space-between;
+ background-image: url('../assets/layout/score.png');
+ background-size: contain;
+ background-position: center;
+ background-repeat: no-repeat;
+ width: 30%;
+ padding: 0px 15px;
+ // height: 100%;
+ // margin: 10px;
+}
+.scoreRight {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ width: 40%;
+ margin-left: 50%;
+}
+.scoreLeft {
+ font-size: 12px;
+ font-weight: bold;
+ color: #6cc8d9;
+ margin-top: 5px;
+}
+.scoreText {
+ font-size: 13px;
+ font-weight: bold;
+ color: #6cc8d9;
+}
+.scoreText2 {
+ font-size: 33px;
+ color: #7fffff;
+ font-weight: bold;
+ // font-style: oblique;
+}
+.scoreText3 {
+ font-size: 12px;
+ color: #6cc8d9;
+ font-weight: bold;
+}
+.ulData {
+ li {
+ // transform: rotate(45deg);
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ // margin-left: -20px;
+ // margin-right: -20px;
+ transform: translate(-50%, -50%);
+ }
+ li:nth-of-type(1) {
+ // transform: rotate(45deg);
+ transform: translate(-50%, -50%) rotate(12deg) translate(-280px) rotate(-12deg);
+ // transform-origin: 20px 220px;
+ }
+ li:nth-of-type(2) {
+ transform: translate(-50%, -50%) rotate(38deg) translate(-280px) rotate(-38deg);
+ }
+ li:nth-of-type(3) {
+ transform: translate(-50%, -50%) rotate(64deg) translate(-280px) rotate(-64deg);
+ }
+ li:nth-of-type(4) {
+ transform: translate(-50%, -50%) rotate(90deg) translate(-280px) rotate(-90deg);
+ }
+ li:nth-of-type(5) {
+ transform: translate(-50%, -50%) rotate(116deg) translate(-280px) rotate(-116deg);
+ }
+ li:nth-of-type(6) {
+ transform: translate(-50%, -50%) rotate(142deg) translate(-280px) rotate(-142deg);
+ }
+ li:nth-of-type(7) {
+ transform: translate(-50%, -50%) rotate(168deg) translate(-280px) rotate(-168deg);
+ }
+ li:nth-of-type(8) {
+ transform: translate(-50%, -50%) rotate(-12deg) translate(-280px) rotate(12deg);
+ }
+ li:nth-of-type(9) {
+ transform: translate(-50%, -50%) rotate(-38deg) translate(-280px) rotate(38deg);
+ }
+ li:nth-of-type(10) {
+ transform: translate(-50%, -50%) rotate(-64deg) translate(-280px) rotate(64deg);
+ }
+ li:nth-of-type(11) {
+ transform: translate(-50%, -50%) rotate(-116deg) translate(-280px) rotate(116deg);
+ }
+
+ li:nth-of-type(12) {
+ transform: translate(-50%, -50%) rotate(-142deg) translate(-280px) rotate(142deg);
+ }
+ li:nth-of-type(13) {
+ transform: translate(-50%, -50%) rotate(-168deg) translate(-280px) rotate(168deg);
+ }
+}
+
+.roateData {
+ background-image: linear-gradient(
+ 275deg,
+ rgba(47, 109, 255, 1) 0%,
+ rgba(255, 255, 255, 54) 50%,
+ rgba(47, 109, 255, 1) 100%
+ );
+ display: flex;
+ align-items: center;
+ justify-content: space-around;
+ padding: 2px;
+ // background-color: rgba(47, 109, 255, 0.1);
+}
+.roatBack {
+ background-color: #021428;
+ width: 100%;
+ height: 100%;
+ padding: 5px;
+}
diff --git a/src/plugins/consts/services/route.ts b/src/plugins/consts/services/route.ts
index db21b45..d6227a1 100644
--- a/src/plugins/consts/services/route.ts
+++ b/src/plugins/consts/services/route.ts
@@ -3,6 +3,10 @@ export default [
name: 'LOGIN',
value: '/login'
},
+ {
+ name: 'POPUPWINDOW',
+ value: '/popup'
+ },
{
name: 'HOME',
value: '/home'
diff --git a/src/router.js b/src/router.js
index 97a53c1..a507c04 100644
--- a/src/router.js
+++ b/src/router.js
@@ -1,34 +1,42 @@
-import React from 'react'
-import { ConfigProvider } from 'antd'
-import { Router, Route, Switch } from 'dva/router'
-import MainLayout from './layout/Main'
-import Login from './routes/Login'
-import Home from './routes/Home'
-import GroupHome from './routes/GroupHome'
-import Main from './routes/Main'
-import Backend from './routes/Backend'
-import HomeMobileNew from './routes/HomeMobileNew'
-import { $consts } from './plugins'
-import zhCN from 'antd/lib/locale-provider/zh_CN'
-import 'moment/src/locale/zh-cn'
+import React from 'react';
+import { ConfigProvider } from 'antd';
+import { Router, Route, Switch } from 'dva/router';
+import MainLayout from './layout/Main';
+import Login from './routes/Login';
+import Home from './routes/Home';
+import GroupHome from './routes/GroupHome';
+import Main from './routes/Main';
+import Backend from './routes/Backend';
+import HomeMobileNew from './routes/HomeMobileNew';
+import { $consts } from './plugins';
+import zhCN from 'antd/lib/locale-provider/zh_CN';
+import 'moment/src/locale/zh-cn';
+import PopupWindow from './components/PopupWindow';
function RouterConfig({ history }) {
return (
-
-
-
-
-
-
-
- {/* */}
-
-
+
+
+ {/* 其他页面使用 MainLayout */}
+ (
+
+
+
+
+
+
+
+
+
+ )}
+ />
+
- )
+ );
}
-export default RouterConfig
+export default RouterConfig;
From c0ae7bb66594e39dc25747b5e801b102d3c3bb41 Mon Sep 17 00:00:00 2001
From: yunkexin <760754045@qq.com>
Date: Mon, 19 Jan 2026 09:28:06 +0800
Subject: [PATCH 03/11] 1
---
src/layout/FullScreenInter.js | 10 +-
src/utils/customConfig.js | 440 +++++++++++++++++++---------------
2 files changed, 255 insertions(+), 195 deletions(-)
diff --git a/src/layout/FullScreenInter.js b/src/layout/FullScreenInter.js
index fc48f5a..8423e86 100644
--- a/src/layout/FullScreenInter.js
+++ b/src/layout/FullScreenInter.js
@@ -43,12 +43,12 @@ class FullScreen extends React.Component {
sliderColor: '#de4e58',
sliderSize: '24px',
nowDate: '',
- riskTypeRate: {}, //风险等级占比
- jobTodayTop3: {}, //当日工作票排名前三
+ riskTypeRate: [], //风险等级占比
+ jobTodayTop3: [], //当日工作票排名前三
hiddenRectifyRate: {}, //隐患整改率
- taskTop3: {}, //各事项排名前三
- jobFinishRate: {}, //作业现场完成情况统计
- safeCheckSum: {}, //各公司安全检查统计
+ taskTop3: [], //各事项排名前三
+ jobFinishRate: [], //作业现场完成情况统计
+ safeCheckSum: [], //各公司安全检查统计
riskChangeData: [
{ name: '隐患数量', value: 103 },
{ name: '延期整改数', value: 18 },
diff --git a/src/utils/customConfig.js b/src/utils/customConfig.js
index 37943f8..64cc789 100644
--- a/src/utils/customConfig.js
+++ b/src/utils/customConfig.js
@@ -1,119 +1,127 @@
-import Loadable from 'react-loadable'
-import React from 'react'
+import Loadable from 'react-loadable';
+import React from 'react';
// 优化的共�?loading 组件
const LoadingComponent = ({ isLoading, error }) => {
if (error) {
- return
组件加载失败
+ return
组件加载失败
;
}
if (isLoading) {
- return
加载�?..
+ return
加载�?..
;
}
- return null
-}
+ return null;
+};
// 优化�?Loadable 配置函数
-const createLoadableComponent = (importFunc) => Loadable({
- loader: importFunc,
- loading: LoadingComponent,
- delay: 200, // 延迟显示 loading,避免闪�?
- timeout: 10000 // 10秒超�?
-})
+const createLoadableComponent = (importFunc) =>
+ Loadable({
+ loader: importFunc,
+ loading: LoadingComponent,
+ delay: 200, // 延迟显示 loading,避免闪�?
+ timeout: 10000, // 10秒超�?
+ });
-const SC022Import = createLoadableComponent(() => import('../components/CustomPages/SC/SC022Import'))
-const SC022ImportData = createLoadableComponent(() => import('../components/CustomPages/SC/SC022ImportData'))
-const FMUserEditPage = createLoadableComponent(() => import('../components/CustomPages/FM/UserEditPage'))
-const FMUserEditPageAuth = createLoadableComponent(() => import('../components/CustomPages/FM/UserEditPageAuth'))
-const FMUserGroupEditPage = createLoadableComponent(() => import('../components/CustomPages/FM/UserGroupEditPage'))
-const PFCustomPageConfigPage = createLoadableComponent(() => import('../components/CustomPages/PF/CustomPageConfigPage'))
-const FMRoleGroupEditPage = createLoadableComponent(() => import('../components/CustomPages/FM/RoleGroupEditPage'))
-const FMRoleEditPage = createLoadableComponent(() => import('../components/CustomPages/FM/RoleEditPage'))
+const SC022Import = createLoadableComponent(() => import('../components/CustomPages/SC/SC022Import'));
+const SC022ImportData = createLoadableComponent(() => import('../components/CustomPages/SC/SC022ImportData'));
+const FMUserEditPage = createLoadableComponent(() => import('../components/CustomPages/FM/UserEditPage'));
+const FMUserEditPageAuth = createLoadableComponent(() => import('../components/CustomPages/FM/UserEditPageAuth'));
+const FMUserGroupEditPage = createLoadableComponent(() => import('../components/CustomPages/FM/UserGroupEditPage'));
+const PFCustomPageConfigPage = createLoadableComponent(() =>
+ import('../components/CustomPages/PF/CustomPageConfigPage')
+);
+const FMRoleGroupEditPage = createLoadableComponent(() => import('../components/CustomPages/FM/RoleGroupEditPage'));
+const FMRoleEditPage = createLoadableComponent(() => import('../components/CustomPages/FM/RoleEditPage'));
-const FM204ShowPrint = createLoadableComponent(() => import('../components/CustomPages/FM/FM204ShowPrint'))
+const FM204ShowPrint = createLoadableComponent(() => import('../components/CustomPages/FM/FM204ShowPrint'));
-const FMBaseConfig = createLoadableComponent(() => import('../components/CustomPages/FM/BaseConfig'))
+const FMBaseConfig = createLoadableComponent(() => import('../components/CustomPages/FM/BaseConfig'));
-const PFFlowSchemesEditPage = createLoadableComponent(() => import('../components/CustomPages/PF/FlowSchemesEditPage'))
+const PFFlowSchemesEditPage = createLoadableComponent(() => import('../components/CustomPages/PF/FlowSchemesEditPage'));
-const PFFlowSchemesShowPage = createLoadableComponent(() => import('../components/CustomPages/PF/FlowSchemesShowPage'))
+const PFFlowSchemesShowPage = createLoadableComponent(() => import('../components/CustomPages/PF/FlowSchemesShowPage'));
-const PFFlowPermitEditPage = createLoadableComponent(() => import('../components/CustomPages/PF/FlowPermitEditPage'))
+const PFFlowPermitEditPage = createLoadableComponent(() => import('../components/CustomPages/PF/FlowPermitEditPage'));
-const PFFormConfigSqlPage = createLoadableComponent(() => import('../components/CustomPages/PF/FormConfigSqlPage'))
-const PF147ShowPrint = createLoadableComponent(() => import('../components/CustomPages/PF/PF147ShowPrint'))
+const PFFormConfigSqlPage = createLoadableComponent(() => import('../components/CustomPages/PF/FormConfigSqlPage'));
+const PF147ShowPrint = createLoadableComponent(() => import('../components/CustomPages/PF/PF147ShowPrint'));
-const WOSOPViewPage = createLoadableComponent(() => import('../components/CustomPages/WO/SOPViewPage'))
+const WOSOPViewPage = createLoadableComponent(() => import('../components/CustomPages/WO/SOPViewPage'));
-const FMCustomImportPage = createLoadableComponent(() => import('../components/CustomPages/FM/CustomImportPage'))
+const FMCustomImportPage = createLoadableComponent(() => import('../components/CustomPages/FM/CustomImportPage'));
-const FMNodeSchedulingPage = createLoadableComponent(() => import('../components/CustomPages/FM/NodeSchedulingPage'))
+const FMNodeSchedulingPage = createLoadableComponent(() => import('../components/CustomPages/FM/NodeSchedulingPage'));
-const PFEntitySqlPage = createLoadableComponent(() => import('../components/CustomPages/PF/EntitySqlPage'))
+const PFEntitySqlPage = createLoadableComponent(() => import('../components/CustomPages/PF/EntitySqlPage'));
-const PFInitDestOrgPage = createLoadableComponent(() => import('../components/CustomPages/PF/InitDestOrgPage'))
+const PFInitDestOrgPage = createLoadableComponent(() => import('../components/CustomPages/PF/InitDestOrgPage'));
-const PFEntityFieldListPage = createLoadableComponent(() => import('../components/CustomPages/PF/EntityFieldListPage'))
+const PFEntityFieldListPage = createLoadableComponent(() => import('../components/CustomPages/PF/EntityFieldListPage'));
-const PFExecuteSqlPage = createLoadableComponent(() => import('../components/CustomPages/PF/ExecuteSqlPage'))
+const PFExecuteSqlPage = createLoadableComponent(() => import('../components/CustomPages/PF/ExecuteSqlPage'));
-const PFSendInfoToClientPage = createLoadableComponent(() => import('../components/CustomPages/PF/SendInfoToClientPage'))
+const PFSendInfoToClientPage = createLoadableComponent(() =>
+ import('../components/CustomPages/PF/SendInfoToClientPage')
+);
-const PFFormConfigByNamePage = createLoadableComponent(() => import('../components/CustomPages/PF/FormConfigByNamePage'))
+const PFFormConfigByNamePage = createLoadableComponent(() =>
+ import('../components/CustomPages/PF/FormConfigByNamePage')
+);
-const BDPictureEditPage = createLoadableComponent(() => import('../components/CustomPages/BD/PictureEditPage'))
+const BDPictureEditPage = createLoadableComponent(() => import('../components/CustomPages/BD/PictureEditPage'));
-const BDHmiPage = createLoadableComponent(() => import('../components/CustomPages/BD/BDHmiPage'))
+const BDHmiPage = createLoadableComponent(() => import('../components/CustomPages/BD/BDHmiPage'));
-const BDWordPage = createLoadableComponent(() => import('../components/CustomPages/BD/BDWordPage'))
+const BDWordPage = createLoadableComponent(() => import('../components/CustomPages/BD/BDWordPage'));
-const FoPreOperSch = createLoadableComponent(() => import('../components/CustomPages/FO/FoPreOperSch'))
+const FoPreOperSch = createLoadableComponent(() => import('../components/CustomPages/FO/FoPreOperSch'));
-const FoTeamActivityShowPrint = createLoadableComponent(() => import('../components/CustomPages/FO/FoTeamActivityShowPrint'))
+const FoTeamActivityShowPrint = createLoadableComponent(() =>
+ import('../components/CustomPages/FO/FoTeamActivityShowPrint')
+);
-const PFCommonApprove = createLoadableComponent(() => import('../components/CustomPages/PF/PFCommonApprove'))
+const PFCommonApprove = createLoadableComponent(() => import('../components/CustomPages/PF/PFCommonApprove'));
-const PFCommonApproveView = createLoadableComponent(() => import('../components/CustomPages/PF/PFCommonApproveView'))
+const PFCommonApproveView = createLoadableComponent(() => import('../components/CustomPages/PF/PFCommonApproveView'));
-const PFTodayReminder = createLoadableComponent(() => import('../components/CustomPages/PF/PFTodayReminder'))
-const SelectUser = createLoadableComponent(() => import('../components/CustomPages/FM/SelectUser'))
-const FO003ShowPrint = createLoadableComponent(() => import('../components/CustomPages/FO/FO003ShowPrint'))
-const FO003ShowPrintJD = createLoadableComponent(() => import('../components/CustomPages/FO/FO003ShowPrintJD'))
-const FO005ShowPrint = createLoadableComponent(() => import('../components/CustomPages/FO/FO005ShowPrint'))
-const FOChangeShfitRecord = createLoadableComponent(() => import('../components/CustomPages/FO/FOChangeShfitRecord'))
-const HM047ShowPrint = createLoadableComponent(() => import('../components/CustomPages/HM/HM047ShowPrint'))
-const HM040ShowPrint = createLoadableComponent(() => import('../components/CustomPages/HM/HM040ShowPrint'))
-const HM042ShowPrint = createLoadableComponent(() => import('../components/CustomPages/HM/HM042ShowPrint'))
-const HM001ShowPrint = createLoadableComponent(() => import('../components/CustomPages/HM/HM001ShowPrint'))
+const PFTodayReminder = createLoadableComponent(() => import('../components/CustomPages/PF/PFTodayReminder'));
+const SelectUser = createLoadableComponent(() => import('../components/CustomPages/FM/SelectUser'));
+const FO003ShowPrint = createLoadableComponent(() => import('../components/CustomPages/FO/FO003ShowPrint'));
+const FO003ShowPrintJD = createLoadableComponent(() => import('../components/CustomPages/FO/FO003ShowPrintJD'));
+const FO005ShowPrint = createLoadableComponent(() => import('../components/CustomPages/FO/FO005ShowPrint'));
+const FOChangeShfitRecord = createLoadableComponent(() => import('../components/CustomPages/FO/FOChangeShfitRecord'));
+const HM047ShowPrint = createLoadableComponent(() => import('../components/CustomPages/HM/HM047ShowPrint'));
+const HM040ShowPrint = createLoadableComponent(() => import('../components/CustomPages/HM/HM040ShowPrint'));
+const HM042ShowPrint = createLoadableComponent(() => import('../components/CustomPages/HM/HM042ShowPrint'));
+const HM001ShowPrint = createLoadableComponent(() => import('../components/CustomPages/HM/HM001ShowPrint'));
-const HM123ShowPrint = createLoadableComponent(() => import('../components/CustomPages/HM/HM123ShowPrint'))
+const HM123ShowPrint = createLoadableComponent(() => import('../components/CustomPages/HM/HM123ShowPrint'));
+const FileViewerShow = createLoadableComponent(() => import('../components/common/FileViewerShow'));
-const FileViewerShow = createLoadableComponent(() => import('../components/common/FileViewerShow'))
+const FO017ShowPrint = createLoadableComponent(() => import('../components/CustomPages/FO/FO017ShowPrint'));
+const FO017ShowPrintJD = createLoadableComponent(() => import('../components/CustomPages/FO/FO017ShowPrintJD'));
+const FO021ShowPrint = createLoadableComponent(() => import('../components/CustomPages/FO/FO021ShowPrint'));
+const FO022ShowPrint = createLoadableComponent(() => import('../components/CustomPages/FO/FO022ShowPrint'));
+const FO015ShowPrint = createLoadableComponent(() => import('../components/CustomPages/FO/FO015ShowPrint'));
+const FO008ShowPrint = createLoadableComponent(() => import('../components/CustomPages/FO/FO008ShowPrint'));
+const FO021EditPage = createLoadableComponent(() => import('../components/CustomPages/FO/FO021EditPage'));
+const FO019ShowPrint = createLoadableComponent(() => import('../components/CustomPages/FO/FO019ShowPrint'));
+const FO035ShowPrint = createLoadableComponent(() => import('../components/CustomPages/FO/FO035ShowPrint'));
+const FO037ShowPrint = createLoadableComponent(() => import('../components/CustomPages/FO/FO037ShowPrint'));
+const FO041ShowPrint = createLoadableComponent(() => import('../components/CustomPages/FO/FO041ShowPrint'));
+const FO043ShowPrint = createLoadableComponent(() => import('../components/CustomPages/FO/FO043ShowPrint'));
+const FO045ShowPrint = createLoadableComponent(() => import('../components/CustomPages/FO/FO045ShowPrint'));
-const FO017ShowPrint = createLoadableComponent(() => import('../components/CustomPages/FO/FO017ShowPrint'))
-const FO017ShowPrintJD = createLoadableComponent(() => import('../components/CustomPages/FO/FO017ShowPrintJD'))
-const FO021ShowPrint = createLoadableComponent(() => import('../components/CustomPages/FO/FO021ShowPrint'))
-const FO022ShowPrint = createLoadableComponent(() => import('../components/CustomPages/FO/FO022ShowPrint'))
-const FO015ShowPrint = createLoadableComponent(() => import('../components/CustomPages/FO/FO015ShowPrint'))
-const FO008ShowPrint = createLoadableComponent(() => import('../components/CustomPages/FO/FO008ShowPrint'))
-const FO021EditPage = createLoadableComponent(() => import('../components/CustomPages/FO/FO021EditPage'))
-const FO019ShowPrint = createLoadableComponent(() => import('../components/CustomPages/FO/FO019ShowPrint'))
-const FO035ShowPrint = createLoadableComponent(() => import('../components/CustomPages/FO/FO035ShowPrint'))
-const FO037ShowPrint = createLoadableComponent(() => import('../components/CustomPages/FO/FO037ShowPrint'))
-const FO041ShowPrint = createLoadableComponent(() => import('../components/CustomPages/FO/FO041ShowPrint'))
-const FO043ShowPrint = createLoadableComponent(() => import('../components/CustomPages/FO/FO043ShowPrint'))
-const FO045ShowPrint = createLoadableComponent(() => import('../components/CustomPages/FO/FO045ShowPrint'))
+const PreMeetingTask = createLoadableComponent(() => import('../components/CustomPages/Mobile/PreMeetingTask'));
+const PreOperSchTask = createLoadableComponent(() => import('../components/CustomPages/Mobile/PreOperSchTask'));
+const PF132ShowPrint = createLoadableComponent(() => import('../components/CustomPages/PF/PF132ShowPrint'));
+const RiskSubmit = createLoadableComponent(() => import('../components/CustomPages/Mobile/RiskSubmit'));
+const CrucialLicenseJob = createLoadableComponent(() => import('../components/CustomPages/Mobile/CrucialLicenseJob'));
-const PreMeetingTask = createLoadableComponent(() => import('../components/CustomPages/Mobile/PreMeetingTask'))
-const PreOperSchTask = createLoadableComponent(() => import('../components/CustomPages/Mobile/PreOperSchTask'))
-const PF132ShowPrint = createLoadableComponent(() => import('../components/CustomPages/PF/PF132ShowPrint'))
-const RiskSubmit = createLoadableComponent(() => import('../components/CustomPages/Mobile/RiskSubmit'))
-const CrucialLicenseJob = createLoadableComponent(() => import('../components/CustomPages/Mobile/CrucialLicenseJob'))
+const SCShowPrint = createLoadableComponent(() => import('../components/CustomPages/SC/SCShowPrint'));
-const SCShowPrint = createLoadableComponent(() => import('../components/CustomPages/SC/SCShowPrint'))
-
-const SC046ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SC/SC046ShowPrint'))
-const SC052ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SC/SC052ShowPrint'))
+const SC046ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SC/SC046ShowPrint'));
+const SC052ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SC/SC052ShowPrint'));
// const CM018ShowPrint = createLoadableComponent(() => import('../components/CustomPages/CM/CM018ShowPrint'))
// const CM002ShowPrint = createLoadableComponent(() => import('../components/CustomPages/CM/CM002ShowPrint'))
@@ -130,34 +138,34 @@ const SC052ShowPrint = createLoadableComponent(() => import('../components/Custo
// const CM043ShowPrint = createLoadableComponent(() => import('../components/CustomPages/CM/CM043ShowPrint'))
// const CM045ShowPrint = createLoadableComponent(() => import('../components/CustomPages/CM/CM045ShowPrint'))
-const SE001EditPage = createLoadableComponent(() => import('../components/CustomPages/SE/SE001EditPage'))
-const SEConfigPage = createLoadableComponent(() => import('../components/CustomPages/SE/SEConfigPage'))
-const SE005ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SE/SE005ShowPrint'))
-const SESafeSurveyTest = createLoadableComponent(() => import('../components/CustomPages/SE/SESafeSurveyTest'))
-const SE005ReportEdit = createLoadableComponent(() => import('../components/CustomPages/SE/SE005ReportEdit'))
-const SE007AllView = createLoadableComponent(() => import('../components/CustomPages/SE/SE007AllView'))
-const SE009ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SE/SE009ShowPrint'))
-const SE011ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SE/SE011ShowPrint'))
-const SE013ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SE/SE013ShowPrint'))
-const SE015ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SE/SE015ShowPrint'))
-const SE018EditPage = createLoadableComponent(() => import('../components/CustomPages/SE/SE018EditPage'))
-const SE018PaperPage = createLoadableComponent(() => import('../components/CustomPages/SE/SE018PaperPage'))
-const SE019ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SE/SE019ShowPrint'))
-const SE021ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SE/SE021ShowPrint'))
-const SE061ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SE/SE061ShowPrint'))
-const SE071ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SE/SE071ShowPrint'))
-const SE061PaperPage = createLoadableComponent(() => import('../components/CustomPages/SE/SE061PaperPage'))
-const SE062ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SE/SE062ShowPrint'))
-const SE063ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SE/SE063ShowPrint'))
-const SE051ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SE/SE051ShowPrint'))
-const SE007ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SE/SE007ShowPrint'))
+const SE001EditPage = createLoadableComponent(() => import('../components/CustomPages/SE/SE001EditPage'));
+const SEConfigPage = createLoadableComponent(() => import('../components/CustomPages/SE/SEConfigPage'));
+const SE005ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SE/SE005ShowPrint'));
+const SESafeSurveyTest = createLoadableComponent(() => import('../components/CustomPages/SE/SESafeSurveyTest'));
+const SE005ReportEdit = createLoadableComponent(() => import('../components/CustomPages/SE/SE005ReportEdit'));
+const SE007AllView = createLoadableComponent(() => import('../components/CustomPages/SE/SE007AllView'));
+const SE009ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SE/SE009ShowPrint'));
+const SE011ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SE/SE011ShowPrint'));
+const SE013ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SE/SE013ShowPrint'));
+const SE015ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SE/SE015ShowPrint'));
+const SE018EditPage = createLoadableComponent(() => import('../components/CustomPages/SE/SE018EditPage'));
+const SE018PaperPage = createLoadableComponent(() => import('../components/CustomPages/SE/SE018PaperPage'));
+const SE019ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SE/SE019ShowPrint'));
+const SE021ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SE/SE021ShowPrint'));
+const SE061ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SE/SE061ShowPrint'));
+const SE071ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SE/SE071ShowPrint'));
+const SE061PaperPage = createLoadableComponent(() => import('../components/CustomPages/SE/SE061PaperPage'));
+const SE062ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SE/SE062ShowPrint'));
+const SE063ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SE/SE063ShowPrint'));
+const SE051ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SE/SE051ShowPrint'));
+const SE007ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SE/SE007ShowPrint'));
-const BI001HomeDetail = createLoadableComponent(() => import('../components/CustomPages/BI/BI001HomeDetail'))
-const BI002HomeDetail = createLoadableComponent(() => import('../components/CustomPages/BI/BI002HomeDetail'))
+const BI001HomeDetail = createLoadableComponent(() => import('../components/CustomPages/BI/BI001HomeDetail'));
+const BI002HomeDetail = createLoadableComponent(() => import('../components/CustomPages/BI/BI002HomeDetail'));
// const BI054HomeDetail = createLoadableComponent(() => import('../components/CustomPages/BI/BI054HomeDetail'))
// const BI055HomeDetail = createLoadableComponent(() => import('../components/CustomPages/BI/BI055HomeDetail'))
// const BI004FormRunAnalysis = createLoadableComponent(() => import('../components/CustomPages/BI/BI004FormRunAnalysis'))
-const BI005LoginRecord = createLoadableComponent(() => import('../components/CustomPages/BI/BI005LoginRecord'))
+const BI005LoginRecord = createLoadableComponent(() => import('../components/CustomPages/BI/BI005LoginRecord'));
// const BI006FormRunAnalysis = createLoadableComponent(() => import('../components/CustomPages/BI/BI006FormRunAnalysis'))
// const BI006FormRunAnalysisNew = createLoadableComponent(() => import('../components/CustomPages/BI/BI006FormRunAnalysisNew'))
// const BI007FormRunAnalysis = createLoadableComponent(() => import('../components/CustomPages/BI/BI007FormRunAnalysis'))
@@ -165,23 +173,25 @@ const BI005LoginRecord = createLoadableComponent(() => import('../components/Cus
// const BI008FormRunAnalysis = createLoadableComponent(() => import('../components/CustomPages/BI/BI008FormRunAnalysis'))
// const BI009RiskAnalysis = createLoadableComponent(() => import('../components/CustomPages/BI/BI009RiskAnalysis'))
// const BI010FormRunAnalysis = createLoadableComponent(() => import('../components/CustomPages/BI/BI010FormRunAnalysis'))
-const BI011FormRunAnalysis = createLoadableComponent(() => import('../components/CustomPages/BI/BI011FormRunAnalysis'))
-const BI011TrainSafeAnalysis = createLoadableComponent(() => import('../components/CustomPages/BI/BI011TrainSafeAnalysis'))
+const BI011FormRunAnalysis = createLoadableComponent(() => import('../components/CustomPages/BI/BI011FormRunAnalysis'));
+const BI011TrainSafeAnalysis = createLoadableComponent(() =>
+ import('../components/CustomPages/BI/BI011TrainSafeAnalysis')
+);
// const BI012NotificationTaskAnalysis = createLoadableComponent(() => import('../components/CustomPages/BI/BI012NotificationTaskAnalysis'))
// const BI013RiskAnalysisModel = createLoadableComponent(() => import('../components/CustomPages/BI/BI013RiskAnalysisModel'))
-const BI030FormRunAnalysis = createLoadableComponent(() => import('../components/CustomPages/BI/BI030FormRunAnalysis'))
+const BI030FormRunAnalysis = createLoadableComponent(() => import('../components/CustomPages/BI/BI030FormRunAnalysis'));
// const BI060MapeShow = createLoadableComponent(() => import('../components/CustomPages/BI/BI060MapeShow'))
// const BI060MapePoint = createLoadableComponent(() => import('../components/CustomPages/BI/BI060MapePoint'))
// const BI061MapeGISShow = createLoadableComponent(() => import('../components/CustomPages/BI/BI061MapeGISShow'))
-const BI009FormRunAnalysis = createLoadableComponent(() => import('../components/CustomPages/BI/BI009FormRunAnalysis'))
-const BIView = createLoadableComponent(() => import('../components/CustomPages/BI/BIView'))
+const BI009FormRunAnalysis = createLoadableComponent(() => import('../components/CustomPages/BI/BI009FormRunAnalysis'));
+const BIView = createLoadableComponent(() => import('../components/CustomPages/BI/BIView'));
// const BI001 = createLoadableComponent(() => import('../components/CustomPages/BI/BI001'))
// const BI050BSSafeCheck = createLoadableComponent(() => import('../components/CustomPages/BI/BI050BSSafeCheck'))
// const BI051BSCompanyYear = createLoadableComponent(() => import('../components/CustomPages/BI/BI051BSCompanyYearOne'))
// const BI052BSSafeCheckYear = createLoadableComponent(() => import('../components/CustomPages/BI/BI052BSSafeCheckYearOne'))
// const BI053BSSafeCheckYear = createLoadableComponent(() => import('../components/CustomPages/BI/BI053BSSafeCheckYearOne'))
-const BI056Performance = createLoadableComponent(() => import('../components/CustomPages/BI/BI056Performance'))
+const BI056Performance = createLoadableComponent(() => import('../components/CustomPages/BI/BI056Performance'));
// const BI056Dilg1_1 = createLoadableComponent(() => import('../components/CustomPages/BI/BI056Dilg1_1'))
// const BI056Dilg1_2 = createLoadableComponent(() => import('../components/CustomPages/BI/BI056Dilg1_2'))
// const BI056Dilg2_1 = createLoadableComponent(() => import('../components/CustomPages/BI/BI056Dilg2_1'))
@@ -189,83 +199,106 @@ const BI056Performance = createLoadableComponent(() => import('../components/Cus
// const BI056Dilg3_1 = createLoadableComponent(() => import('../components/CustomPages/BI/BI056Dilg3_1'))
// const BI056Dilg3_2 = createLoadableComponent(() => import('../components/CustomPages/BI/BI056Dilg3_2'))
// const BI003StatiscialAnalysis = createLoadableComponent(() => import('../components/CustomPages/BI/BI003StatiscialAnalysis'))
-const BI020ApproveAnalysis = createLoadableComponent(() => import('../components/CustomPages/BI/BI020ApproveAnalysis'))
-const BI014RiskPerformanceModel = createLoadableComponent(() => import('../components/CustomPages/BI/BI014RiskPerformanceModel'))
-const BI012FormRunAnalysis = createLoadableComponent(() => import('../components/CustomPages/BI/BI012FormRunAnalysis'))
+const BI020ApproveAnalysis = createLoadableComponent(() => import('../components/CustomPages/BI/BI020ApproveAnalysis'));
+const BI014RiskPerformanceModel = createLoadableComponent(() =>
+ import('../components/CustomPages/BI/BI014RiskPerformanceModel')
+);
+const BI012FormRunAnalysis = createLoadableComponent(() => import('../components/CustomPages/BI/BI012FormRunAnalysis'));
-const PF136FormRunAnalysis = createLoadableComponent(() => import('../components/CustomPages/PF/PF136FormRunAnalysis'))
-const PF139FormRunAnalysis = createLoadableComponent(() => import('../components/CustomPages/PF/PF139FormRunAnalysis'))
+const PF136FormRunAnalysis = createLoadableComponent(() => import('../components/CustomPages/PF/PF136FormRunAnalysis'));
+const PF139FormRunAnalysis = createLoadableComponent(() => import('../components/CustomPages/PF/PF139FormRunAnalysis'));
-const FO025ShowPrint = createLoadableComponent(() => import('../components/CustomPages/FO/FO025ShowPrint'))
+const FO025ShowPrint = createLoadableComponent(() => import('../components/CustomPages/FO/FO025ShowPrint'));
-const SK035ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK035ShowPrint'))
+const SK035ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK035ShowPrint'));
-const HM061ShowPrint = createLoadableComponent(() => import('../components/CustomPages/HM/HM061ShowPrint'))
-const HM063ShowPrint = createLoadableComponent(() => import('../components/CustomPages/HM/HM063ShowPrint'))
-const HM101ShowPrint = createLoadableComponent(() => import('../components/CustomPages/HM/HM101ShowPrint'))
-const HM099ShowPrint = createLoadableComponent(() => import('../components/CustomPages/HM/HM099ShowPrint'))
-const HM121ShowPrint = createLoadableComponent(() => import('../components/CustomPages/HM/HM121ShowPrint'))
+const HM061ShowPrint = createLoadableComponent(() => import('../components/CustomPages/HM/HM061ShowPrint'));
+const HM063ShowPrint = createLoadableComponent(() => import('../components/CustomPages/HM/HM063ShowPrint'));
+const HM101ShowPrint = createLoadableComponent(() => import('../components/CustomPages/HM/HM101ShowPrint'));
+const HM099ShowPrint = createLoadableComponent(() => import('../components/CustomPages/HM/HM099ShowPrint'));
+const HM121ShowPrint = createLoadableComponent(() => import('../components/CustomPages/HM/HM121ShowPrint'));
-const HM104ShowPrint = createLoadableComponent(() => import('../components/CustomPages/HM/HM104ShowPrint'))
-const HM087ShowPrint = createLoadableComponent(() => import('../components/CustomPages/HM/HM087ShowPrint'))
-const HM109ShowPrint = createLoadableComponent(() => import('../components/CustomPages/HM/HM109ShowPrint'))
-const HM129ShowPrint = createLoadableComponent(() => import('../components/CustomPages/HM/HM129ShowPrint'))
+const HM104ShowPrint = createLoadableComponent(() => import('../components/CustomPages/HM/HM104ShowPrint'));
+const HM087ShowPrint = createLoadableComponent(() => import('../components/CustomPages/HM/HM087ShowPrint'));
+const HM109ShowPrint = createLoadableComponent(() => import('../components/CustomPages/HM/HM109ShowPrint'));
+const HM129ShowPrint = createLoadableComponent(() => import('../components/CustomPages/HM/HM129ShowPrint'));
-const HM107ShowPrint = createLoadableComponent(() => import('../components/CustomPages/HM/HM107ShowPrint'))
+const HM107ShowPrint = createLoadableComponent(() => import('../components/CustomPages/HM/HM107ShowPrint'));
-const HM111ShowPrint = createLoadableComponent(() => import('../components/CustomPages/HM/HM111ShowPrint'))
-const HMTasks = createLoadableComponent(() => import('../components/CustomPages/HM/HMTasks'))
+const HM111ShowPrint = createLoadableComponent(() => import('../components/CustomPages/HM/HM111ShowPrint'));
+const HMTasks = createLoadableComponent(() => import('../components/CustomPages/HM/HMTasks'));
-
-
-
-const CloseTasks = createLoadableComponent(() => import('../components/CustomPages/BI/CloseTasks'))
-const FM202ShowPrint = createLoadableComponent(() => import('../components/CustomPages/FM/FM202ShowPrint'))
-const PFApproveRole = createLoadableComponent(() => import('../components/CustomPages/PF/PFApproveRole'))
-const SK002ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK002ShowPrint'))
-const SK002CheckList = createLoadableComponent(() => import('../components/CustomPages/SK/SK002CheckList'))
-const SK002ShowSummary = createLoadableComponent(() => import('../components/CustomPages/SK/SK002ShowSummary'))
-const SK004ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK004ShowPrint'))
-const SK004CheckList = createLoadableComponent(() => import('../components/CustomPages/SK/SK004CheckList'))
-const SK004CheckListNew = createLoadableComponent(() => import('../components/CustomPages/SK/SK004CheckListNew'))
-const SK004CheckPost = createLoadableComponent(() => import('../components/CustomPages/SK/SK004CheckPost'))
-const SK004ShowSummary = createLoadableComponent(() => import('../components/CustomPages/SK/SK004ShowSummary'))
-const SK004Import = createLoadableComponent(() => import('../components/CustomPages/SK/SK004Import'))
-const SK006ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK006ShowPrint'))
-const SK006ShowOperateLog = createLoadableComponent(() => import('../components/CustomPages/SK/SK006ShowOperateLog'))
-const SK010ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK010ShowPrint'))
-const SK012ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK012ShowPrint'))
-const SK014ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK014ShowPrint'))
-const SK010CheckList = createLoadableComponent(() => import('../components/CustomPages/SK/SK010CheckList'))
-const SK016ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK016ShowPrint'))
-const SK018ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK018ShowPrint'))
-const SK020ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK020ShowPrint'))
-const SK022ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK022ShowPrint'))
-const SK024ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK024ShowPrint'))
-const SK026ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK026ShowPrint'))
-const SK027ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK027ShowPrint'))
-const SK031ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK031ShowPrint'))
-const SK033ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK033ShowPrint'))
+const CloseTasks = createLoadableComponent(() => import('../components/CustomPages/BI/CloseTasks'));
+const FM202ShowPrint = createLoadableComponent(() => import('../components/CustomPages/FM/FM202ShowPrint'));
+const PFApproveRole = createLoadableComponent(() => import('../components/CustomPages/PF/PFApproveRole'));
+const SK002ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK002ShowPrint'));
+const SK002CheckList = createLoadableComponent(() => import('../components/CustomPages/SK/SK002CheckList'));
+const SK002ShowSummary = createLoadableComponent(() => import('../components/CustomPages/SK/SK002ShowSummary'));
+const SK004ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK004ShowPrint'));
+const SK004CheckList = createLoadableComponent(() => import('../components/CustomPages/SK/SK004CheckList'));
+const SK004CheckListNew = createLoadableComponent(() => import('../components/CustomPages/SK/SK004CheckListNew'));
+const SK004CheckPost = createLoadableComponent(() => import('../components/CustomPages/SK/SK004CheckPost'));
+const SK004ShowSummary = createLoadableComponent(() => import('../components/CustomPages/SK/SK004ShowSummary'));
+const SK004Import = createLoadableComponent(() => import('../components/CustomPages/SK/SK004Import'));
+const SK006ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK006ShowPrint'));
+const SK006ShowOperateLog = createLoadableComponent(() => import('../components/CustomPages/SK/SK006ShowOperateLog'));
+const SK010ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK010ShowPrint'));
+const SK012ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK012ShowPrint'));
+const SK014ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK014ShowPrint'));
+const SK010CheckList = createLoadableComponent(() => import('../components/CustomPages/SK/SK010CheckList'));
+const SK016ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK016ShowPrint'));
+const SK018ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK018ShowPrint'));
+const SK020ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK020ShowPrint'));
+const SK022ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK022ShowPrint'));
+const SK024ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK024ShowPrint'));
+const SK026ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK026ShowPrint'));
+const SK027ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK027ShowPrint'));
+const SK031ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK031ShowPrint'));
+const SK033ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK033ShowPrint'));
// 该组件已在上方声明,此处去除重复定义
-const SK035CheckLibrary = createLoadableComponent(() => import('../components/CustomPages/SK/SK035CheckLibrary'))
-const SK037ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK037ShowPrint'))
-const SK039ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK039ShowPrint'))
-const SK041ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK041ShowPrint'))
-const SK043ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK043ShowPrint'))
-const SK045ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK045ShowPrint'))
+const SK035CheckLibrary = createLoadableComponent(() => import('../components/CustomPages/SK/SK035CheckLibrary'));
+const SK037ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK037ShowPrint'));
+const SK039ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK039ShowPrint'));
+const SK041ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK041ShowPrint'));
+const SK043ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK043ShowPrint'));
+const SK045ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK045ShowPrint'));
+const BI00FullScreen = createLoadableComponent(() => import('../components/CustomPages/BI/BI00FullScreen'));
export default function (componentName, formId, formParam, data, formCode, formData) {
return {
-
- SC022Import:
,
- SC022ImportData:
,
- FMUserEditPage:
,
- FMUserEditPageAuth:
,
- FMUserGroupEditPage:
,
- FMRoleGroupEditPage:
,
- FMRoleEditPage:
,
- FM204ShowPrint:
,
- PFCustomPageConfigPage:
,
+ SC022Import: (
+
+ ),
+ SC022ImportData: (
+
+ ),
+ FMUserEditPage: (
+
+ ),
+ FMUserEditPageAuth: (
+
+ ),
+ FMUserGroupEditPage: (
+
+ ),
+ FMRoleGroupEditPage: (
+
+ ),
+ FMRoleEditPage: (
+
+ ),
+ FM204ShowPrint: (
+
+ ),
+ PFCustomPageConfigPage: (
+
+ ),
FMBaseConfig:
,
PFFlowSchemesEditPage:
,
PFFlowSchemesShowPage:
,
@@ -275,12 +308,20 @@ export default function (componentName, formId, formParam, data, formCode, formD
WOSOPViewPage:
,
FMCustomImportPage:
,
FMNodeSchedulingPage:
,
- PFEntitySqlPage:
,
+ PFEntitySqlPage: (
+
+ ),
PFInitDestOrgPage:
,
- PFEntityFieldListPage:
,
+ PFEntityFieldListPage: (
+
+ ),
PFExecuteSqlPage:
,
- PFSendInfoToClientPage:
,
- PFFormConfigByNamePage:
,
+ PFSendInfoToClientPage: (
+
+ ),
+ PFFormConfigByNamePage: (
+
+ ),
BDPictureEditPage:
,
BDHmiPage:
,
BDWordPage:
,
@@ -323,7 +364,9 @@ export default function (componentName, formId, formParam, data, formCode, formD
HMTasks:
,
FoPreOperSch:
,
- FoTeamActivityShowPrint:
,
+ FoTeamActivityShowPrint: (
+
+ ),
PFCommonApprove:
,
PFCommonApproveView:
,
PFTodayReminder:
,
@@ -374,7 +417,6 @@ export default function (componentName, formId, formParam, data, formCode, formD
// CM043ShowPrint:
,
// CM045ShowPrint:
,
-
BIView:
,
// BI001:
,
// BI050BSSafeCheck:
,
@@ -402,20 +444,38 @@ export default function (componentName, formId, formParam, data, formCode, formD
// BI008FormRunAnalysis:
,
// BI009RiskAnalysis:
,
// BI010FormRunAnalysis:
,
- BI011FormRunAnalysis:
,
- BI011TrainSafeAnalysis:
,
+ BI011FormRunAnalysis: (
+
+ ),
+ BI011TrainSafeAnalysis: (
+
+ ),
// BI012NotificationTaskAnalysis:
,
// BI013RiskAnalysisModel:
,
- BI014RiskPerformanceModel:
,
- BI030FormRunAnalysis:
,
+ BI014RiskPerformanceModel: (
+
+ ),
+ BI030FormRunAnalysis: (
+
+ ),
// BI060MapeShow:
,
// BI060MapePoint:
,
// BI061MapeGISShow:
,
- BI009FormRunAnalysis:
,
- BI020ApproveAnalysis:
,
- BI012FormRunAnalysis:
,
- PF136FormRunAnalysis:
,
- PF139FormRunAnalysis:
,
+ BI009FormRunAnalysis: (
+
+ ),
+ BI020ApproveAnalysis: (
+
+ ),
+ BI012FormRunAnalysis: (
+
+ ),
+ PF136FormRunAnalysis: (
+
+ ),
+ PF139FormRunAnalysis: (
+
+ ),
FO025ShowPrint:
,
FM202ShowPrint:
,
PFApproveRole:
,
@@ -450,6 +510,6 @@ export default function (componentName, formId, formParam, data, formCode, formD
SK041ShowPrint:
,
SK043ShowPrint:
,
SK045ShowPrint:
,
-
- }[componentName]
-}
\ No newline at end of file
+ BI00FullScreen:
,
+ }[componentName];
+}
From 5260b510b6e3c0c543fe6822e2050d98f6c549a6 Mon Sep 17 00:00:00 2001
From: yunkexin <760754045@qq.com>
Date: Wed, 21 Jan 2026 14:05:35 +0800
Subject: [PATCH 04/11] =?UTF-8?q?=E5=8F=AF=E8=A7=86=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/layout/FullScreenInter.js | 1790 +++++++++++++++++++--------------
src/layout/fullinter.less | 4 +-
2 files changed, 1012 insertions(+), 782 deletions(-)
diff --git a/src/layout/FullScreenInter.js b/src/layout/FullScreenInter.js
index 8423e86..cbf1429 100644
--- a/src/layout/FullScreenInter.js
+++ b/src/layout/FullScreenInter.js
@@ -44,259 +44,15 @@ class FullScreen extends React.Component {
sliderSize: '24px',
nowDate: '',
riskTypeRate: [], //风险等级占比
+ linkSum: [],
jobTodayTop3: [], //当日工作票排名前三
- hiddenRectifyRate: {}, //隐患整改率
+ hiddenRectify: {}, //隐患整改率
taskTop3: [], //各事项排名前三
jobFinishRate: [], //作业现场完成情况统计
safeCheckSum: [], //各公司安全检查统计
- riskChangeData: [
- { name: '隐患数量', value: 103 },
- { name: '延期整改数', value: 18 },
- { name: '按期整改数', value: 85 },
- ],
- configBanner: [
- { name: '首页', value: 103 },
- { name: '风险管控', value: 103 },
- { name: '隐患治理', value: 103 },
- { name: '班组建设', value: 103 },
- { name: '危险作业', value: 103 },
- { name: '安全培训', value: 103 },
- ],
- checkData: [
- { name: '公司检查', value: 103 },
- { name: '部门检查', value: 79 },
- { name: '车间检查', value: 86 },
- { name: '班组检查', value: 94 },
- ],
- widthp: '70%',
- scrollConfig: {
- header: ['检查类型', '检查次数', '完成率'],
- data: [
- ['巡回检查', '322', '99%'],
- ['例行检查', '255', '99%'],
- ['日常检查', '253', '99%'],
- ['专业检查', '123', '99%'],
- ['巡回检查', '322', '99%'],
- ['例行检查', '255', '99%'],
- ['日常检查', '253', '99%'],
- ['专业检查', '123', '99%'],
- ],
- waitTime: 200000,
- },
- safescrollConfig: {
- header: ['部门', '车间', '活动', '进度'],
- data: [
- ['矿山部', '穿爆车间', '班前会议', '98%'],
- ['矿山部', '金宇宁化分公司', '班前会议', '98%'],
- ['选矿部', '破碎车间', '班前会议', '95%'],
- ['矿山部', '磨重车间', '班前会议', '92%'],
- ['矿山部', '机电设备管理科', '班前会议', '83%'],
- ['矿山部', '钨细泥回收车间', '班前会议', '93%'],
- ['矿山部', '穿爆车间', '班前会议', '90%'],
- ['矿山部', '穿爆车间', '班前会议', '90%'],
- ['矿山部', '穿爆车间', '班前会议', '90%'],
- ],
- index: true,
- columnWidth: [80, 200, 300, 200, 200],
- align: ['center'],
- waitTime: 2000,
- },
- chartConfig: {
- data: [
- {
- name: '电工日常班',
- value: 97,
- },
- {
- name: '电工三班',
- value: 95,
- },
- {
- name: '破碎一班',
- value: 91,
- },
- {
- name: '磨重二班',
- value: 86,
- },
- {
- name: '磨重三班',
- value: 83,
- },
- {
- name: '电工日常班',
- value: 97,
- },
- {
- name: '电工三班',
- value: 95,
- },
- {
- name: '破碎一班',
- value: 91,
- },
- {
- name: '磨重二班',
- value: 86,
- },
- {
- name: '磨重三班',
- value: 83,
- },
- {
- name: '电工日常班',
- value: 97,
- },
- {
- name: '电工三班',
- value: 95,
- },
- {
- name: '破碎一班',
- value: 91,
- },
- {
- name: '磨重二班',
- value: 86,
- },
- {
- name: '磨重三班',
- value: 83,
- },
- ],
- showValue: true,
- },
- riskData: [
- { color: '#c92a2a', value: 2, name: '重大风险' },
- { color: '#FF6710', value: 5, name: '较大风险' },
- { color: '#FFDD1E', value: 15, name: '一般风险' },
- { color: '#0091FF', value: 30, name: '低风险' },
- ],
- WaterLevelPondconfig1: {
- data: [75],
- shape: 'round',
- },
- WaterLevelPondconfig2: {
- data: [85],
- shape: 'round',
- },
- WaterLevelPondconfig3: {
- data: [95],
- shape: 'round',
- },
- completeData: [
- {
- name: '班组会议完成率',
- value: 75,
- },
- {
- name: '岗位交接班完成率',
- value: 85,
- },
- {
- name: '岗位当班记录完成率',
- value: 95,
- },
- ],
- // completeDatatwo: {
- // name: "岗位交接班完成率",
- // value: 85,
- // id: "completetwo",
- // },
- // completeDatathree: {
- // name: "岗位当班记录完成率",
- // value: 95,
- // id: "completethree",
- // },
- meetingData: [
- {
- name: '班前会议',
- value: 32,
- },
- {
- name: '班组活动',
- value: 132,
- },
- {
- name: '岗位交接班',
- value: 32,
- },
- {
- name: '岗位当班',
- value: 132,
- },
- {
- name: '班前会议',
- value: 32,
- },
- {
- name: '班组活动',
- value: 132,
- },
- {
- name: '岗位交接班',
- value: 32,
- },
- {
- name: '岗位当班',
- value: 132,
- },
- ],
- roaData: [
- {
- name: '总任务数',
- value: 1456,
- },
- {
- name: '超时待办数',
- value: 132,
- },
- {
- name: '安全检查数',
- value: 1456,
- },
- {
- name: '检查完成率',
- value: 32,
- },
- {
- name: '职业危害',
- value: 132,
- },
- {
- name: '管控措施',
- value: 1456,
- },
- {
- name: '安全检查库',
- value: 132,
- },
- {
- name: '危险源库',
- value: 32,
- },
- {
- name: '培训计划完成率',
- value: 132,
- },
- {
- name: '用户活跃度',
- value: 1456,
- },
- {
- name: '系统用户数',
- value: 132,
- },
- {
- name: '正常已办数',
- value: 32,
- },
- {
- name: '未完成数',
- value: 132,
- },
- ],
+ listSETrainSum: [], //各公司安全培训统计
scale: getScale(),
+ configBanner: ['首页', '风险管理', '安全检查', '隐患管理', '作业现场', '安全培训'],
};
this.echartsInstances = {
riskLevel: null,
@@ -317,100 +73,33 @@ class FullScreen extends React.Component {
// this.getHomeTitle();
this.getHomeDataArray();
this.setState({ activeTab: '首页' });
- this.riskLevel();
- this.safedanger();
- this.completeChart(this.state.completeData);
+
this.timer = setInterval(() => {
this.setState({
nowDate: this.getDate(),
});
}, 1000);
}
+ executionChart = () => {
+ this.riskLevel();
+ this.safeCheckChart();
+ this.dangerOperation();
+ this.completeChart();
+ this.backLog();
+ this.safedanger();
+ };
componentDidUpdate(prevProps, prevState) {
// 当从其他tab切换回首页时
if (prevState.activeTab !== this.state.activeTab && this.state.activeTab === '首页') {
- console.log('切换到首页,初始化图表');
-
// 延迟确保DOM已渲染
setTimeout(() => {
- this.riskLevel();
- this.safedanger();
- this.completeChart(this.state.completeData);
+ this.executionChart();
}, 300); // 稍微增加延迟时间
}
-
- // 当离开首页时,清理图表
- if (prevState.activeTab === '首页' && this.state.activeTab !== '首页') {
- console.log('离开首页,清理图表');
- this.cleanupCharts();
- }
}
- getHomeDataArray = () => {
- var orgId = storage('lacal').getItem('webOrgId')?.val; //登录后有存储登录信息
- let json = initFilter(orgId);
- this.props.dispatch({
- type: 'app/getDataByPost',
- payload: json,
- url: 'BI/BIKanBanController/ReturnAllData',
- onComplete: (ret) => {
- console.log(ret, '877777');
- if (ret) {
- console.log('首页标题数据', ret);
- this.setState({
- riskTypeRate: ret.riskTypeRate,
- jobTodayTop3: ret.jobTodayTop3,
- hiddenRectifyRate: ret.hiddenRectifyRate,
- taskTop3: ret.taskTop3,
- jobFinishRate: ret.jobFinishRate,
- safeCheckSum: ret.safeCheckSum,
- });
- }
- },
- });
- };
-
- // 添加清理方法
- cleanupCharts = () => {
- // 清理风险分级图表
- if (this.echartsInstances.riskLevel) {
- this.echartsInstances.riskLevel.dispose();
- this.echartsInstances.riskLevel = null;
- }
-
- // 清理运行走势图
- if (this.echartsInstances.opretionTrend) {
- this.echartsInstances.opretionTrend.dispose();
- this.echartsInstances.opretionTrend = null;
- }
-
- // 清理完成率图表
- if (this.echartsInstances.completeone) {
- this.echartsInstances.completeone.dispose();
- this.echartsInstances.completeone = null;
- }
-
- // 移除resize监听器
- if (this.riskResizeHandler) {
- window.removeEventListener('resize', this.riskResizeHandler);
- this.riskResizeHandler = null;
- }
-
- if (this.trendResizeHandler) {
- window.removeEventListener('resize', this.trendResizeHandler);
- this.trendResizeHandler = null;
- }
-
- if (this.completeResizeHandler) {
- window.removeEventListener('resize', this.completeResizeHandler);
- this.completeResizeHandler = null;
- }
- };
handleTabClick = (name) => {
// 如果从首页切换到其他tab,先清理图表
- if (this.state.activeTab === '首页' && name !== '首页') {
- this.cleanupCharts();
- }
this.setState({ activeTab: name });
@@ -435,35 +124,7 @@ class FullScreen extends React.Component {
componentWillUnmount() {
window.removeEventListener('resize', this.setScale);
clearInterval(this.timer);
- this.cleanupCharts();
}
- getHomeTitle = () => {
- console.log('获取首页标题数据');
- var orgId = storage('lacal').getItem('webOrgId')?.val; //登录后有存储登录信息
- let json = initFilter(orgId);
- console.log(json, '首页标题数据');
- this.props.dispatch({
- type: 'app/getDataByPost',
- payload: json,
- url: 'PF/HomeTitle/OrderPaged',
- onComplete: (ret) => {
- console.log(ret, '877777');
- if (ret) {
- console.log('首页标题数据', ret);
- this.setState({
- safetySloganOne: ret[0].TITLE,
- // safetySloganOne: "1.安全方针:以人为本、关注健康、依法治企、安全发展。 2.安全理念:一切风险皆可控,一切事故皆可防!3.安全方针:以人为本、关注健康、依法治企、安全发展。4.安全方针:以人为本、关注健康、依法治企、安全发展。5.安全方针:以人为本、关注健康、依法治企、安全发展。 6.安全理念:一切风险皆可控,一切事故皆可防!7.安全方针:以人为本、关注健康、依法治企、安全发展。8.安全方针:以人为本、关注健康、依法治企、安全发展。",
- animationDuration: ret[0].SECOND,
- sliderColor: ret[0].COCOR,
- sliderSize: ret[0].FONTSIZE,
- });
- }
- },
- });
- };
- callback = (key) => {
- console.log(key);
- };
getDate = () => {
var myDate = new Date();
var year = myDate.getFullYear(); //获取当前年
@@ -491,357 +152,33 @@ class FullScreen extends React.Component {
var now = year + ' 年 ' + mon + ' 月 ' + date + ' 日 ' + '\t\t\t' + hours + ' : ' + minutes + ' : ' + seconds;
return now;
};
- completeChart = (evt) => {
- if (this.echartsInstances.completeone) {
- this.echartsInstances.completeone.dispose();
- this.echartsInstances.completeone = null;
- }
-
- let completeCharts = document.getElementById('completeone');
- if (!completeCharts) {
- requestAnimationFrame(() => {
- this.completeChart(evt);
- });
- return;
- }
-
- console.log('初始化完成率图表');
-
- this.echartsInstances.completeone = echarts.init(completeCharts);
- let seriesArr = [];
- let centerArr = [
- ['20%', '50%'],
- ['50%', '50%'],
- ['80%', '50%'],
- ];
- evt.forEach((item, index) => {
- seriesArr.push({
- center: centerArr[index],
- axisLine: {
- show: true,
- lineStyle: {
- color: [
- [0.25, '#c23531'],
- [0.5, '#EFC631'],
- [0.75, '#63869e'],
- [1, '#91c7ae'],
- ],
- width: 8,
- },
- radius: '90%', // 控制轴线本身的半径
- },
- axisTick: {
- show: false,
- },
- splitLine: {
- length: 8, // 刻度线长度
- distance: 25, // 向内移动距离,负值越大越向内
- lineStyle: {
- color: '#fff', // 刻度线颜色
- width: 2, // 刻度线宽度
- },
- },
- axisLabel: {
- distance: 15, // 标签与刻度线的距离
- textStyle: {
- color: '#fff',
- fontSize: 10,
- },
- // 调整标签偏移
- offset: [0, 0], // [水平偏移, 垂直偏移]
- },
- itemStyle: {
- normal: {
- color: 'auto',
- },
- },
- radius: '80%',
- pointer: {
- show: true,
- width: '8%',
- length: '20%',
- },
- title: {
- textStyle: {
- // fontWeight: 'bolder',
- fontSize: 14,
- color: '#fff',
- },
- offsetCenter: [0, '100%'],
- },
- detail: {
- textStyle: {
- fontWeight: 'bolder',
- fontSize: 20,
- color: '#fff',
- },
- offsetCenter: [0, '68%'],
- // formatter: '{value}万\n(5048人)',
- },
- min: 0,
- max: 100,
- // name: '米类仪表盘',
- type: 'gauge',
- show: false,
- splitNumber: 10,
- data: [
- {
- name: item.name,
- value: item.value,
- },
- ],
- });
+ getHomeDataArray = () => {
+ var orgId = storage('lacal').getItem('webOrgId')?.val; //登录后有存储登录信息
+ let json = initFilter(orgId);
+ this.props.dispatch({
+ type: 'app/getDataByPost',
+ payload: json,
+ url: 'BI/BIKanBanController/ReturnAllData',
+ onComplete: (ret) => {
+ if (ret) {
+ this.setState(
+ {
+ riskTypeRate: ret.riskTypeRate,
+ linkSum: ret.linkSum,
+ jobTodayTop3: ret.jobTodayTop3,
+ hiddenRectify: ret.hiddenRectify,
+ taskTop3: ret.taskTop3,
+ jobFinishRate: ret.jobFinishRate,
+ safeCheckSum: ret.safeCheckSum,
+ listSETrainSum: ret.listSETrainSum,
+ },
+ () => {
+ this.executionChart();
+ }
+ );
+ }
+ },
});
- this.echartsInstances.completeone.setOption({
- series: seriesArr,
- });
-
- // 监听resize
- const resizeHandler = () => {
- if (this.echartsInstances.completeone) {
- this.echartsInstances.completeone.resize();
- }
- };
-
- if (this.completeResizeHandler) {
- window.removeEventListener('resize', this.completeResizeHandler);
- }
-
- this.completeResizeHandler = resizeHandler;
- window.addEventListener('resize', resizeHandler);
- };
- safedanger = () => {
- if (this.echartsInstances.opretionTrend) {
- this.echartsInstances.opretionTrend.dispose();
- this.echartsInstances.opretionTrend = null;
- }
-
- const opretionTrends = document.getElementById('opretionTrend');
- if (!opretionTrends) {
- requestAnimationFrame(() => {
- this.safedanger();
- });
- return;
- }
-
- console.log('初始化运行走势图');
- this.echartsInstances.opretionTrend = echarts.init(opretionTrends);
-
- // ... 原有配置代码
- let bgColor = '#000';
- let color = [
- '#0090FF',
- '#36CE9E',
- '#e690d1',
- '#FF515A',
- '#8B5CFF',
- '#00CA69',
- '#FFC107',
- '#E91E63',
- '#9C27B0',
- '#3F51B5',
- '#2196F3',
- '#4CAF50',
- '#FF9800',
- '#795548',
- '#607D8B',
- ];
- const seriesNames = [
- '选矿部门',
- '矿山部门',
- '尾矿部门',
- '机电部门',
- '安全部门',
- '生产部门',
- '技术部门',
- '维修部门',
- '运输部门',
- '仓储部门',
- '质检部门',
- '环保部门',
- '研发部门',
- '行政部门',
- '财务部门',
- ];
- // 生成x轴数据(12个月)
- let xAxisData = [];
- for (let i = 1; i <= 12; i++) {
- xAxisData.push(i.toString());
- }
-
- // 生成15个系列的数据
- let seriesArr = [];
- for (let i = 0; i < 15; i++) {
- let yAxisData = [];
- for (let j = 0; j < 12; j++) {
- // 生成60-100的随机数据
- yAxisData.push(Math.floor(Math.random() * 40) + 60);
- }
-
- seriesArr.push({
- name: seriesNames[i],
- type: 'line',
- smooth: true,
- symbolSize: 6,
- data: yAxisData,
- });
- }
-
- const hexToRgba = (hex, opacity) => {
- let rgbaColor = '';
- let reg = /^#[\da-f]{6}$/i;
- if (reg.test(hex)) {
- rgbaColor = `rgba(${parseInt('0x' + hex.slice(1, 3))},${parseInt('0x' + hex.slice(3, 5))},${parseInt(
- '0x' + hex.slice(5, 7)
- )},${opacity})`;
- }
- return rgbaColor;
- };
- const option = {
- title: [
- {
- text: '各家公司的安全教育培训学时统计',
- x: 'center',
- y: '5%',
- textStyle: {
- fontSize: 16,
- color: '#fff',
- },
- },
- ],
- backgroundColor: '',
- color: color,
- legend: {
- type: 'scroll', // 如果项目多可以使用滚动
- orient: 'vertical', // 设置为垂直排列
- right: 10, // 距离右侧的距离
- top: 'center', // 垂直居中
- align: 'left', // 文本左对齐
- textStyle: {
- color: '#fff', // 文字颜色
- fontSize: 12,
- },
- itemStyle: {
- color: 'inherit',
- borderWidth: 0,
- opacity: 1,
- },
- symbol: 'rect', // 实心矩形
- symbolSize: [12, 8], // 大小
- itemWidth: 10, // 图例标记的宽度
- itemHeight: 10, // 图例标记的高度
- itemGap: 15, // 图例每项之间的间隔
- pageButtonItemGap: 3,
- pageButtonGap: 5,
- pageButtonPosition: 'end',
- pageIconColor: '#00caf7',
- width: 100, // 限制宽度
- height: 250, // 限制高度,超出就会显示滚动
- },
- tooltip: {
- trigger: 'axis',
- formatter: function (params) {
- let html = '';
- params.forEach((v) => {
- html += `
-
- ${v.seriesName}
-
${v.value}
- %`;
- });
-
- return html;
- },
- extraCssText: 'background: #fff; border-radius: 0;box-shadow: 0 0 3px rgba(0, 0, 0, 0.2);color: #333;',
- axisPointer: {
- type: 'shadow',
- shadowStyle: {
- // color: "#ffffff",
- shadowColor: 'rgba(225,225,225,1)',
- shadowBlur: 5,
- },
- },
- },
- grid: {
- top: '15%',
- left: '5%',
- right: '15%', // 为图例留出空间
- bottom: '15%',
- containLabel: true,
- },
- xAxis: [
- {
- type: 'category',
- boundaryGap: false,
- axisLabel: {
- formatter: '{value}月',
- textStyle: {
- color: '#fff',
- },
- },
- axisTick: {
- show: false,
- },
- axisLine: {
- lineStyle: {
- color: '#fff',
- },
- },
- data: xAxisData,
- },
- ],
- yAxis: [
- {
- type: 'value',
- axisLabel: {
- textStyle: {
- color: '#fff',
- },
- },
- nameTextStyle: {
- color: '#fff',
- fontSize: 12,
- lineHeight: 40,
- },
- splitLine: {
- show: false,
- lineStyle: {
- type: 'dashed',
- color: '#fff',
- },
- },
- axisLine: {
- show: false,
- lineStyle: {
- color: '#00c7ff',
- width: 1,
- type: 'solid',
- },
- },
- axisTick: {
- show: false,
- },
- },
- ],
- series: seriesArr,
- };
-
- this.echartsInstances.opretionTrend.setOption(option);
- // 监听resize
- const resizeHandler = () => {
- if (this.echartsInstances.opretionTrend) {
- this.echartsInstances.opretionTrend.resize();
- }
- };
-
- if (this.trendResizeHandler) {
- window.removeEventListener('resize', this.trendResizeHandler);
- }
-
- this.trendResizeHandler = resizeHandler;
- window.addEventListener('resize', resizeHandler);
};
riskLevel = () => {
// 如果已有实例,先销毁
@@ -852,16 +189,12 @@ class FullScreen extends React.Component {
const riskLevels = document.getElementById('riskLevelFull');
if (!riskLevels) {
- console.warn('风险分级图表容器未找到');
// 使用requestAnimationFrame而不是setTimeout
requestAnimationFrame(() => {
- this.riskLevel();
+ this.executionChart();
});
return;
}
-
- console.log('初始化风险分级图表');
-
// 初始化echarts实例并保存引用
this.echartsInstances.riskLevel = echarts.init(riskLevels);
const option = {
@@ -945,7 +278,10 @@ class FullScreen extends React.Component {
show: false,
},
},
- data: this.state.riskTypeRate,
+ data: this.state.riskTypeRate.map((item) => ({
+ name: item.riskType,
+ value: item.count,
+ })),
},
],
};
@@ -967,6 +303,849 @@ class FullScreen extends React.Component {
this.riskResizeHandler = resizeHandler;
window.addEventListener('resize', resizeHandler);
};
+ transformDat = (originalData, barTopColor, num) => {
+ // 添加空值检查
+ if (!originalData || !Array.isArray(originalData) || originalData.length === 0) {
+ return {
+ companyNames: [],
+ series: [],
+ legendData: [],
+ };
+ }
+ // 获取所有的类型名称(去重)
+ let allTypes = [];
+ if (num == 1) {
+ allTypes = [...new Set(originalData.flatMap((item) => item.details?.map((detail) => detail.jobName)))];
+ } else {
+ allTypes = [...new Set(originalData.flatMap((item) => item.details?.map((detail) => detail.name)))];
+ }
+
+ // 获取所有的公司名称(作为 x 轴标签)
+ const companyNames = originalData?.map((item) => item.company);
+
+ // 为每个类型创建数据系列
+ const series = allTypes?.map((typeName, index) => {
+ return {
+ name: typeName,
+ type: 'bar',
+ itemStyle: {
+ normal: {
+ color: function (params) {
+ if (num == 1) {
+ return barTopColor[index];
+ } else {
+ return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+ {
+ offset: 0,
+ color: barTopColor[index][0],
+ },
+ {
+ offset: 1,
+ color: barTopColor[index][1],
+ },
+ ]);
+ }
+ },
+ },
+ },
+ data: originalData?.map((company) => {
+ // 找到该公司对应类型的数据,如果没有则返回 0
+ const detail = company.details?.find((d) => (num == 1 ? d.jobName : d.name) === typeName);
+ return detail ? detail.qty : 0;
+ }),
+ };
+ });
+
+ return {
+ companyNames, // x 轴数据
+ series, // 系列数据
+ legendData: allTypes, // legend 的 data
+ };
+ };
+
+ safeCheckChart = () => {
+ if (this.echartsInstances.safeCheckChart) {
+ this.echartsInstances.safeCheckChart.dispose();
+ this.echartsInstances.safeCheckChart = null;
+ }
+
+ let safeCheckCharts = document.getElementById('safeCheckChart');
+ if (!safeCheckCharts) {
+ requestAnimationFrame(() => {
+ this.safeCheckChart();
+ });
+ return;
+ }
+ const barTopColor = ['#02c3f1', '#53e568', '#a154e9'];
+
+ this.echartsInstances.safeCheckChart = echarts.init(safeCheckCharts);
+ let xdata = [];
+ xdata = this.transformDat(this.state.jobTodayTop3, barTopColor, 1);
+ this.echartsInstances.safeCheckChart.setOption({
+ title: {
+ text: '当日工作票排名前三家的数据',
+ textStyle: {
+ fontSize: 16,
+ color: '#fff',
+ },
+ },
+ tooltip: {
+ trigger: 'axis',
+ axisPointer: {
+ // 坐标轴指示器,坐标轴触发有效
+ type: 'shadow', // 默认为直线,可选为:'line' | 'shadow'
+ },
+ },
+ legend: {
+ data: xdata.legendData,
+ align: 'right',
+ right: 10,
+ itemGap: 16,
+ itemWidth: 18,
+ itemHeight: 10,
+ textStyle: {
+ color: '#fff',
+ fontStyle: 'normal',
+ fontFamily: '微软雅黑',
+ fontSize: 14,
+ },
+ },
+ color: barTopColor,
+ grid: {
+ left: '3%',
+ right: '4%',
+ bottom: '3%',
+ containLabel: true,
+ },
+ xAxis: [
+ {
+ type: 'category',
+ data: xdata.companyNames,
+ textStyle: {
+ fontSize: 18,
+ color: '#ffffff',
+ },
+ //坐标轴
+ axisLine: {
+ lineStyle: {
+ color: '#3eb2e8',
+ },
+ },
+ //坐标值标注
+ axisLabel: {
+ show: true,
+ textStyle: {
+ color: '#fff',
+ },
+ },
+ },
+ ],
+ yAxis: [
+ {
+ type: 'value',
+ textStyle: {
+ fontSize: 14,
+ color: '#ffffff',
+ },
+ //坐标轴
+ axisLine: {
+ show: false,
+ },
+ //坐标值标注
+ axisLabel: {
+ show: true,
+ textStyle: {
+ color: '#fff',
+ },
+ },
+ //分格线
+ splitLine: {
+ lineStyle: {
+ color: '#4784e8',
+ },
+ },
+ },
+ ],
+ series: xdata.series,
+ });
+
+ // 监听resize
+ const resizeHandler = () => {
+ if (this.echartsInstances.safeCheckChart) {
+ this.echartsInstances.safeCheckChart.resize();
+ }
+ };
+
+ if (this.safeCheckResizeHandler) {
+ window.removeEventListener('resize', this.safeCheckResizeHandler);
+ }
+
+ this.safeCheckResizeHandler = resizeHandler;
+ window.addEventListener('resize', resizeHandler);
+ };
+ dangerOperation = () => {
+ // 如果已有实例,先销毁
+ if (this.echartsInstances.dangerOperation) {
+ this.echartsInstances.dangerOperation.dispose();
+ this.echartsInstances.dangerOperation = null;
+ }
+
+ const dangerOperationCharts = document.getElementById('dangerOperationChart');
+ if (!dangerOperationCharts) {
+ // 使用requestAnimationFrame而不是setTimeout
+ requestAnimationFrame(() => {
+ this.executionChart();
+ });
+ return;
+ }
+
+ let legendData = [];
+ (this.state.linkSum.map((item) => {
+ legendData.push(item.name);
+ }),
+ // 初始化echarts实例并保存引用
+ (this.echartsInstances.dangerOperation = echarts.init(dangerOperationCharts)));
+
+ const option = {
+ color: [
+ '#0090FF',
+ '#36CE9E',
+ '#e690d1',
+ '#FF515A',
+ '#8B5CFF',
+ '#00CA69',
+ '#FFC107',
+ '#E91E63',
+ '#9C27B0',
+ '#3F51B5',
+ '#2196F3',
+ '#4CAF50',
+ '#FF9800',
+ '#795548',
+ '#607D8B',
+ ],
+ title: [
+ {
+ text: '各公司危险作业分类统计',
+ x: 'center',
+ y: '5%',
+ textStyle: {
+ fontSize: 16,
+ color: '#fff',
+ },
+ },
+ ],
+ legend: {
+ type: 'scroll',
+ orient: 'vertical',
+ left: '5%',
+ align: 'left',
+ top: '5%',
+ textStyle: {
+ color: '#fff',
+ },
+ height: 250,
+ },
+ tooltip: {
+ trigger: 'item',
+ formatter: function (params) {
+ const color = params.color;
+ return `
+
+ ${params.name}:
+ ${params.value}
+
`;
+ },
+ backgroundColor: 'rgba(255, 255, 255, 0.5)',
+ borderColor: '#FFFFFF',
+ borderWidth: 2,
+ textStyle: {
+ color: '#000',
+ fontSize: 14,
+ fontWeight: 'normal',
+ },
+ },
+ series: [
+ {
+ name: '访问来源',
+ type: 'pie',
+ minAngle: 20,
+ center: ['55%', '50%'],
+ radius: ['40%', '65%'],
+ clockwise: true,
+ avoidLabelOverlap: true,
+ hoverOffset: 15,
+ label: {
+ show: true,
+ position: 'outside',
+ formatter: '{a|{b}:{c}}{e|({d}%)}\n',
+ // color: '#FFFFFF',
+ textBorderWidth: 0,
+ rich: {
+ a: {
+ padding: [-15, 0, 0, 0],
+ fontSize: 15,
+ // color: '#FFFFFF',
+ textBorderWidth: 0,
+ textShadow: 'none',
+ },
+ e: {
+ fontSize: 14,
+ // color: '#FFFFFF',
+ padding: [-15, 0, 0, 5],
+ textBorderWidth: 0,
+ textShadow: 'none',
+ },
+ },
+ },
+ labelLine: {
+ normal: {
+ length: 5,
+ length2: 3,
+ smooth: true,
+ },
+ },
+ data: this.state.linkSum.map((item) => ({
+ name: item.name,
+ value: item.qty,
+ })),
+ },
+ ],
+ };
+
+ this.echartsInstances.dangerOperation.setOption(option);
+
+ // 监听窗口大小变化
+ const resizeHandler = () => {
+ if (this.echartsInstances.dangerOperation) {
+ this.echartsInstances.dangerOperation.resize();
+ }
+ };
+
+ // 移除旧的监听器
+ if (this.dangerOperationResizeHandler) {
+ window.removeEventListener('resize', this.dangerOperationResizeHandler);
+ }
+
+ this.dangerOperationResizeHandler = resizeHandler;
+ window.addEventListener('resize', resizeHandler);
+ };
+ backLog = () => {
+ if (this.echartsInstances.backLogChart) {
+ this.echartsInstances.backLogChart.dispose();
+ this.echartsInstances.backLogChart = null;
+ }
+
+ let backLogCharts = document.getElementById('backLogChart');
+ if (!backLogCharts) {
+ requestAnimationFrame(() => {
+ this.backLogChart();
+ });
+ return;
+ }
+ const barTopColor = [
+ ['#75baf3', '#2177d5'],
+ ['#ffa94d', '#f76707'],
+ ['#99ca6e', '#48a447'],
+ ];
+
+ this.echartsInstances.backLogChart = echarts.init(backLogCharts);
+ let xdata = [];
+ xdata = this.transformDat(this.state.taskTop3, barTopColor, 2);
+ // 创建图例的渐变色块
+ const legendColors = barTopColor.map((gradient) => gradient[0]);
+ this.echartsInstances.backLogChart.setOption({
+ title: {
+ text: '各事项排名前三名统计',
+ textStyle: {
+ fontSize: 16,
+ color: '#fff',
+ },
+ },
+ tooltip: {
+ trigger: 'axis',
+ axisPointer: {
+ // 坐标轴指示器,坐标轴触发有效
+ type: 'shadow', // 默认为直线,可选为:'line' | 'shadow'
+ },
+ },
+ legend: {
+ data: xdata.legendData.map((name, index) => ({
+ name: name,
+ // 使用渐变的起始颜色作为图例颜色
+ // icon: 'rect',
+ itemStyle: {
+ color: legendColors[index],
+ borderWidth: 0,
+ },
+ textStyle: {
+ color: '#fff',
+ fontSize: 14,
+ },
+ })),
+ align: 'right',
+ right: 10,
+ itemGap: 16,
+ itemWidth: 18,
+ itemHeight: 12,
+ textStyle: {
+ color: '#fff',
+ fontStyle: 'normal',
+ fontFamily: '微软雅黑',
+ fontSize: 14,
+ },
+ },
+ color: legendColors, // 设置全局颜色
+
+ grid: {
+ left: '3%',
+ right: '4%',
+ bottom: '3%',
+ containLabel: true,
+ },
+ xAxis: [
+ {
+ type: 'category',
+ data: xdata.companyNames,
+ textStyle: {
+ fontSize: 18,
+ color: '#ffffff',
+ },
+ //坐标轴
+ axisLine: {
+ lineStyle: {
+ color: '#3eb2e8',
+ },
+ },
+ //坐标值标注
+ axisLabel: {
+ show: true,
+ textStyle: {
+ color: '#fff',
+ },
+ },
+ },
+ ],
+ yAxis: [
+ {
+ type: 'value',
+ textStyle: {
+ fontSize: 14,
+ color: '#ffffff',
+ },
+ //坐标轴
+ axisLine: {
+ show: false,
+ },
+ //坐标值标注
+ axisLabel: {
+ show: true,
+ textStyle: {
+ color: '#fff',
+ },
+ },
+ //分格线
+ splitLine: {
+ lineStyle: {
+ color: '#4784e8',
+ },
+ },
+ },
+ ],
+ series: xdata.series,
+ });
+
+ // 监听resize
+ const resizeHandler = () => {
+ if (this.echartsInstances.backLogChart) {
+ this.echartsInstances.backLogChart.resize();
+ }
+ };
+
+ if (this.backLogResizeHandler) {
+ window.removeEventListener('resize', this.backLogResizeHandler);
+ }
+
+ this.backLogResizeHandler = resizeHandler;
+ window.addEventListener('resize', resizeHandler);
+ };
+ completeChart = () => {
+ if (this.echartsInstances.completeone) {
+ this.echartsInstances.completeone.dispose();
+ this.echartsInstances.completeone = null;
+ }
+
+ let completeCharts = document.getElementById('completeone');
+ if (!completeCharts) {
+ requestAnimationFrame(() => {
+ this.completeChart();
+ });
+ return;
+ }
+
+ this.echartsInstances.completeone = echarts.init(completeCharts);
+ let seriesArr = [];
+ let centerArr = [
+ ['20%', '50%'],
+ ['50%', '50%'],
+ ['80%', '50%'],
+ ];
+ const completeData = this.state.jobFinishRate
+ .filter((item) => item.name === '班前会议' || item.name === '岗位当班' || item.name === '岗位交接班')
+ .map((item) => {
+ return {
+ name: item.name,
+ value: item.rate,
+ };
+ });
+ const colorArr = [
+ [
+ [0.2, '#2ec7c9'],
+ [0.8, '#b6a2de'],
+ [1, '#5ab1ef'],
+ ],
+ [
+ [0.2, '#5470c6'],
+ [0.8, '#91cc75'],
+ [1, '#fac858'],
+ ],
+ [
+ [0.2, '#4ea397'],
+ [0.8, '#22c3aa'],
+ [1, '#7bd9a5'],
+ ],
+ ];
+ completeData.forEach((item, index) => {
+ seriesArr.push({
+ center: centerArr[index],
+ axisLine: {
+ show: true,
+ lineStyle: {
+ color: colorArr[index],
+ width: 8,
+ },
+ radius: '90%', // 控制轴线本身的半径
+ },
+ axisTick: {
+ show: false,
+ },
+ splitLine: {
+ length: 8, // 刻度线长度
+ distance: 25, // 向内移动距离,负值越大越向内
+ lineStyle: {
+ color: '#fff', // 刻度线颜色
+ width: 1, // 刻度线宽度
+ },
+ },
+ axisLabel: {
+ distance: 15, // 标签与刻度线的距离
+ textStyle: {
+ color: '#fff',
+ fontSize: 10,
+ },
+ // 调整标签偏移
+ offset: [0, 0], // [水平偏移, 垂直偏移]
+ },
+ itemStyle: {
+ normal: {
+ color: 'auto',
+ },
+ },
+ radius: '80%',
+ pointer: {
+ show: true,
+ width: '8%',
+ length: '30%',
+ },
+ title: {
+ textStyle: {
+ // fontWeight: 'bolder',
+ fontSize: 14,
+ color: '#fff',
+ },
+ offsetCenter: [0, '100%'],
+ },
+ detail: {
+ textStyle: {
+ fontWeight: 'bolder',
+ fontSize: 16,
+ color: '#fff',
+ },
+ offsetCenter: [0, '68%'],
+ formatter: '{value}%',
+ // formatter: '{value}万\n(5048人)',
+ },
+ min: 0,
+ max: 100,
+ // name: '米类仪表盘',
+ type: 'gauge',
+ show: false,
+ splitNumber: 10,
+ data: [
+ {
+ name: item.name,
+ value: item.value,
+ },
+ ],
+ });
+ });
+ this.echartsInstances.completeone.setOption({
+ series: seriesArr,
+ });
+
+ // 监听resize
+ const resizeHandler = () => {
+ if (this.echartsInstances.completeone) {
+ this.echartsInstances.completeone.resize();
+ }
+ };
+
+ if (this.completeResizeHandler) {
+ window.removeEventListener('resize', this.completeResizeHandler);
+ }
+
+ this.completeResizeHandler = resizeHandler;
+ window.addEventListener('resize', resizeHandler);
+ };
+ safedanger = () => {
+ if (this.echartsInstances.opretionTrend) {
+ this.echartsInstances.opretionTrend.dispose();
+ this.echartsInstances.opretionTrend = null;
+ }
+
+ const opretionTrends = document.getElementById('opretionTrend');
+ if (!opretionTrends) {
+ requestAnimationFrame(() => {
+ this.safedanger();
+ });
+ return;
+ }
+
+ this.echartsInstances.opretionTrend = echarts.init(opretionTrends);
+
+ // ... 原有配置代码
+ let bgColor = '#000';
+ let color = [
+ '#0090FF',
+ '#36CE9E',
+ '#e690d1',
+ '#FF515A',
+ '#8B5CFF',
+ '#00CA69',
+ '#FFC107',
+ '#E91E63',
+ '#9C27B0',
+ '#3F51B5',
+ '#2196F3',
+ '#4CAF50',
+ '#FF9800',
+ '#795548',
+ '#607D8B',
+ ];
+ const seriesNames = [];
+ this.state.listSETrainSum.map((item) => {
+ seriesNames.push(item.CN);
+ });
+
+ // 生成x轴数据(12个月)
+ let xAxisData = [];
+ xAxisData = Object.keys(
+ this.state.listSETrainSum[0] === undefined || this.state.listSETrainSum[0] === null
+ ? {}
+ : this.state.listSETrainSum[0]
+ )
+ .filter((key) => key.startsWith('dtNowYM'))
+ .map((key) => this.state.listSETrainSum[0][key].substring(0, 7))
+ .sort((a, b) => new Date(a) - new Date(b)); // 按日期升序
+
+ let yAxisData = [];
+ yAxisData = this.state.listSETrainSum.map((item) => {
+ const values = [];
+ for (let i = 0; i <= 5; i++) {
+ const key = i === 0 ? 'SUM_TRAIN_HOUR' : `SUM_TRAIN_HOUR_${i}`;
+ values.push(item[key]);
+ }
+ return values;
+ });
+
+ // 生成15个系列的数据
+ let seriesArr = [];
+ for (let i = 0; i < this.state.listSETrainSum.length; i++) {
+ seriesArr.push({
+ name: seriesNames[i],
+ type: 'line',
+ smooth: true,
+ symbolSize: 6,
+ data: yAxisData[i],
+ });
+ }
+
+ const hexToRgba = (hex, opacity) => {
+ let rgbaColor = '';
+ let reg = /^#[\da-f]{6}$/i;
+ if (reg.test(hex)) {
+ rgbaColor = `rgba(${parseInt('0x' + hex.slice(1, 3))},${parseInt('0x' + hex.slice(3, 5))},${parseInt(
+ '0x' + hex.slice(5, 7)
+ )},${opacity})`;
+ }
+ return rgbaColor;
+ };
+ const option = {
+ title: [
+ {
+ text: '各家公司的安全教育培训学时统计',
+ x: 'center',
+ y: '5%',
+ textStyle: {
+ fontSize: 16,
+ color: '#fff',
+ },
+ },
+ ],
+ backgroundColor: '',
+ color: color,
+ legend: {
+ type: 'scroll', // 如果项目多可以使用滚动
+ orient: 'vertical', // 设置为垂直排列
+ right: 10, // 距离右侧的距离
+ top: 'center', // 垂直居中
+ align: 'left', // 文本左对齐
+ textStyle: {
+ color: '#fff', // 文字颜色
+ fontSize: 12,
+ },
+ itemStyle: {
+ color: 'inherit',
+ borderWidth: 0,
+ opacity: 1,
+ },
+ symbol: 'rect', // 实心矩形
+ symbolSize: [12, 8], // 大小
+ itemWidth: 10, // 图例标记的宽度
+ itemHeight: 10, // 图例标记的高度
+ itemGap: 15, // 图例每项之间的间隔
+ pageButtonItemGap: 3,
+ pageButtonGap: 5,
+ pageButtonPosition: 'end',
+ pageIconColor: '#00caf7',
+ width: 100, // 限制宽度
+ height: 250, // 限制高度,超出就会显示滚动
+ },
+ tooltip: {
+ trigger: 'axis',
+ formatter: function (params) {
+ let html = '';
+ params.forEach((v) => {
+ html += `
+
+ ${v.seriesName}
+
${v.value}
+ `;
+ });
+
+ return html;
+ },
+ extraCssText: 'background: #fff; border-radius: 0;box-shadow: 0 0 3px rgba(0, 0, 0, 0.2);color: #333;',
+ axisPointer: {
+ type: 'shadow',
+ shadowStyle: {
+ // color: "#ffffff",
+ shadowColor: 'rgba(225,225,225,1)',
+ shadowBlur: 5,
+ },
+ },
+ },
+ grid: {
+ top: '15%',
+ left: '5%',
+ right: '15%', // 为图例留出空间
+ bottom: '15%',
+ containLabel: true,
+ },
+ xAxis: [
+ {
+ type: 'category',
+ boundaryGap: false,
+ axisLabel: {
+ textStyle: {
+ color: '#fff',
+ },
+ },
+ axisTick: {
+ show: false,
+ },
+ axisLine: {
+ lineStyle: {
+ color: '#fff',
+ },
+ },
+ data: xAxisData,
+ },
+ ],
+ yAxis: [
+ {
+ type: 'value',
+ axisLabel: {
+ textStyle: {
+ color: '#fff',
+ },
+ },
+ nameTextStyle: {
+ color: '#fff',
+ fontSize: 12,
+ lineHeight: 40,
+ },
+ splitLine: {
+ show: false,
+ lineStyle: {
+ type: 'dashed',
+ color: '#fff',
+ },
+ },
+ axisLine: {
+ show: false,
+ lineStyle: {
+ color: '#00c7ff',
+ width: 1,
+ type: 'solid',
+ },
+ },
+ axisTick: {
+ show: false,
+ },
+ },
+ ],
+ series: seriesArr,
+ };
+
+ this.echartsInstances.opretionTrend.setOption(option);
+ // 监听resize
+ const resizeHandler = () => {
+ if (this.echartsInstances.opretionTrend) {
+ this.echartsInstances.opretionTrend.resize();
+ }
+ };
+
+ if (this.trendResizeHandler) {
+ window.removeEventListener('resize', this.trendResizeHandler);
+ }
+
+ this.trendResizeHandler = resizeHandler;
+ window.addEventListener('resize', resizeHandler);
+ };
render() {
const width = 1920,
@@ -974,6 +1153,31 @@ class FullScreen extends React.Component {
// 固定好16:9的宽高比,计算出最合适的缩放比,宽高比可根据需要自行更改
const { scale, safetySloganOne, animationDuration, sliderColor, sliderSize, activeTab } = this.state;
const renderContent = () => {
+ const riskChangeData = [
+ {
+ name: '隐患数',
+ value: this.state.hiddenRectify.qty,
+ },
+ {
+ name: '按期整改数',
+ value: this.state.hiddenRectify.ontimeQty,
+ },
+ {
+ name: '延期整改数',
+ value: this.state.hiddenRectify.delayQty,
+ },
+ ];
+ const chartConfig = {
+ data: this.state.safeCheckSum.map((item) => ({
+ name: item.company,
+ value: item.qty,
+ })),
+ showValue: true,
+ };
+ const meetingData = this.state.jobFinishRate.map((item) => ({
+ name: item.name,
+ value: item.qty,
+ }));
if (activeTab === '首页') {
return (
<>
@@ -1018,10 +1222,10 @@ class FullScreen extends React.Component {
item.riskType === '重大风险'
? '#c92a2a'
: item.riskType === '较大风险'
- ? '#FF6710'
- : item.riskType === '一般风险'
- ? '#FFDD1E'
- : '#0091FF',
+ ? '#FF6710'
+ : item.riskType === '一般风险'
+ ? '#FFDD1E'
+ : '#0091FF',
margin: '10px 20px',
padding: '5px 10px',
fontSize: '16px',
@@ -1069,6 +1273,7 @@ class FullScreen extends React.Component {
justifyContent: 'center',
width: '100%',
height: '100%',
+ padding: '10px',
}}
>
@@ -1194,11 +1412,21 @@ class FullScreen extends React.Component {
justifyContent: 'center',
width: '100%',
height: '100%',
+ padding: '10px',
}}
>
-
-
-
+
@@ -1246,30 +1474,31 @@ class FullScreen extends React.Component {
}}
>
- {this.state.meetingData.map((item, index) => (
-
-
-
-
-
{item.name}
-
- {item.value}
-
- 次
-
+ {meetingData &&
+ meetingData.map((item, index) => (
+
+
+
+
+
{item.name}
+
+ {item.value}
+
+ 次
+
+
-
-
- ))}
+
+ ))}
@@ -1303,23 +1532,24 @@ class FullScreen extends React.Component {
}}
>
- {this.state.riskChangeData.map((item, index) => (
-
-
-
-
{item.name}
-
{item.value}
+ {riskChangeData &&
+ riskChangeData.map((item, index) => (
+
+
+
+
{item.name}
+
{item.value}
+
-
- ))}
+ ))}
整改率
-
83.98%
+
{this.state.hiddenRectify.rate}%
@@ -1369,7 +1599,7 @@ class FullScreen extends React.Component {
各家公司安全检查统计
-
+
@@ -1453,22 +1683,23 @@ class FullScreen extends React.Component {
marginLeft: 'auto',
}}
>
- {this.state.configBanner.slice(0, 3).map((item, index) => (
-
this.handleTabClick(item.name)}
- onKeyPress={(e) => e.key === 'Enter' && this.handleTabClick(item.name)}
- tabIndex={0}
- title={`点击进入${item.name}`}
- role="button"
- style={{ cursor: 'pointer' }}
- >
- {item.name}
-
- ))}
+ {this.state.configBanner &&
+ this.state.configBanner.slice(0, 3).map((item, index) => (
+
this.handleTabClick(item)}
+ onKeyPress={(e) => e.key === 'Enter' && this.handleTabClick(item)}
+ tabIndex={0}
+ title={`点击进入${item}`}
+ role="button"
+ style={{ cursor: 'pointer' }}
+ >
+ {item}
+
+ ))}
@@ -1493,22 +1724,21 @@ class FullScreen extends React.Component {
style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', height: '100%' }}
>
- {this.state.configBanner.slice(3, 6).map((item, index) => (
-
this.handleTabClick(item.name)}
- onKeyPress={(e) => e.key === 'Enter' && this.handleTabClick(item.name)}
- tabIndex={0}
- title={`点击进入${item.name}`}
- role="button"
- style={{ cursor: 'pointer' }}
- >
- {item.name}
-
- ))}
+ {this.state.configBanner &&
+ this.state.configBanner.slice(3, 6).map((item, index) => (
+
this.handleTabClick(item)}
+ onKeyPress={(e) => e.key === 'Enter' && this.handleTabClick(item)}
+ tabIndex={0}
+ title={`点击进入${item}`}
+ role="button"
+ style={{ cursor: 'pointer' }}
+ >
+ {item}
+
+ ))}
{/* {this.state.nowWeek} */}
diff --git a/src/layout/fullinter.less b/src/layout/fullinter.less
index 409a83a..78156c9 100644
--- a/src/layout/fullinter.less
+++ b/src/layout/fullinter.less
@@ -137,14 +137,14 @@
}
.otherTabContent {
flex: 1; // 占据剩余空间
- width: 100%;
+ // width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
background: rgba(2, 20, 40, 0.7);
border-radius: 10px;
- margin: 10px;
+ margin: 0px 10px 10px 10px;
border: 1px solid rgba(0, 202, 247, 0.3);
}
.row {
From 45a2fec1445efa8fcf8bf707ae5caab43525e2a6 Mon Sep 17 00:00:00 2001
From: yunkexin <760754045@qq.com>
Date: Wed, 21 Jan 2026 14:49:42 +0800
Subject: [PATCH 05/11] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=BC=96=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/MainPage/GuideCanvas.js | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/components/MainPage/GuideCanvas.js b/src/components/MainPage/GuideCanvas.js
index 357f1bd..840ea17 100644
--- a/src/components/MainPage/GuideCanvas.js
+++ b/src/components/MainPage/GuideCanvas.js
@@ -14,6 +14,12 @@ class GuideCanvas extends Component {
};
}
componentDidMount() {
+ const { baseConfig = {} } = this.props.login;
+ const sysName = baseConfig.SYS_NAME || '';
+ let sysNameParam = '';
+ if (sysName) {
+ sysNameParam = `&sysName=${btoa(encodeURIComponent(sysName))}`;
+ }
QRCode.toCanvas(config.guideSeverHost, { errorCorrectionLevel: 'L', width: 140 }, function (err, canvas) {
if (err) throw err;
let container = document.getElementById('canvas1');
@@ -33,7 +39,7 @@ class GuideCanvas extends Component {
}
});
QRCode.toCanvas(
- config.h5Web + '#/pages/index/index?OrgId=' + this.props.login.OrgId,
+ config.h5Web + '#/pages/index/index?OrgId=' + this.props.login.OrgId + sysNameParam,
{ errorCorrectionLevel: 'L', width: 140 },
function (err, canvas) {
if (err) throw err;
From e45852a864816bfdd2263a205e6549b1ba932b1d Mon Sep 17 00:00:00 2001
From: yunkexin <760754045@qq.com>
Date: Mon, 26 Jan 2026 09:12:04 +0800
Subject: [PATCH 06/11] =?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/CustomPages/BI/BI00FullScreen.js | 5 +++--
src/layout/FullScreenInter.js | 4 ++--
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/components/CustomPages/BI/BI00FullScreen.js b/src/components/CustomPages/BI/BI00FullScreen.js
index 768479c..8af3302 100644
--- a/src/components/CustomPages/BI/BI00FullScreen.js
+++ b/src/components/CustomPages/BI/BI00FullScreen.js
@@ -49,15 +49,16 @@ class BI00FullScreen extends React.Component {
borderStyle: 'solid',
borderColor: '#ccc',
borderWidth: '1px',
+ height: '100%',
}}
>
金源公司生产安全管控平台
);
diff --git a/src/layout/FullScreenInter.js b/src/layout/FullScreenInter.js
index cbf1429..cec0895 100644
--- a/src/layout/FullScreenInter.js
+++ b/src/layout/FullScreenInter.js
@@ -28,7 +28,7 @@ const { TabPane } = Tabs;
const getScale = () => {
const width = 1920,
- height = 1200; // 此处可以根据实际设计稿尺寸修改
+ height = 1080; // 此处可以根据实际设计稿尺寸修改
let ww = window.innerWidth / width;
let wh = window.innerHeight / height;
return ww < wh ? ww : wh;
@@ -1149,7 +1149,7 @@ class FullScreen extends React.Component {
render() {
const width = 1920,
- height = 1200;
+ height = 1080;
// 固定好16:9的宽高比,计算出最合适的缩放比,宽高比可根据需要自行更改
const { scale, safetySloganOne, animationDuration, sliderColor, sliderSize, activeTab } = this.state;
const renderContent = () => {
From 39133b3adcd034d30a74b42171dfd8c1a4a08327 Mon Sep 17 00:00:00 2001
From: yunkexin <760754045@qq.com>
Date: Tue, 27 Jan 2026 14:19:46 +0800
Subject: [PATCH 07/11] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E8=BF=90=E8=A1=8C?=
=?UTF-8?q?=E6=83=85=E5=86=B5=E7=BB=9F=E8=AE=A1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../CustomPages/BI/BI064FormRunAnalysis.js | 372 ++++++++++++++++++
src/utils/customConfig.js | 28 +-
2 files changed, 388 insertions(+), 12 deletions(-)
create mode 100644 src/components/CustomPages/BI/BI064FormRunAnalysis.js
diff --git a/src/components/CustomPages/BI/BI064FormRunAnalysis.js b/src/components/CustomPages/BI/BI064FormRunAnalysis.js
new file mode 100644
index 0000000..3a41aa1
--- /dev/null
+++ b/src/components/CustomPages/BI/BI064FormRunAnalysis.js
@@ -0,0 +1,372 @@
+import React from 'react';
+import { connect } from 'dva';
+import { initFilter } from '../../../utils/common';
+import { Table, Row, Spin, Card } from 'antd';
+
+class BI064FormRunAnalysis extends React.Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ retData: [], // 表单运行数据
+ companyData: [], // 公司数据
+ loading: true,
+ tableData: [], // 处理后的表格数据
+ columns: [], // 动态生成的列
+ };
+ }
+
+ componentDidMount() {
+ this.loadData();
+ }
+
+ // 加载数据
+ loadData = () => {
+ this.getBaseData();
+ this.getrealData();
+ };
+
+ // 获取公司数据
+ getBaseData = () => {
+ const json = initFilter(this.props.login.OrgId);
+ this.props.dispatch({
+ type: 'app/getDataByPost',
+ url: 'FM/Organization/OrderPaged',
+ payload: json,
+ onlyData: false,
+ onComplete: (ret) => {
+ if (ret && ret.Data) {
+ this.setState({ companyData: ret.Data }, () => {
+ this.processData();
+ });
+ }
+ },
+ });
+ };
+
+ // 获取表单运行数据
+ getrealData = () => {
+ const json = initFilter(this.props.login.OrgId);
+ this.props.dispatch({
+ type: 'app/getDataByPost',
+ url: 'BI/BIStatiscialAnalysisController/GetTaskViewInfo',
+ payload: json,
+ onlyData: false,
+ onComplete: (ret) => {
+ if (ret && ret.Data) {
+ this.setState({ retData: ret.Data, loading: false }, () => {
+ this.processData();
+ });
+ } else {
+ this.setState({ loading: false });
+ }
+ },
+ });
+ };
+
+ // 处理数据,生成表格所需格式
+ processData = () => {
+ const { retData, companyData } = this.state;
+
+ if (!retData.length || !companyData.length) return;
+
+ // 获取所有模块和表单的列表
+ const modules = [...new Set(retData.map((item) => item.MOULD_NAME))];
+ const forms = [];
+
+ // 按模块组织表单
+ modules.forEach((module) => {
+ const moduleForms = [
+ ...new Set(retData.filter((item) => item.MOULD_NAME === module).map((item) => item.FORM_NAME)),
+ ];
+
+ moduleForms.forEach((form) => {
+ forms.push({
+ module,
+ form,
+ key: `${module}_${form}`,
+ });
+ });
+ });
+
+ // 处理每个公司的数据
+ const tableData = forms.map((formItem) => {
+ const { module, form, key } = formItem;
+ const rowData = {
+ key,
+ module,
+ form,
+ };
+
+ // 为每个公司添加数据
+ companyData.forEach((company) => {
+ const companyName = company.NAME;
+ const companyDataKey = companyName.replace(/\s+/g, '');
+
+ // 查找该公司该表单的数据
+ const formData = retData.find(
+ (item) => item.MOULD_NAME === module && item.FORM_NAME === form && item.COMPANY_NAME === companyName
+ );
+
+ if (formData) {
+ // 计算完成率和及时率
+ // const finishRate =
+ // formData.TOTAL_QTY > 0
+ // ? (((formData.NORMAL_FINISH + formData.OVER_FINISH + formData.DOING) / formData.TOTAL_QTY) * 100).toFixed(
+ // 0
+ // )
+ // : '0';
+
+ // const normalRate =
+ // formData.NORMAL_FINISH + formData.OVER_FINISH + formData.DOING > 0
+ // ? (
+ // (formData.NORMAL_FINISH / (formData.NORMAL_FINISH + formData.OVER_FINISH + formData.DOING)) *
+ // 100
+ // ).toFixed(0)
+ // : '0';
+
+ rowData[`${companyDataKey}_total`] = formData.TOTAL_QTY;
+ rowData[`${companyDataKey}_normal`] = formData.NORMAL_FINISH;
+ rowData[`${companyDataKey}_overtime`] = formData.OVER_FINISH;
+ rowData[`${companyDataKey}_doing`] = formData.DOING;
+ rowData[`${companyDataKey}_unfinish`] = formData.UNFINISH;
+ rowData[`${companyDataKey}_overUnfinish`] = formData.OVER_UNFINISH;
+ rowData[`${companyDataKey}_finishRate`] = formData.FINISH_RATE;
+ rowData[`${companyDataKey}_normalRate`] = formData.NORMAL_RATE;
+ } else {
+ // 如果没有数据,设置默认值
+ rowData[`${companyDataKey}_total`] = 0;
+ rowData[`${companyDataKey}_normal`] = 0;
+ rowData[`${companyDataKey}_overtime`] = 0;
+ rowData[`${companyDataKey}_doing`] = 0;
+ rowData[`${companyDataKey}_unfinish`] = 0;
+ rowData[`${companyDataKey}_overUnfinish`] = 0;
+ rowData[`${companyDataKey}_finishRate`] = '0';
+ rowData[`${companyDataKey}_normalRate`] = '0';
+ }
+ });
+
+ return rowData;
+ });
+
+ // 计算每个模块的行数,用于合并单元格
+ const moduleRowCounts = {};
+ let currentModule = null;
+ let count = 0;
+
+ tableData.forEach((row, index) => {
+ if (row.module !== currentModule) {
+ if (currentModule !== null) {
+ moduleRowCounts[currentModule] = count;
+ }
+ currentModule = row.module;
+ count = 1;
+ } else {
+ count++;
+ }
+
+ // 最后一个模块
+ if (index === tableData.length - 1) {
+ moduleRowCounts[currentModule] = count;
+ }
+ });
+
+ // 将行数信息添加到tableData中,供render使用
+ const tableDataWithRowSpan = tableData.map((row, index) => {
+ // 找到该模块的起始索引
+ const moduleStartIndex = tableData.findIndex((item) => item.module === row.module);
+
+ // 如果是该模块的第一行,设置rowSpan为该模块的行数
+ if (index === moduleStartIndex) {
+ return {
+ ...row,
+ moduleRowSpan: moduleRowCounts[row.module] || 1,
+ };
+ } else {
+ // 不是第一行,设置rowSpan为0,表示不显示
+ return {
+ ...row,
+ moduleRowSpan: 0,
+ };
+ }
+ });
+
+ // 生成表格列
+ const columns = this.generateColumns(companyData, tableDataWithRowSpan);
+
+ this.setState({ tableData: tableDataWithRowSpan, columns });
+ };
+
+ // 动态生成表格列
+ generateColumns = (companyData) => {
+ const baseColumns = [
+ {
+ width: '150px',
+ title: '模块',
+ dataIndex: 'module',
+ key: 'module',
+ fixed: 'left',
+ align: 'center',
+ render: (value, row, index) => {
+ const obj = {
+ children: value,
+ props: {},
+ };
+
+ // 设置rowSpan属性
+ if (row.moduleRowSpan !== undefined) {
+ obj.props.rowSpan = row.moduleRowSpan;
+ }
+
+ return obj;
+ },
+ },
+ {
+ width: '200px',
+ title: '表单',
+ dataIndex: 'form',
+ key: 'form',
+ fixed: 'left',
+ align: 'center',
+ },
+ ];
+
+ // 为每个公司生成列组
+ companyData.forEach((company) => {
+ const companyName = company.NAME;
+ const companyDataKey = companyName.replace(/\s+/g, '');
+
+ const companyColumns = {
+ title: `${companyName}运行数据`,
+ children: [
+ {
+ title: '总任务数',
+ dataIndex: `${companyDataKey}_total`,
+ key: `${companyDataKey}_total`,
+ width: '80px',
+ align: 'center',
+ },
+ {
+ title: '正常完成',
+ dataIndex: `${companyDataKey}_normal`,
+ key: `${companyDataKey}_normal`,
+ width: '80px',
+ align: 'center',
+ },
+ {
+ title: '超时完成',
+ dataIndex: `${companyDataKey}_overtime`,
+ key: `${companyDataKey}_overtime`,
+ width: '80px',
+ align: 'center',
+ },
+ {
+ title: '进行中',
+ dataIndex: `${companyDataKey}_doing`,
+ key: `${companyDataKey}_doing`,
+ width: '80px',
+ align: 'center',
+ },
+ {
+ title: '超期未完成',
+ dataIndex: `${companyDataKey}_overUnfinish`,
+ key: `${companyDataKey}_overUnfinish`,
+ width: '80px',
+ align: 'center',
+ },
+ {
+ title: '完成率',
+ dataIndex: `${companyDataKey}_finishRate`,
+ key: `${companyDataKey}_finishRate`,
+ width: '80px',
+ align: 'center',
+ render: (text) => {text}%,
+ },
+ {
+ title: '及时率',
+ dataIndex: `${companyDataKey}_normalRate`,
+ key: `${companyDataKey}_normalRate`,
+ width: '80px',
+ align: 'center',
+ render: (text) => {text}%,
+ },
+ ],
+ };
+
+ baseColumns.push(companyColumns);
+ });
+
+ return baseColumns;
+ };
+
+ render() {
+ const { tableData, columns, loading } = this.state;
+
+ return (
+
+
+
+ 系统运行情况统计分析
+
+
+
+
+ {/* */}
+ (
+
+
+
+ 汇总
+
+ {columns.slice(2).map((col, index) => (
+
+ {col.title === '总任务数' && (
+ {tableData.reduce((sum, row) => sum + (row[col.dataIndex] || 0), 0)}
+ )}
+
+ ))}
+
+
+ )}
+ />
+ {/* */}
+
+
+
+
+ );
+ }
+}
+
+export default connect(({ login, app }) => ({ login, app }))(BI064FormRunAnalysis);
diff --git a/src/utils/customConfig.js b/src/utils/customConfig.js
index 64cc789..3fc4ebe 100644
--- a/src/utils/customConfig.js
+++ b/src/utils/customConfig.js
@@ -26,8 +26,8 @@ const SC022ImportData = createLoadableComponent(() => import('../components/Cust
const FMUserEditPage = createLoadableComponent(() => import('../components/CustomPages/FM/UserEditPage'));
const FMUserEditPageAuth = createLoadableComponent(() => import('../components/CustomPages/FM/UserEditPageAuth'));
const FMUserGroupEditPage = createLoadableComponent(() => import('../components/CustomPages/FM/UserGroupEditPage'));
-const PFCustomPageConfigPage = createLoadableComponent(() =>
- import('../components/CustomPages/PF/CustomPageConfigPage')
+const PFCustomPageConfigPage = createLoadableComponent(
+ () => import('../components/CustomPages/PF/CustomPageConfigPage')
);
const FMRoleGroupEditPage = createLoadableComponent(() => import('../components/CustomPages/FM/RoleGroupEditPage'));
const FMRoleEditPage = createLoadableComponent(() => import('../components/CustomPages/FM/RoleEditPage'));
@@ -59,12 +59,12 @@ const PFEntityFieldListPage = createLoadableComponent(() => import('../component
const PFExecuteSqlPage = createLoadableComponent(() => import('../components/CustomPages/PF/ExecuteSqlPage'));
-const PFSendInfoToClientPage = createLoadableComponent(() =>
- import('../components/CustomPages/PF/SendInfoToClientPage')
+const PFSendInfoToClientPage = createLoadableComponent(
+ () => import('../components/CustomPages/PF/SendInfoToClientPage')
);
-const PFFormConfigByNamePage = createLoadableComponent(() =>
- import('../components/CustomPages/PF/FormConfigByNamePage')
+const PFFormConfigByNamePage = createLoadableComponent(
+ () => import('../components/CustomPages/PF/FormConfigByNamePage')
);
const BDPictureEditPage = createLoadableComponent(() => import('../components/CustomPages/BD/PictureEditPage'));
@@ -75,8 +75,8 @@ const BDWordPage = createLoadableComponent(() => import('../components/CustomPag
const FoPreOperSch = createLoadableComponent(() => import('../components/CustomPages/FO/FoPreOperSch'));
-const FoTeamActivityShowPrint = createLoadableComponent(() =>
- import('../components/CustomPages/FO/FoTeamActivityShowPrint')
+const FoTeamActivityShowPrint = createLoadableComponent(
+ () => import('../components/CustomPages/FO/FoTeamActivityShowPrint')
);
const PFCommonApprove = createLoadableComponent(() => import('../components/CustomPages/PF/PFCommonApprove'));
@@ -174,8 +174,8 @@ const BI005LoginRecord = createLoadableComponent(() => import('../components/Cus
// const BI009RiskAnalysis = createLoadableComponent(() => import('../components/CustomPages/BI/BI009RiskAnalysis'))
// const BI010FormRunAnalysis = createLoadableComponent(() => import('../components/CustomPages/BI/BI010FormRunAnalysis'))
const BI011FormRunAnalysis = createLoadableComponent(() => import('../components/CustomPages/BI/BI011FormRunAnalysis'));
-const BI011TrainSafeAnalysis = createLoadableComponent(() =>
- import('../components/CustomPages/BI/BI011TrainSafeAnalysis')
+const BI011TrainSafeAnalysis = createLoadableComponent(
+ () => import('../components/CustomPages/BI/BI011TrainSafeAnalysis')
);
// const BI012NotificationTaskAnalysis = createLoadableComponent(() => import('../components/CustomPages/BI/BI012NotificationTaskAnalysis'))
// const BI013RiskAnalysisModel = createLoadableComponent(() => import('../components/CustomPages/BI/BI013RiskAnalysisModel'))
@@ -200,8 +200,8 @@ const BI056Performance = createLoadableComponent(() => import('../components/Cus
// const BI056Dilg3_2 = createLoadableComponent(() => import('../components/CustomPages/BI/BI056Dilg3_2'))
// const BI003StatiscialAnalysis = createLoadableComponent(() => import('../components/CustomPages/BI/BI003StatiscialAnalysis'))
const BI020ApproveAnalysis = createLoadableComponent(() => import('../components/CustomPages/BI/BI020ApproveAnalysis'));
-const BI014RiskPerformanceModel = createLoadableComponent(() =>
- import('../components/CustomPages/BI/BI014RiskPerformanceModel')
+const BI014RiskPerformanceModel = createLoadableComponent(
+ () => import('../components/CustomPages/BI/BI014RiskPerformanceModel')
);
const BI012FormRunAnalysis = createLoadableComponent(() => import('../components/CustomPages/BI/BI012FormRunAnalysis'));
@@ -263,6 +263,7 @@ const SK041ShowPrint = createLoadableComponent(() => import('../components/Custo
const SK043ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK043ShowPrint'));
const SK045ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK045ShowPrint'));
const BI00FullScreen = createLoadableComponent(() => import('../components/CustomPages/BI/BI00FullScreen'));
+const BI064FormRunAnalysis = createLoadableComponent(() => import('../components/CustomPages/BI/BI064FormRunAnalysis'));
export default function (componentName, formId, formParam, data, formCode, formData) {
return {
@@ -511,5 +512,8 @@ export default function (componentName, formId, formParam, data, formCode, formD
SK043ShowPrint: ,
SK045ShowPrint: ,
BI00FullScreen: ,
+ BI064FormRunAnalysis: (
+
+ ),
}[componentName];
}
From b62f972e187c86cbd72f0d7f84784ff9fa2709c1 Mon Sep 17 00:00:00 2001
From: yunkexin <760754045@qq.com>
Date: Tue, 27 Jan 2026 17:04:24 +0800
Subject: [PATCH 08/11] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=BE=85=E5=8A=9E?=
=?UTF-8?q?=E5=BC=B9=E7=AA=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../CustomPages/BI/BI064FormRunAnalysis.js | 147 +++++++++++++++++-
1 file changed, 145 insertions(+), 2 deletions(-)
diff --git a/src/components/CustomPages/BI/BI064FormRunAnalysis.js b/src/components/CustomPages/BI/BI064FormRunAnalysis.js
index 3a41aa1..d73da14 100644
--- a/src/components/CustomPages/BI/BI064FormRunAnalysis.js
+++ b/src/components/CustomPages/BI/BI064FormRunAnalysis.js
@@ -1,7 +1,7 @@
import React from 'react';
import { connect } from 'dva';
import { initFilter } from '../../../utils/common';
-import { Table, Row, Spin, Card } from 'antd';
+import { Table, Row, Spin, Card, Modal } from 'antd';
class BI064FormRunAnalysis extends React.Component {
constructor(props) {
@@ -12,6 +12,55 @@ class BI064FormRunAnalysis extends React.Component {
loading: true,
tableData: [], // 处理后的表格数据
columns: [], // 动态生成的列
+ scoreVisible: false,
+ scoreTitle: '',
+ standardScoreTemp: [],
+ scoreColumns: [
+ // {
+ // title: '序号',
+ // render: (text, record, index) => `${index + 1}`
+ // },
+ {
+ title: '待办名称',
+ dataIndex: 'NOTICE_TITLE',
+ },
+ {
+ title: '姓名',
+ dataIndex: 'USER_NAME',
+ },
+ {
+ title: '开始时间',
+ dataIndex: 'TASK_STARTDT',
+ },
+ {
+ title: '结束时间',
+ dataIndex: 'TASK_ENDDT',
+ },
+ {
+ title: '实际处理时间',
+ dataIndex: 'TASK_DT',
+ },
+ {
+ title: '处理状态',
+ dataIndex: 'NOTICE_STATUS',
+ render: (text, record) => {
+ const currentTime = new Date();
+ const endTime = new Date(record.TASK_ENDDT);
+
+ if (text == 1) {
+ return '正常完成';
+ } else if (text == 2) {
+ return '超时完成';
+ } else if (text == 0 && endTime >= currentTime) {
+ return '进行中';
+ } else if (text == 0 && endTime < currentTime) {
+ return '超期未完成';
+ } else {
+ return '未知状态';
+ }
+ },
+ },
+ ],
};
}
@@ -123,7 +172,7 @@ class BI064FormRunAnalysis extends React.Component {
// 100
// ).toFixed(0)
// : '0';
-
+ rowData[`${companyDataKey}_details`] = formData.details || []; // 假设返回数据中有details字段
rowData[`${companyDataKey}_total`] = formData.TOTAL_QTY;
rowData[`${companyDataKey}_normal`] = formData.NORMAL_FINISH;
rowData[`${companyDataKey}_overtime`] = formData.OVER_FINISH;
@@ -134,6 +183,8 @@ class BI064FormRunAnalysis extends React.Component {
rowData[`${companyDataKey}_normalRate`] = formData.NORMAL_RATE;
} else {
// 如果没有数据,设置默认值
+ // 如果没有数据,设置默认值
+ rowData[`${companyDataKey}_details`] = [];
rowData[`${companyDataKey}_total`] = 0;
rowData[`${companyDataKey}_normal`] = 0;
rowData[`${companyDataKey}_overtime`] = 0;
@@ -244,6 +295,11 @@ class BI064FormRunAnalysis extends React.Component {
key: `${companyDataKey}_total`,
width: '80px',
align: 'center',
+ render: (text, record) => (
+
+ this.showDetail(record, 1, companyName)}>{record[`${companyDataKey}_total`]}
+
+ ),
},
{
title: '正常完成',
@@ -251,6 +307,11 @@ class BI064FormRunAnalysis extends React.Component {
key: `${companyDataKey}_normal`,
width: '80px',
align: 'center',
+ render: (text, record) => (
+
+ this.showDetail(record, 2, companyName)}>{record[`${companyDataKey}_normal`]}
+
+ ),
},
{
title: '超时完成',
@@ -258,6 +319,11 @@ class BI064FormRunAnalysis extends React.Component {
key: `${companyDataKey}_overtime`,
width: '80px',
align: 'center',
+ render: (text, record) => (
+
+ this.showDetail(record, 3, companyName)}>{record[`${companyDataKey}_overtime`]}
+
+ ),
},
{
title: '进行中',
@@ -265,6 +331,11 @@ class BI064FormRunAnalysis extends React.Component {
key: `${companyDataKey}_doing`,
width: '80px',
align: 'center',
+ render: (text, record) => (
+
+ this.showDetail(record, 4, companyName)}>{record[`${companyDataKey}_doing`]}
+
+ ),
},
{
title: '超期未完成',
@@ -272,6 +343,13 @@ class BI064FormRunAnalysis extends React.Component {
key: `${companyDataKey}_overUnfinish`,
width: '80px',
align: 'center',
+ render: (text, record) => (
+
+ this.showDetail(record, 5, companyName)}>
+ {record[`${companyDataKey}_overUnfinish`]}
+
+
+ ),
},
{
title: '完成率',
@@ -297,6 +375,54 @@ class BI064FormRunAnalysis extends React.Component {
return baseColumns;
};
+ showDetail = (record, type, companyName) => {
+ const currentTime = new Date();
+ const companyDataKey = companyName.replace(/\s+/g, '');
+
+ // 从record中获取该公司的明细数据
+ const details = record[`${companyDataKey}_details`] || [];
+
+ let filteredDetails = [];
+ switch (type) {
+ case 1: // 总任务数
+ filteredDetails = details;
+ break;
+ case 2: // 正常完成
+ filteredDetails = details.filter((item) => item.NOTICE_STATUS == 1);
+ break;
+ case 3: // 超时完成
+ filteredDetails = details.filter((item) => item.NOTICE_STATUS == 2);
+ break;
+ case 4: // 进行中
+ filteredDetails = details.filter((item) => item.NOTICE_STATUS == 0 && new Date(item.TASK_ENDDT) >= currentTime);
+ break;
+ case 5: // 超期未完成
+ filteredDetails = details.filter((item) => item.NOTICE_STATUS == 0 && new Date(item.TASK_ENDDT) < currentTime);
+ break;
+ default:
+ filteredDetails = details;
+ }
+
+ const typeTitles = {
+ 1: '总任务数',
+ 2: '正常完成',
+ 3: '超时完成',
+ 4: '进行中',
+ 5: '超期未完成',
+ };
+
+ this.setState({
+ standardScoreTemp: filteredDetails,
+ scoreVisible: true,
+ scoreTitle: `${companyName} - ${record.module} - ${record.form} 的${typeTitles[type]}明细`,
+ });
+ };
+ clearScoreData = () => {
+ this.setState({
+ scoreVisible: false,
+ // standardScore: [],//newtmpData
+ });
+ };
render() {
const { tableData, columns, loading } = this.state;
@@ -315,6 +441,23 @@ class BI064FormRunAnalysis extends React.Component {
padding: '20px',
}}
>
+
+
+
Date: Tue, 27 Jan 2026 17:07:27 +0800
Subject: [PATCH 09/11] =?UTF-8?q?=E6=A3=80=E6=9F=A5=E6=B1=87=E6=80=BB?=
=?UTF-8?q?=E8=A1=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../CustomPages/SK/SK027ShowPrintNew.js | 533 ++++++++++++++++++
src/utils/customConfig.js | 2 +
2 files changed, 535 insertions(+)
create mode 100644 src/components/CustomPages/SK/SK027ShowPrintNew.js
diff --git a/src/components/CustomPages/SK/SK027ShowPrintNew.js b/src/components/CustomPages/SK/SK027ShowPrintNew.js
new file mode 100644
index 0000000..d51d75f
--- /dev/null
+++ b/src/components/CustomPages/SK/SK027ShowPrintNew.js
@@ -0,0 +1,533 @@
+import { Button, Descriptions, Modal } from 'antd';
+import React from 'react';
+import { initFilter, extendRule, GetFileModel, guid, showFiles, showApprove, showUsersSign, showUserSign,showFileImg,extendIgnoreDataRule } from '../../../utils/common';
+import ReactToPrint from 'react-to-print';
+import { ExportToExcel } from '@woowalker/feui'
+import XLSX from 'xlsx';
+import { connect } from 'dva';
+import stylesStep from '../../../components/CustomPages/HI/StepForm.css';
+import config from '../../../config.js';
+import FormPage from '../../FormPage'
+import moment from 'moment';
+class SK027ShowPrintNew extends React.Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ tmpData: {},
+ data1: null,
+ data2: null,
+ data3: null,
+ data4: null,
+ detailUsers:[],
+ fileData: [],
+ fileForm: {
+ title: "",
+ visible: false,
+ },
+
+ }
+ }
+
+ componentDidMount() {
+ if (this.props.data?.id)
+ this.loadData(this.props.data?.id);
+ }
+
+ componentWillReceiveProps(NextProps) {
+ if (NextProps.data?.id && this.props.data?.id != NextProps.data?.id) {
+ this.loadData(NextProps.data?.id);
+ }
+ }
+
+ onTableBtnExport() {
+ let TableWrap = document.getElementById('table1');
+ let Table = TableWrap.getElementsByTagName('table1')[0];
+ const wb = XLSX.utils.table_to_book(Table);
+ XLSX.writeFile(wb, this.props.record.Nav_Department.NAME + '.xlsx')
+
+ }
+
+ loadData = (id) => {
+ // id= CHECKID +'_'+SUBMITID CHECKID\SUBMITID 可能只有其一 但是一定会有_
+ var orgId = this.props.login ? this.props.login.OrgId : '';
+ let json = initFilter(orgId);
+ extendRule(json, 'ID', 1, id);
+ extendIgnoreDataRule(json)
+ this.props.dispatch({
+ type: 'app/getDataByPost',
+ payload: json,
+ url: 'SK/SKSecurityInspectionRecordSummary/SKGetAll',
+ onComplete: (ret) => {
+ if (ret) {
+ let users=[]
+ let uniqueUsers =[]
+ if(ret.data1.Nav_CheckRecordDetails)
+ {
+ ret.data1.Nav_CheckRecordDetails.forEach(item => {
+ item.Nav_CheckRecordDetailUsers.forEach(item2=>{
+ users.push(item2)
+ })
+ })
+ }
+ if(users)
+ {
+ uniqueUsers= users.reduce((acc, user) => {
+ // 如果累积数组中还没有这个 user_id,则添加
+ if (!acc.some(item => item.USER_ID === user.USER_ID)) {
+ acc.push(user);
+ }
+ return acc;
+ }, []);
+ }
+ this.setState({ detailUsers:uniqueUsers,data1: ret.data1,
+ data2: ret.data2,data3: ret.data3, data4: ret.data4})
+ }
+ }
+ });
+ }
+
+ render() {
+ const { data1,data2,data3,data4,detailUsers } = this.state;
+ const enums = this.props.data.enums ? this.props.data.enums : this.props.app.enums;
+ return
+
+
+
+ {/* | */}
+ {/* onClick={() => this.CheckerCheckToActual(10)} */}
+ } content={() => this.componentRef} /> |
+ |
+
+
+
+
(this.componentRef = el)} style={{ padding: '20px', paddingTop: '20px' }} id={'tableId' + this.props.data.id}>
+
安全检查记录汇总表
+ {
+ data1 ?
+
+
+ {moment(data1.CREATE_TIME).format('YYYY-MM-DD')}
+ {data1.Nav_ApplyDepartment ? data1.Nav_ApplyDepartment.NAME : ''}
+ {data1.Nav_ApplyUser ? data1.Nav_ApplyUser.NAME : ''}
+ {data1.Nav_ProductionUnit? data1.Nav_ProductionUnit.NAME : ''}
+ {data1.Nav_CheckType ? data1.Nav_CheckType.NAME : ''}
+ {enums.SKPLANCHECKFREQUENCYEnum.enums[data1.PLANCHECKFREQUENCY]}
+ {enums.SKDepartmentTypeEnum.enums[data1.DEPARTMENT_TYPE]}
+ {moment(data1.CHECK_TIME).format('YYYY-MM-DD HH:mm:ss')}
+ {data1.CHECK_PERSON}
+ {
+ showFiles(data1?.Nav_CheckRecordFiles, config.picServerHost, this)
+ }
+
+
: null
+ }
+
+
+ | 序号 |
+ 检查区域 |
+ 检查内容 |
+ {/* 检查依据 |
+ 判定标准 | */}
+ 检查人员 |
+ 检查情况 |
+ 隐患描述 |
+ 隐患等级 |
+ 整改措施 |
+ 隐患地点 |
+ 隐患照片 |
+
+ {
+ data1?.Nav_CheckRecordDetails && data1.Nav_CheckRecordDetails?.sort((x, y) => (x.RISK_AREA_ID > y.RISK_AREA_ID) ? 1 : -1).map((item, i) => {
+ return
+ |
+ {i + 1}
+ {/* {item.MARK !== 0 ? * : i + 1} */}
+ |
+
+ {
+ item.Nav_RiskArea?.NAME
+ }
+ |
+
+ {
+ item.Nav_Contents?.CHECKCONTENT
+ }
+ |
+ {/*
+ {
+ item?.Nav_CheckRecordDetailBasics && item?.Nav_CheckRecordDetailBasics.map((item2, i) => {
+
+ return {(i > 0 ? "," : "") + item2.Nav_Law.NAME}
+
+ // return |
+ })
+ }
+ */}
+ {/*
+ {
+ item.CHECKSTANDARD
+ }
+ | */}
+
+ {
+ item?.Nav_CheckRecordDetailUsers && item?.Nav_CheckRecordDetailUsers.map((item2, i) => {
+ if (item2.ISCHECK) {
+ return {(i > 0 ? "," : "") + item2.Nav_User.NAME}
+ } else {
+ return {(i > 0 ? "," : "") + item2.Nav_User.NAME}
+ }
+ //return |
+ })
+ }
+
+
+ {
+ item.CHECK_RESULT == null? "无隐患" :enums.SKCheckResultEnum.enums[item.CHECK_RESULT]
+ }
+ |
+
+ {
+ item.Nav_Question?.DESCREPTION
+ }
+ |
+
+ {
+ enums.SKHiddenLevel.enums[item.HIDDEN_LEVEL]
+ }
+ |
+
+ {
+ item.RECTIFICATION_MEASURES
+ }
+ |
+
+ {
+ item.HIDDEN_PLACE
+ }
+ |
+
+ {
+ showFiles(item?.Nav_CheckRecordDetailFiles, config.picServerHost, this)
+ }
+ |
+
+ })
+ }
+
+ {
+ this.state.detailUsers ?
+
+
+ {
+ this.state.detailUsers?.filter(it => it.ISCHECK).map((item, i) => {
+ return showUserSign(item.Nav_User, config.picServerHost)
+ })
+ }
+
+
:null
+ }
+
{data2 && data2 != [] ?"隐患上报表":null}
+
+ {
+ data2 ?
+
+
+ {moment(data2.CREATE_TIME).format('YYYY-MM-DD')}
+ {data2.Nav_ApplyDepartment ? data2.Nav_ApplyDepartment.NAME : ''}
+ {data2.Nav_ApplyUser ? data2.Nav_ApplyUser.NAME : ''}
+ {data2.Nav_ProductionUnit? data2.Nav_ProductionUnit.NAME : ''}
+ {data2.Nav_CheckType ? data2.Nav_CheckType.NAME : ''}
+ {enums.SKPLANCHECKFREQUENCYEnum.enums[data2.PLANCHECKFREQUENCY]}
+ {enums.SKDepartmentTypeEnum.enums[data2.DEPARTMENT_TYPE]}
+ {moment(data2.CHECK_TIME).format('YYYY-MM-DD HH:mm:ss')}
+ {data2.CHECK_PERSON}
+ {
+ showFiles(data2?.Nav_ReportFiles, config.picServerHost, this)
+ }
+
+
: null
+ }
+ { data2 && data2.Nav_ReportDetails ?
+
+
+ | 序号 |
+ 检查区域 |
+ 检查内容 |
+ 隐患描述 |
+ 隐患等级 |
+ 整改措施 |
+ 隐患地点 |
+ 整改责任人 |
+ 整改期限 |
+ 隐患照片 |
+
+ {
+ data2?.Nav_ReportDetails && data2.Nav_ReportDetails?.map((item, i) => {
+ return
+ |
+ {i + 1}
+ {/* {item.MARK !== 0 ? * : i + 1} */}
+ |
+
+ {
+ item.Nav_RiskArea?.NAME
+ }
+ |
+
+ {
+ item.Nav_Contents?.CHECKCONTENT
+ }
+ |
+
+ {
+ item.Nav_Question?.DESCREPTION
+ }
+ |
+
+ {
+ enums.SKHiddenLevel.enums[item.HIDDEN_LEVEL]
+ }
+ |
+
+ {
+ item.RECTIFICATION_MEASURES
+ }
+ |
+
+ {
+ item.HIDDEN_PLACE
+ }
+ |
+
+ {
+ item.ISCHECK? {item.Nav_RecitifyUser?.NAME}:
+ {item.Nav_RecitifyUser?.NAME}
+ }
+ {/* {
+ item.Nav_RecitifyUser?.NAME
+ } */}
+ |
+
+ {
+ moment(item.RECITIFY_TIME).format('YYYY-MM-DD')
+ }
+ |
+
+ {
+ showFiles(item?.Nav_ReportDetailFiles, config.picServerHost, this)
+ }
+ |
+
+ })
+ }
+
:null
+ }
+
+ {
+ data2 && data2.Nav_ReportDetails ?
+
+
+ {
+ data2.Nav_ReportDetails?.map((item, i) => {
+ if (item && item.ISCHECK ) {
+ showUserSign(item.Nav_RecitifyUser, config.picServerHost)
+ }
+ })
+ }
+
+
:null
+ }
+
+ {
+ data3 && data3 != []?
+
+
+
+ {data3 && data3 != [] ? | 隐患整改通知 | :null}
+
+ {
+ data3?.map(head => {
+ return
+ |
+ {
+ head ?
+
+
+ {moment(head.CREATE_TIME).format('YYYY-MM-DD')}
+ {head.Nav_ApplyDepartment ? head.Nav_ApplyDepartment.NAME : ''}
+ {head.Nav_ApplyUser ? head.Nav_ApplyUser.NAME : ''}
+ {head.Nav_ProductionUnit? head.Nav_ProductionUnit.NAME : ''}
+ {head.Nav_CheckType ? head.Nav_CheckType.NAME : ''}
+ {enums.SKPLANCHECKFREQUENCYEnum.enums[head.PLANCHECKFREQUENCY]}
+ {enums.SKDepartmentTypeEnum.enums[head.DEPARTMENT_TYPE]}
+ {head.CHECK_TIME ? moment(head.CHECK_TIME).format('YYYY-MM-DD HH:mm:ss') : null}
+ {head.CHECK_PERSON}
+ {
+ showFiles(head?.Nav_RectifyFiles, config.picServerHost, this)
+ }
+
+ : null
+ }
+
+
+ | 序号 |
+ 检查区域 |
+ {/* 检查内容 | */}
+ 隐患描述 |
+ 隐患等级 |
+ 隐患地点 |
+ 整改措施 |
+ 整改期限 |
+ 整改落实人 |
+ 验收人 |
+ 隐患照片 |
+
+ {
+ head?.Nav_RectifyDetails && head.Nav_RectifyDetails?.map((item, i) => {
+ return
+ |
+ {i + 1}
+ |
+
+ {
+ item.Nav_RiskArea?.NAME
+ }
+ |
+ {/*
+ {
+ item.Nav_Contents?.CHECKCONTENT
+ }
+ | */}
+
+ {
+ item.Nav_Question?.DESCREPTION?item.Nav_Question.DESCREPTION:item.HIDDEN_DESCRIPTION
+ }
+ |
+
+ {
+ enums.SKHiddenLevel.enums[item.HIDDEN_LEVEL]
+ }
+ |
+
+ {
+ item.HIDDEN_PLACE
+ }
+ |
+
+ {
+ item.RECTIFICATION_MEASURES
+ }
+ |
+
+ {
+ item.RECITIFY_TIME ? moment(item.RECITIFY_TIME).format('YYYY-MM-DD') : null
+ }
+ |
+
+ {
+ item.Nav_ImplementUser?.NAME
+ }
+ |
+
+ {
+ item.Nav_AcceptUser?.NAME
+ }
+ |
+
+ {
+ showFiles(item?.Nav_RectifyDetailFiles, config.picServerHost, this)
+ }
+ |
+
+ })
+ }
+
+ |
+
+ })
+ }
+
+
+ : null
+ }
+
+ {
+ data4 && data4 != []?
+
+
+
+ {data4 && data4 != [] ? | 隐患整改记录 | :null}
+
+ {
+ data4?.map(head => {
+ return
+ |
+ {
+ head ?
+
+
+ {head.CODE}
+ {moment(head.CREATE_TIME).format('YYYY-MM-DD')}
+ {head.Nav_ApplyDepartment ? head.Nav_ApplyDepartment.NAME : ''}
+ {head.Nav_ApplyUser ? head.Nav_ApplyUser.NAME : ''}
+ {head.Nav_ProductionUnit? head.Nav_ProductionUnit.NAME : ''}
+ {head.Nav_RiskArea ? head.Nav_RiskArea.NAME : ''}
+ {head.Nav_Contents ? head.Nav_Contents.CHECKCONTENT : ''}
+ {head.HIDDEN_PLACE}
+ {head.Nav_Question?.DESCREPTION?head.Nav_Question.DESCREPTION:head.HIDDEN_DESCRIPTION}
+ {enums.SKHiddenLevel.enums[head.HIDDEN_LEVEL]}
+ {head.RECTIFICATION_MEASURES}
+ {moment(head.RECITIFY_TIME).format('YYYY-MM-DD')}
+ {head.Nav_RecitifyUser && head.Nav_RecitifyUser.Nav_Department ? head.Nav_RecitifyUser.Nav_Department.NAME : ''}
+ {head.Nav_RecitifyUser ? head.Nav_RecitifyUser.NAME : ''}
+ {head.RECTIFICATION_MONEY}
+ {
+ showFiles(head?.Nav_RectifyFiles, config.picServerHost, this)
+ }
+ {head.Nav_ImplementUser ? head.Nav_ImplementUser.NAME : ''}
+
+ {head.RECTIFICATION_DESCRIPTION}
+
+ {head.COMPLETE_DATE?moment(head.COMPLETE_DATE).format('YYYY-MM-DD'):null}
+ {
+ showFileImg(head?.Nav_RectifyPhotoas, config.picServerHost, this)
+ }
+ {
+ showFileImg(head?.Nav_RectifyPhotobs, config.picServerHost, this)
+ }
+ {head.Nav_AcceptUser ? head.Nav_AcceptUser.NAME : ''}
+ {head.ACCEPT_DATE?moment(head.ACCEPT_DATE).format('YYYY-MM-DD'):null}
+ {enums.SKAcceptResultEnum.enums[head.ACCEPT_RESULTE]}
+ {head.ACCEPT_OPINION}
+ {
+ head.Nav_RecitifyUser && head.Nav_RecitifyUser.FILE_PATH ?
+ showUserSign(head.Nav_RecitifyUser, config.picServerHost)
+ : head.Nav_RecitifyUser ? head.Nav_RecitifyUser.NAME : ''
+ }
+ {
+ (head.STATUS == 20 ||head.STATUS == 30) && head.Nav_AcceptUser && head.Nav_AcceptUser.FILE_PATH ?
+ showUserSign(head.Nav_AcceptUser, config.picServerHost)
+ : head.Nav_AcceptUser ? head.Nav_AcceptUser.NAME : ''
+ }
+
+ : null
+ }
+ |
+
+ })
+ }
+
+
+ : null
+ }
+
+
+
+
+ {
+ GetFileModel(Modal, FormPage, this, this.state.fileForm.visible)
+ }
+
+ }
+}
+export default connect(({ login, app }) => ({ login, app }))(SK027ShowPrintNew)
diff --git a/src/utils/customConfig.js b/src/utils/customConfig.js
index 3fc4ebe..7be96ca 100644
--- a/src/utils/customConfig.js
+++ b/src/utils/customConfig.js
@@ -253,6 +253,7 @@ const SK022ShowPrint = createLoadableComponent(() => import('../components/Custo
const SK024ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK024ShowPrint'));
const SK026ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK026ShowPrint'));
const SK027ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK027ShowPrint'));
+const SK027ShowPrintNew = createLoadableComponent(() => import('../components/CustomPages/SK/SK027ShowPrintNew'));
const SK031ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK031ShowPrint'));
const SK033ShowPrint = createLoadableComponent(() => import('../components/CustomPages/SK/SK033ShowPrint'));
// 该组件已在上方声明,此处去除重复定义
@@ -502,6 +503,7 @@ export default function (componentName, formId, formParam, data, formCode, formD
SK024ShowPrint: ,
SK026ShowPrint: ,
SK027ShowPrint: ,
+ SK027ShowPrintNew: ,
SK031ShowPrint: ,
SK033ShowPrint: ,
SK035ShowPrint: ,
From e390373088ca6fa0f8ffaca02e9bf4fb589dd43c Mon Sep 17 00:00:00 2001
From: yunkexin <760754045@qq.com>
Date: Wed, 28 Jan 2026 14:06:32 +0800
Subject: [PATCH 10/11] =?UTF-8?q?=E6=94=BE=E5=BC=80=E6=89=8B=E6=9C=BA?=
=?UTF-8?q?=E6=89=AB=E7=A0=81=E4=B8=8B=E8=BD=BDapp?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/MainPage/GuideCanvas.js | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/src/components/MainPage/GuideCanvas.js b/src/components/MainPage/GuideCanvas.js
index 840ea17..16f2419 100644
--- a/src/components/MainPage/GuideCanvas.js
+++ b/src/components/MainPage/GuideCanvas.js
@@ -72,17 +72,17 @@ class GuideCanvas extends Component {
return (
Date: Wed, 28 Jan 2026 14:20:34 +0800
Subject: [PATCH 11/11] 1
---
src/components/MainPage/GuideCanvas.js | 2 +-
src/layout/Header.js | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/components/MainPage/GuideCanvas.js b/src/components/MainPage/GuideCanvas.js
index 16f2419..ce3a5c0 100644
--- a/src/components/MainPage/GuideCanvas.js
+++ b/src/components/MainPage/GuideCanvas.js
@@ -74,7 +74,7 @@ class GuideCanvas extends Component {
{
{
setshowCanvas(false);