2026.3.27

按照群里发的修改意见已修改
This commit is contained in:
2026-03-27 16:01:49 +08:00
parent 925e9f1876
commit 6244c7ac0a
107 changed files with 1508 additions and 679 deletions
+2 -2
View File
@@ -1,5 +1,5 @@
<template>
<ChartCard margin="30rpx 0 0 0" title="QC活动">
<ChartCard margin="30rpx 0 0 0" title="QC活动">
<view class="inspection ">
<qiun-data-charts type="column" :canvas2d="false" :opts="opts" :chartData="chartData" @getIndex="handleTap" />
</view>
@@ -45,7 +45,7 @@
onMounted(() => {
let res = {
categories: ["省部级奖\n项", "集团级奖\n项", "企业级奖\n项"],
categories: ["省部级奖数量", "集团级奖项数量", "企业级奖项数量"],
series: [{
color: "#27c9cb",
name: '',
+2 -2
View File
@@ -1,10 +1,10 @@
<template>
<ChartCard margin="30rpx 0 0 0" title="质量验收数">
<ChartCard margin="30rpx 0 0 0" title="控制点验收数">
<view class="ys">
<qiun-data-charts type="mix" :canvas2d="false" :opts="opts" :chartData="chartData" @getIndex="handleTap" />
</view>
<view class="ys u-margin-top-30">
<qiun-data-charts type="mix" :canvas2d="false" :opts="opts" :chartData="chartData" @getIndex="handleTap" />
<qiun-data-charts type="mix" :canvas2d="false" :opts="opts" :chartData="chartData1" @getIndex="handleTap" />
</view>
</ChartCard>
</template>
+48 -50
View File
@@ -1,66 +1,64 @@
<template>
<ChartCard margin="30rpx 0 0 0" title="施工方案">
<view class="inspection ">
<ChartCard margin="30rpx 0 0 0" title="施工方案">
<view class="inspection">
<qiun-data-charts type="column" :canvas2d="false" :opts="opts" :chartData="chartData" @getIndex="handleTap" />
</view>
</ChartCard>
</template>
<script setup>
import ChartCard from '@/components/chartCard.vue'
import {
ref,onMounted
} from 'vue';
import ChartCard from '@/components/chartCard.vue';
import { ref, onMounted } from 'vue';
const opts = ref({
padding: [15, 15, 0, 5],
enableScroll: false,
legend: {show: false},
xAxis: {
disableGrid: true,
},
yAxis: {
showTitle: true,
data: [{
title: "单位:个"
}]
},
extra: {
column: {
type: "group",
width: 30,
activeBgColor: "#000000",
activeBgOpacity: 0.08,
const opts = ref({
padding: [15, 15, 0, 5],
enableScroll: false,
legend: { show: false },
xAxis: {
disableGrid: true
},
yAxis: {
showTitle: true,
data: [
{
title: '单位:个'
}
]
},
extra: {
column: {
type: 'group',
width: 30,
activeBgColor: '#000000',
activeBgOpacity: 0.08
}
})
const chartData = ref({})
const handleTap = (e) => {
console.log(e)
}
});
const chartData = ref({});
onMounted(() => {
let res = {
categories: ["总数", "项目审批数", "企业审批数"],
series: [{
color: "#5c7fcb",
name: '',
data: [100, 542, 685]
},
]
};
chartData.value = JSON.parse(JSON.stringify(res));
})
const handleTap = (e) => {
console.log(e);
};
onMounted(() => {
let res = {
categories: ['方案总数', '企业审批总数', '项目审批总数'],
series: [
{
color: '#5c7fcb',
name: '',
data: [100, 542, 685]
}
]
};
chartData.value = JSON.parse(JSON.stringify(res));
});
</script>
<style lang="scss">
.inspection {
width: 100%;
height: 300rpx;
}
</style>
.inspection {
width: 100%;
height: 300rpx;
}
</style>
+24 -18
View File
@@ -1,12 +1,16 @@
<template>
<ChartCard margin="30rpx 0 0 0" title="教育培训">
<ChartCard margin="30rpx 0 0 0" title="人员报验、培训及交底数">
<view class="education u-flex">
<view class="education-box">
<view class="education-box-lab">质量培训(人次)</view>
<view class="education-box-lab">人员报验数</view>
<view class="education-box-num u-margin-top-20">800</view>
</view>
<view class="education-box">
<view class="education-box-lab">技术质量交底(人次)</view>
<view class="education-box-lab">培训人次</view>
<view class="education-box-num u-margin-top-20">800</view>
</view>
<view class="education-box">
<view class="education-box-lab">技术交底人次</view>
<view class="education-box-num u-margin-top-20">800</view>
</view>
</view>
@@ -14,23 +18,25 @@
</template>
<script setup>
import ChartCard from '@/components/chartCard.vue'
import ChartCard from '@/components/chartCard.vue';
</script>
<style lang="scss" scoped>
.education{
width: 100%;
&-box{
flex: 1;
&-lab{
color: #999999;
font-size: 24rpx;
}
&-num{
color: #333333;
font-size: 28rpx;
}
.education {
width: 100%;
&-box {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
&-lab {
color: #999999;
font-size: 24rpx;
}
&-num {
color: #333333;
font-size: 28rpx;
}
}
</style>
}
</style>
+49
View File
@@ -0,0 +1,49 @@
<template>
<ChartCard margin="30rpx 0 0 0" title="设备材料及机具报验数">
<view class="measuring u-flex">
<view class="measuring-box u-flex u-row-center">
<view class="measuring-box-icon"><u-icon name="jiliangqijujianguan" color="#e28ea3" custom-prefix="custom-icon" size="60"></u-icon></view>
<view class="measuring-box-row u-padding-left-20">
<text class="measuring-box-row-num">900</text>
<text class="measuring-box-row-lab">设备材料报验数</text>
</view>
</view>
<view class="measuring-box u-flex u-row-center">
<view class="measuring-box-icon"><u-icon name="hege" color="#3bdae2" custom-prefix="custom-icon" size="60"></u-icon></view>
<view class="measuring-box-row u-padding-left-20">
<text class="measuring-box-row-num">9000</text>
<text class="measuring-box-row-lab">机具报验数</text>
</view>
</view>
</view>
</ChartCard>
</template>
<script setup>
import ChartCard from '@/components/chartCard.vue';
</script>
<style lang="scss">
.measuring {
padding: 20rpx 0;
&-box {
flex: 1;
&-row {
display: flex;
flex-direction: column;
justify-content: center;
align-items: flex-start;
&-lab {
font-size: 24rpx;
color: #999999;
margin-top: 12rpx;
}
&-num {
color: #333333;
font-size: 28rpx;
}
}
}
}
</style>
+1 -1
View File
@@ -1,5 +1,5 @@
<template>
<ChartCard margin="30rpx 0 0 0" title="优质工程">
<ChartCard margin="30rpx 0 0 0" title="优质工程">
<view class="inspection ">
<qiun-data-charts type="column" :canvas2d="false" :opts="opts" :chartData="chartData" @getIndex="handleTap" />
</view>
+24 -27
View File
@@ -1,20 +1,19 @@
<template>
<ChartCard margin="30rpx 0 0 0" title="计量器具数据">
<ChartCard margin="30rpx 0 0 0" title="计量器具数">
<view class="measuring u-flex">
<view class="measuring-box u-flex u-row-center">
<view class="measuring-box-icon"> <u-icon name="jiliangqijujianguan" color="#e28ea3" custom-prefix="custom-icon" size="60" ></u-icon></view>
<view class="measuring-box-icon"><u-icon name="jiliangqijujianguan" color="#e28ea3" custom-prefix="custom-icon" size="60"></u-icon></view>
<view class="measuring-box-row u-padding-left-20">
<text class="measuring-box-row-num">900</text>
<text class="measuring-box-row-lab">计量器具</text>
<text class="measuring-box-row-lab">计量器具</text>
</view>
</view>
<view class="measuring-box u-flex u-row-center">
<view class="measuring-box-icon"> <u-icon name="hege" color="#3bdae2" custom-prefix="custom-icon" size="60" ></u-icon></view>
<view class="measuring-box-icon"><u-icon name="hege" color="#3bdae2" custom-prefix="custom-icon" size="60"></u-icon></view>
<view class="measuring-box-row u-padding-left-20">
<text class="measuring-box-row-num">9000</text>
<text class="measuring-box-row-lab">验合格</text>
<text class="measuring-box-row-lab">验合格</text>
</view>
</view>
</view>
@@ -22,29 +21,27 @@
</template>
<script setup>
import ChartCard from '@/components/chartCard.vue'
import ChartCard from '@/components/chartCard.vue';
</script>
<style lang="scss">
.measuring{
padding: 20rpx 0;
&-box{
flex: 1;
&-row{
display: flex;
flex-direction: column;
justify-content: center;
align-items: flex-start;
&-lab{
font-size: 24rpx;
color: #999999;
margin-top: 12rpx;
}
&-num{
color: #333333;
font-size: 28rpx;
}
.measuring {
padding: 20rpx 0;
&-box {
flex: 1;
&-row {
display: flex;
flex-direction: column;
&-lab {
font-size: 24rpx;
color: #999999;
margin-top: 6rpx;
}
&-num {
color: #333333;
font-size: 28rpx;
}
}
}
</style>
}
</style>
+32 -40
View File
@@ -1,70 +1,62 @@
<template>
<ChartCard margin="30rpx 0 0 0" title="组织机构人">
<ChartCard margin="30rpx 0 0 0" title="企业和分支机构人">
<view class="org-person">
<view class="org-person-row">
<!-- <view class="org-person-row">
<view class="org-person-row_lab">
集团总数
</view>
<view class="org-person-row_num">9521</view>
</view>
</view> -->
<view class="u-flex">
<view class="org-person-row">
<view class="org-person-row_lab">
所企业总部人数
</view>
<view class="org-person-row_lab">企业质量管理人数</view>
<view class="org-person-row_num">9521</view>
</view>
<view class="org-person-row">
<view class="org-person-row_lab">
分支机构人数
</view>
<view class="org-person-row_lab">项目质量管理人数</view>
<view class="org-person-row_num">9521</view>
</view>
</view>
<view class="u-flex">
<view class="org-person-row">
<view class="org-person-row_lab">
质量管理人数
</view>
<view class="org-person-row_lab">分支机构质量管理人数</view>
<view class="org-person-row_num">9521</view>
</view>
<view class="org-person-row">
<view class="org-person-row_lab">
特种设备质保体系
</view>
<!-- <view class="org-person-row">
<view class="org-person-row_lab">特种设备质保体系</view>
<view class="org-person-row_num">9521</view>
</view>
</view> -->
</view>
</view>
</ChartCard>
</template>
<script setup>
import ChartCard from '@/components/chartCard.vue'
import ChartCard from '@/components/chartCard.vue';
</script>
<style lang="scss">
.org-person{
&-row{
flex: 1;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: flex-end;
padding: 20rpx 0;
&_lab{
width: 200rpx;
font-size: 24rpx;
color: #999999;
line-height: 1;
}
&_num{
width: calc(100% - 200rpx);
line-height: 1;
font-size: 28rpx;
color: #333333;
padding-left: 40rpx;
}
.org-person {
&-row {
flex: 1;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: flex-end;
padding: 20rpx 0;
&_lab {
// width: 200rpx;
font-size: 24rpx;
color: #999999;
line-height: 1;
}
&_num {
// width: calc(100% - 200rpx);
line-height: 1;
font-size: 28rpx;
color: #333333;
padding-left: 40rpx;
}
}
</style>
}
</style>
+1 -1
View File
@@ -1,5 +1,5 @@
<template>
<ChartCard margin="30rpx 0 0 0" title="工程划分">
<ChartCard margin="30rpx 0 0 0" title="工程划分">
<view class="inspection ">
<qiun-data-charts type="column" :canvas2d="false" :opts="opts" :chartData="chartData" @getIndex="handleTap" />
</view>
+58 -63
View File
@@ -1,87 +1,82 @@
<template>
<ChartCard margin="30rpx 0 0 0" title="安全隐患排查治理">
<ChartCard margin="30rpx 0 0 0" title="领导级质量检查数">
<view class="defect">
<u-subsection :list="list" :current="current" @change="handleChange"></u-subsection>
<view class="defect-main u-flex u-row-between u-margin-top-20">
<!-- <u-subsection :list="list" :current="current" @change="handleChange"></u-subsection> -->
<view class="defect-main u-flex u-row-between">
<view class="defect-box gb-all">
<text class="defect-box-lab">质量问题</text>
<text class="defect-box-num u-margin-top-20">4567</text>
<text class="defect-box-lab">集团检查数</text>
<text class="defect-box-num u-margin-top-20">4567</text>
</view>
<view class="defect-box gb-rectified">
<text class="defect-box-lab">整改完成</text>
<text class="defect-box-num u-margin-top-20">20</text>
<text class="defect-box-lab">企业检查数</text>
<text class="defect-box-num u-margin-top-20">20</text>
</view>
<view class="defect-box gb-not-rectified">
<text class="defect-box-lab">未整改</text>
<text class="defect-box-num u-margin-top-20">6</text>
<text class="defect-box-lab">分支机构检查数</text>
<text class="defect-box-num u-margin-top-20">6</text>
</view>
</view>
</view>
</ChartCard>
</template>
<script setup>
import ChartCard from '@/components/chartCard.vue'
import {
ref,
watch
} from 'vue';
const current = ref(0)
const list = ref([{
name: '集团级'
},
{
name: '企业级'
},
{
name: '分支机构'
}, {
name: '项目级'
}
])
const handleChange = () => {
import ChartCard from '@/components/chartCard.vue';
import { ref, watch } from 'vue';
const current = ref(0);
const list = ref([
{
name: '集团级'
},
{
name: '企业级'
},
{
name: '分支机构'
},
{
name: '项目级'
}
]);
const handleChange = () => {};
</script>
<style lang="scss">
.defect {
&-main {
height: 120rpx;
.defect {
&-main {
height: 120rpx;
}
&-box {
width: calc((100% - 40rpx) / 3);
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
&-lab {
font-size: 24rpx;
color: #ffffff;
}
&-box {
width: calc((100% - 40rpx) / 3);
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
&-lab {
font-size: 24rpx;
color: #ffffff;
}
&-num {
font-size: 28rpx;
font-weight: 600;
color: #ffffff;
}
&-num {
font-size: 28rpx;
font-weight: 600;
color: #ffffff;
}
}
}
.gb-all {
background: linear-gradient(to top right, #9E9E9E, #dcdcdc);
}
.gb-all {
background: linear-gradient(to top right, #9e9e9e, #dcdcdc);
}
.gb-not-rectified {
background: linear-gradient(to top right, #FFD626, #FF9F7D);
}
.gb-not-rectified {
background: linear-gradient(to top right, #ffd626, #ff9f7d);
}
.gb-rectified {
background: linear-gradient(to top right, #2488FA, #79BAFF);
}
</style>
.gb-rectified {
background: linear-gradient(to top right, #2488fa, #79baff);
}
</style>
+74
View File
@@ -0,0 +1,74 @@
<template>
<ChartCard margin="30rpx 0 0 0" title="项目质量检查数">
<view class="defect">
<!-- <u-subsection :list="list" :current="current" @change="handleChange"></u-subsection> -->
<view class="defect-main u-flex u-row-between">
<view class="defect-box gb-rectified">
<text class="defect-box-lab">项目质量检查数</text>
<text class="defect-box-num u-margin-top-20">20</text>
</view>
</view>
</view>
</ChartCard>
</template>
<script setup>
import ChartCard from '@/components/chartCard.vue';
import { ref, watch } from 'vue';
const current = ref(0);
const list = ref([
{
name: '集团级'
},
{
name: '企业级'
},
{
name: '分支机构'
},
{
name: '项目级'
}
]);
const handleChange = () => {};
</script>
<style lang="scss">
.defect {
&-main {
height: 120rpx;
}
&-box {
width:100%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
&-lab {
font-size: 24rpx;
color: #ffffff;
}
&-num {
font-size: 28rpx;
font-weight: 600;
color: #ffffff;
}
}
}
.gb-all {
background: linear-gradient(to top right, #9e9e9e, #dcdcdc);
}
.gb-not-rectified {
background: linear-gradient(to top right, #ffd626, #ff9f7d);
}
.gb-rectified {
background: linear-gradient(to top right, #2488fa, #79baff);
}
</style>
+3 -3
View File
@@ -1,12 +1,12 @@
<template>
<ChartCard margin="30rpx 0 0 0" title="图纸会审/技术交底">
<ChartCard margin="30rpx 0 0 0" title="图纸会审交底">
<view class="education u-flex">
<view class="education-box">
<view class="education-box-lab">图纸会审()</view>
<view class="education-box-lab">图纸会审总数</view>
<view class="education-box-num u-margin-top-20">800</view>
</view>
<view class="education-box">
<view class="education-box-lab">设计交底()</view>
<view class="education-box-lab">设计交底总数</view>
<view class="education-box-num u-margin-top-20">800</view>
</view>
</view>
+62
View File
@@ -0,0 +1,62 @@
<template>
<ChartCard margin="30rpx 0 30rpx 0" title="领导级安全检查数">
<view class="big-crisis">
<qiun-data-charts type="column" :opts="opts" :canvas2d="false" :chartData="chartData" @getIndex="handleTap" />
</view>
</ChartCard>
</template>
<script setup>
import ChartCard from '@/components/chartCard.vue';
import { ref, onMounted } from 'vue';
const opts = ref({
padding: [15, 15, 0, 5],
enableScroll: false,
legend: {
show: false
},
xAxis: {
disableGrid: true
},
yAxis: {
data: [
{
min: 0
}
]
},
extra: {
column: {
type: 'group',
width: 20,
activeBgColor: '#000000',
activeBgOpacity: 0.08
}
}
});
const chartData = ref({});
const handleTap = (e) => {
console.log(e);
};
onMounted(() => {
let res = {
categories: ['集团检查数', '企业检查数', '分支机构检查数'],
series: [
{
data: [35, 36,50]
}
]
};
chartData.value = JSON.parse(JSON.stringify(res));
});
</script>
<style lang="scss">
.big-crisis {
width: 100%;
height: 400rpx;
}
</style>
+47 -63
View File
@@ -1,43 +1,27 @@
<template>
<ChartCard margin="30rpx 0 0 0" title="焊接数">
<ChartCard margin="30rpx 0 0 0" title="焊接数">
<view class="weld">
<view class="weld-row u-padding-20">
<view class="weld-row-col u-flex">
<view class="weld-row-col_lab">
焊工总数
</view>
<view class="weld-row-col_num u-padding-left-18">
945281
</view>
<view class="weld-row-col_lab">在岗焊工总人数</view>
<view class="weld-row-col_num u-padding-left-18">945281</view>
</view>
</view>
<view class="weld-row1 u-margin-top-20">
<view class="weld-row1-col1 u-flex-col">
<view class="weld-row1-col1_lab">
总达因数
</view>
<view class="weld-row1-col1_num">
945281
</view>
<view class="weld-row1-col1_lab">总达因数</view>
<view class="weld-row1-col1_num">945281</view>
</view>
<view class="weld-row1-col1 u-flex-col">
<view class="weld-row1-col1_lab">
完成达因数
</view>
<view class="weld-row1-col1_num">
945281
</view>
<view class="weld-row1-col1_lab">完成达因数</view>
<view class="weld-row1-col1_num">945281</view>
</view>
<view class="weld-row1-col1 u-flex-col">
<view class="weld-row1-col1_lab">
总片数
</view>
<view class="weld-row1-col1_num">
945281
</view>
<view class="weld-row1-col1_lab">总拍片数</view>
<view class="weld-row1-col1_num">945281</view>
</view>
</view>
<view class="weld-row2 u-margin-top-20">
<!-- <view class="weld-row2 u-margin-top-20">
<view class="weld-row1-col1 u-flex-col">
<view class="weld-row1-col1_lab">
合格片数
@@ -54,53 +38,53 @@
33.00%
</view>
</view>
</view>
</view> -->
</view>
</ChartCard>
</template>
<script setup>
import ChartCard from '@/components/chartCard.vue'
import ChartCard from '@/components/chartCard.vue';
</script>
<style lang="scss">
.weld {
&-row {
&-col{
&_lab{
font-size: 28rpx;
color: #999999;
}
&_num{
font-size: 32rpx;
color: #333333;
}
.weld {
&-row {
&-col {
&_lab {
font-size: 28rpx;
color: #999999;
}
background-color: #F7FBFE;
}
&-row1{
display: grid;
grid-template-columns: repeat(3, calc((100% - 60rpx) / 3));
grid-column-gap: 30rpx;
&-col1{
padding: 20rpx;
background-color: #F7FBFE;
&_lab{
text-align: center;
font-size: 28rpx;
color: #999999;
}
&_num{
text-align: center;
font-size: 32rpx;
color: #333333;
}
&_num {
font-size: 32rpx;
color: #333333;
}
}
&-row2{
display: grid;
grid-template-columns: repeat(2, calc((100% - 30rpx) / 2));
grid-column-gap: 30rpx;
background-color: #f7fbfe;
}
&-row1 {
display: grid;
grid-template-columns: repeat(3, calc((100% - 60rpx) / 3));
grid-column-gap: 30rpx;
&-col1 {
padding: 20rpx;
background-color: #f7fbfe;
&_lab {
text-align: center;
font-size: 28rpx;
color: #999999;
}
&_num {
text-align: center;
font-size: 32rpx;
color: #333333;
}
}
}
</style>
&-row2 {
display: grid;
grid-template-columns: repeat(2, calc((100% - 30rpx) / 2));
grid-column-gap: 30rpx;
}
}
</style>