上传
This commit is contained in:
@@ -1,65 +1,76 @@
|
||||
<template>
|
||||
<ChartCard margin="30rpx 0 0 0" title="QC活动数">
|
||||
<view class="inspection ">
|
||||
<view class="inspection" @click="router.push('/pages/quality/QC/index')">
|
||||
<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';
|
||||
|
||||
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)
|
||||
import ChartCard from '@/components/chartCard.vue';
|
||||
import { ref, watch } from 'vue';
|
||||
import { router } from '@/utils';
|
||||
let props = defineProps({
|
||||
awardStatsData: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
}
|
||||
});
|
||||
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({});
|
||||
|
||||
onMounted(() => {
|
||||
let res = {
|
||||
categories: ["省部级奖数量", "集团级奖项数量", "企业级奖项数量"],
|
||||
series: [{
|
||||
color: "#27c9cb",
|
||||
name: '',
|
||||
data: [100, 542, 685]
|
||||
},
|
||||
]
|
||||
};
|
||||
chartData.value = JSON.parse(JSON.stringify(res));
|
||||
})
|
||||
const handleTap = (e) => {
|
||||
console.log(e);
|
||||
};
|
||||
|
||||
watch(
|
||||
() => props.awardStatsData.qc,
|
||||
(newVal) => {
|
||||
if (newVal && newVal.length) {
|
||||
console.log('监听数据', newVal);
|
||||
// 只有当数据存在时才赋值
|
||||
let res = {
|
||||
categories: ['省部级奖数量', '集团级奖项数量', '企业级奖项数量'],
|
||||
series: [
|
||||
{
|
||||
data: newVal
|
||||
}
|
||||
]
|
||||
};
|
||||
chartData.value = JSON.parse(JSON.stringify(res));
|
||||
}
|
||||
},
|
||||
{ deep: true, immediate: true }
|
||||
);
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.inspection {
|
||||
width: 100%;
|
||||
height: 300rpx;
|
||||
}
|
||||
</style>
|
||||
.inspection {
|
||||
width: 100%;
|
||||
height: 300rpx;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,124 +1,136 @@
|
||||
<template>
|
||||
<ChartCard margin="30rpx 0 0 0" title="控制点验收数">
|
||||
<view class="ys">
|
||||
<view class="ys" @click="router.push('/pages/quality/controlPoint/index')">
|
||||
<qiun-data-charts type="mix" :canvas2d="false" :opts="opts" :chartData="chartData" @getIndex="handleTap" />
|
||||
</view>
|
||||
<view class="ys u-margin-top-30">
|
||||
<view class="ys u-margin-top-30" @click="router.push('/pages/quality/controlPoint/index')">
|
||||
<qiun-data-charts type="mix" :canvas2d="false" :opts="opts" :chartData="chartData1" @getIndex="handleTap" />
|
||||
</view>
|
||||
</ChartCard>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import ChartCard from '@/components/chartCard.vue'
|
||||
import {
|
||||
ref,onMounted
|
||||
} from 'vue';
|
||||
|
||||
const opts = ref({
|
||||
color: ["#1890FF", "#91CB74", "#FAC858", "#EE6666", "#73C0DE", "#3CA272", "#FC8452", "#9A60B4", "#ea7ccc"],
|
||||
padding: [15, 15, 0, 15],
|
||||
enableScroll: false,
|
||||
legend: { fontSize: 10},
|
||||
xAxis: {
|
||||
disableGrid: true,
|
||||
},
|
||||
yAxis: {
|
||||
disabled: false,
|
||||
disableGrid: false,
|
||||
splitNumber: 5,
|
||||
gridType: "dash",
|
||||
dashLength: 4,
|
||||
gridColor: "#CCCCCC",
|
||||
padding: 10,
|
||||
showTitle: true,
|
||||
data: [{
|
||||
position: "right",
|
||||
min: 0,
|
||||
max: 100,
|
||||
title: "百分比"
|
||||
},
|
||||
{
|
||||
position: "left",
|
||||
title: "数量",
|
||||
textAlign: "left"
|
||||
}
|
||||
]
|
||||
},
|
||||
extra: {
|
||||
mix: {
|
||||
column: {
|
||||
width: 20,
|
||||
seriesGap: 8
|
||||
}
|
||||
import ChartCard from '@/components/chartCard.vue';
|
||||
import { ref, watch } from 'vue';
|
||||
import {router} from '@/utils'
|
||||
let props = defineProps({
|
||||
controlPointAcceptanceData: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
}
|
||||
});
|
||||
const opts = ref({
|
||||
color: ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'],
|
||||
padding: [15, 15, 0, 15],
|
||||
enableScroll: false,
|
||||
legend: { fontSize: 10 },
|
||||
xAxis: {
|
||||
disableGrid: true
|
||||
},
|
||||
yAxis: {
|
||||
disabled: false,
|
||||
disableGrid: false,
|
||||
splitNumber: 5,
|
||||
gridType: 'dash',
|
||||
dashLength: 4,
|
||||
gridColor: '#CCCCCC',
|
||||
padding: 10,
|
||||
showTitle: true,
|
||||
data: [
|
||||
{
|
||||
position: 'right',
|
||||
min: 0,
|
||||
max: 100,
|
||||
title: '百分比'
|
||||
},
|
||||
{
|
||||
position: 'left',
|
||||
title: '数量',
|
||||
textAlign: 'left'
|
||||
}
|
||||
]
|
||||
},
|
||||
extra: {
|
||||
mix: {
|
||||
column: {
|
||||
width: 20,
|
||||
seriesGap: 8
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
const chartData = ref({})
|
||||
const chartData1 = ref({})
|
||||
const handleTap = (e) => {
|
||||
console.log(e)
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
onMounted(() => {
|
||||
let res = {
|
||||
categories: ["关键工序验收", "特殊工程验收", "隐藏工程验收"],
|
||||
series: [{
|
||||
name: "合格率",
|
||||
type: "line",
|
||||
style: "curve",
|
||||
color: "#ffe200",
|
||||
disableLegend: true,
|
||||
data: [70, 50, 85]
|
||||
},
|
||||
{
|
||||
name: "验收数",
|
||||
index: 1,
|
||||
type: "column",
|
||||
data: [40, 55, 110]
|
||||
},
|
||||
{
|
||||
name: "合格数",
|
||||
index: 1,
|
||||
type: "column",
|
||||
data: [50, 20, 75]
|
||||
},
|
||||
]
|
||||
};
|
||||
chartData.value = JSON.parse(JSON.stringify(res));
|
||||
|
||||
let res1 = {
|
||||
categories: ["单位工程", "分部工程", "分项工程"],
|
||||
series: [{
|
||||
name: "合格率",
|
||||
type: "line",
|
||||
style: "curve",
|
||||
color: "#ffe200",
|
||||
disableLegend: true,
|
||||
data: [70, 50, 85]
|
||||
},
|
||||
{
|
||||
name: "验收数",
|
||||
index: 1,
|
||||
type: "column",
|
||||
data: [40, 55, 110]
|
||||
},
|
||||
{
|
||||
name: "合格数",
|
||||
index: 1,
|
||||
type: "column",
|
||||
data: [50, 20, 75]
|
||||
},
|
||||
]
|
||||
};
|
||||
chartData1.value = JSON.parse(JSON.stringify(res1));
|
||||
})
|
||||
const chartData = ref({});
|
||||
const chartData1 = ref({});
|
||||
const handleTap = (e) => {
|
||||
console.log(e);
|
||||
};
|
||||
watch(
|
||||
() => props.controlPointAcceptanceData,
|
||||
(newVal) => {
|
||||
if (newVal && newVal.QualifiedRateList) {
|
||||
console.log("}}}}}}}}}",newVal);
|
||||
// 只有当数据存在时才赋值
|
||||
let res = {
|
||||
categories: ['关键工序验收', '特殊工程验收', '隐藏工程验收'],
|
||||
series: [
|
||||
{
|
||||
name: '合格率',
|
||||
type: 'line',
|
||||
style: 'curve',
|
||||
color: '#ffe200',
|
||||
disableLegend: true,
|
||||
data: newVal.QualifiedRateList
|
||||
},
|
||||
{
|
||||
name: '验收数',
|
||||
index: 1,
|
||||
type: 'column',
|
||||
data: newVal.AcceptNumList
|
||||
},
|
||||
{
|
||||
name: '合格数',
|
||||
index: 1,
|
||||
type: 'column',
|
||||
data: newVal.QualifiedList
|
||||
}
|
||||
]
|
||||
};
|
||||
let res1 = {
|
||||
categories: ['单位工程', '分部工程', '分项工程'],
|
||||
series: [
|
||||
{
|
||||
name: '合格率',
|
||||
type: 'line',
|
||||
style: 'curve',
|
||||
color: '#ffe200',
|
||||
disableLegend: true,
|
||||
data: newVal.EngineerQualifiedRateList
|
||||
},
|
||||
{
|
||||
name: '验收数',
|
||||
index: 1,
|
||||
type: 'column',
|
||||
data: newVal.EngineerAcceptNumList
|
||||
},
|
||||
{
|
||||
name: '合格数',
|
||||
index: 1,
|
||||
type: 'column',
|
||||
data: newVal.EngineerQualifiedList
|
||||
}
|
||||
]
|
||||
};
|
||||
chartData.value = JSON.parse(JSON.stringify(res));
|
||||
chartData1.value = JSON.parse(JSON.stringify(res1));
|
||||
}
|
||||
},
|
||||
{ deep: true, immediate: true }
|
||||
);
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.ys {
|
||||
height: 300rpx;
|
||||
}
|
||||
</style>
|
||||
.ys {
|
||||
height: 300rpx;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<ChartCard margin="30rpx 0 0 0" title="施工方案数">
|
||||
<view class="inspection">
|
||||
<view class="inspection" @click="router.push('/pages/quality/constructionPlan/index')">
|
||||
<qiun-data-charts type="column" :canvas2d="false" :opts="opts" :chartData="chartData" @getIndex="handleTap" />
|
||||
</view>
|
||||
</ChartCard>
|
||||
@@ -8,7 +8,14 @@
|
||||
|
||||
<script setup>
|
||||
import ChartCard from '@/components/chartCard.vue';
|
||||
import { ref, onMounted } from 'vue';
|
||||
import { ref, watch } from 'vue';
|
||||
import { router } from '@/utils';
|
||||
let props = defineProps({
|
||||
constructSolutionData: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
}
|
||||
});
|
||||
|
||||
const opts = ref({
|
||||
padding: [15, 15, 0, 5],
|
||||
@@ -40,20 +47,25 @@ const chartData = ref({});
|
||||
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));
|
||||
});
|
||||
watch(
|
||||
() => props.constructSolutionData,
|
||||
(newVal) => {
|
||||
if (newVal && newVal.length) {
|
||||
console.log('监听数据', newVal);
|
||||
// 只有当数据存在时才赋值
|
||||
let res = {
|
||||
categories: ['方案总数', '企业审批总数', '项目审批总数'],
|
||||
series: [
|
||||
{
|
||||
data: newVal
|
||||
}
|
||||
]
|
||||
};
|
||||
chartData.value = JSON.parse(JSON.stringify(res));
|
||||
}
|
||||
},
|
||||
{ deep: true, immediate: true }
|
||||
);
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
<template>
|
||||
<ChartCard margin="30rpx 0 0 0" title="人员报验、培训及交底数">
|
||||
<view class="education u-flex u-row-between">
|
||||
<view class="education u-flex u-row-between" @click="router.push('/pages/quality/personnelInspection/index')">
|
||||
<view class="education-box">
|
||||
<view class="education-box-lab">人员报验数</view>
|
||||
<view class="education-box-num u-margin-top-20">800</view>
|
||||
<view class="education-box-num u-margin-top-20">{{ qmsEducation?.PersonInspectionNum || 0 }}</view>
|
||||
</view>
|
||||
<view class="education-box">
|
||||
<view class="education-box-lab">培训人次</view>
|
||||
<view class="education-box-num u-margin-top-20">800</view>
|
||||
<view class="education-box-num u-margin-top-20">{{ qmsEducation?.TrainPersonNum || 0 }}</view>
|
||||
</view>
|
||||
<view class="education-box">
|
||||
<view class="education-box-lab">技术交底人次</view>
|
||||
<view class="education-box-num u-margin-top-20">800</view>
|
||||
<view class="education-box-num u-margin-top-20">{{ qmsEducation?.TechnicalDisclosePersonNum || 0 }}</view>
|
||||
</view>
|
||||
</view>
|
||||
</ChartCard>
|
||||
@@ -19,6 +19,13 @@
|
||||
|
||||
<script setup>
|
||||
import ChartCard from '@/components/chartCard.vue';
|
||||
import {router} from '@/utils'
|
||||
defineProps({
|
||||
qmsEducation: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<template>
|
||||
<ChartCard margin="30rpx 0 0 0" title="设备材料及机具报验数">
|
||||
<view class="measuring u-flex u-row-between">
|
||||
<view class="measuring u-flex u-row-between" @click="router.push('/pages/quality/equipment/index')">
|
||||
<view class="measuring-box u-flex u-row-center">
|
||||
<view class="measuring-box-icon"><u-icon name="shebei" 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-num">{{ qmsInspectionData?.EquipmentInspectionNum || 0 }}台</text>
|
||||
<text class="measuring-box-row-lab">设备材料报验数</text>
|
||||
</view>
|
||||
</view>
|
||||
@@ -12,7 +12,7 @@
|
||||
<view class="measuring-box u-flex u-row-center">
|
||||
<view class="measuring-box-icon"><u-icon name="jijubaoyan" color="#36d2ad" 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-num">{{ qmsInspectionData?.MachineInspectionNum || 0 }}台</text>
|
||||
<text class="measuring-box-row-lab">机具报验数</text>
|
||||
</view>
|
||||
</view>
|
||||
@@ -22,6 +22,13 @@
|
||||
|
||||
<script setup>
|
||||
import ChartCard from '@/components/chartCard.vue';
|
||||
import {router} from '@/utils'
|
||||
defineProps({
|
||||
qmsInspectionData: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
|
||||
@@ -1,67 +1,78 @@
|
||||
<template>
|
||||
<ChartCard margin="30rpx 0 0 0" title="优质工程数">
|
||||
<view class="inspection ">
|
||||
<view class="inspection" @click="router.push('/pages/quality/qualityEngineering/index')">
|
||||
<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';
|
||||
|
||||
const opts = ref({
|
||||
padding: [15, 15, 0, 5],
|
||||
enableScroll: false,
|
||||
legend: {show: false},
|
||||
xAxis: {
|
||||
disableGrid: true,
|
||||
rotateLabel: true,
|
||||
rotateAngle: -30
|
||||
},
|
||||
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)
|
||||
import ChartCard from '@/components/chartCard.vue';
|
||||
import { ref, watch } from 'vue';
|
||||
import {router} from '@/utils'
|
||||
let props = defineProps({
|
||||
awardStatsData: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
}
|
||||
});
|
||||
const opts = ref({
|
||||
padding: [15, 15, 0, 5],
|
||||
enableScroll: false,
|
||||
legend: { show: false },
|
||||
xAxis: {
|
||||
disableGrid: true,
|
||||
rotateLabel: true,
|
||||
rotateAngle: -30
|
||||
},
|
||||
yAxis: {
|
||||
showTitle: true,
|
||||
data: [
|
||||
{
|
||||
title: '单位:项'
|
||||
}
|
||||
]
|
||||
},
|
||||
extra: {
|
||||
column: {
|
||||
type: 'group',
|
||||
width: 30,
|
||||
activeBgColor: '#000000',
|
||||
activeBgOpacity: 0.08
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
const chartData = ref({});
|
||||
|
||||
onMounted(() => {
|
||||
let res = {
|
||||
categories: ["国家级鲁\n班奖", "国家级国\n优奖", "省部级奖\n项", "市级奖项"],
|
||||
series: [{
|
||||
color: "#91CB74",
|
||||
name: '',
|
||||
data: [100, 542, 685, 254]
|
||||
},
|
||||
]
|
||||
};
|
||||
chartData.value = JSON.parse(JSON.stringify(res));
|
||||
})
|
||||
const handleTap = (e) => {
|
||||
console.log(e);
|
||||
};
|
||||
|
||||
watch(
|
||||
() => props.awardStatsData.qualityEngineering,
|
||||
(newVal) => {
|
||||
if (newVal && newVal.length) {
|
||||
console.log('监听数据', newVal);
|
||||
// 只有当数据存在时才赋值
|
||||
let res = {
|
||||
categories: ['国家级鲁\n班奖', '国家级国\n优奖', '省部级奖\n项', '市级奖项'],
|
||||
series: [
|
||||
{
|
||||
data: newVal
|
||||
}
|
||||
]
|
||||
};
|
||||
chartData.value = JSON.parse(JSON.stringify(res));
|
||||
}
|
||||
},
|
||||
{ deep: true, immediate: true }
|
||||
);
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.inspection {
|
||||
width: 100%;
|
||||
height: 300rpx;
|
||||
}
|
||||
</style>
|
||||
.inspection {
|
||||
width: 100%;
|
||||
height: 300rpx;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<template>
|
||||
<ChartCard margin="30rpx 0 0 0" title="计量器具数">
|
||||
<view class="measuring u-flex u-row-between">
|
||||
<view class="measuring u-flex u-row-between" @click="router.push('/pages/quality/meter/index')">
|
||||
<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-num">{{ qmsMeasuringInstruments?.UseNum || 0 }}台</text>
|
||||
<text class="measuring-box-row-lab">计量器具数</text>
|
||||
</view>
|
||||
</view>
|
||||
@@ -12,7 +12,7 @@
|
||||
<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-num">{{ qmsMeasuringInstruments?.OKNum || 0 }}台</text>
|
||||
<text class="measuring-box-row-lab">校验合格数</text>
|
||||
</view>
|
||||
</view>
|
||||
@@ -22,6 +22,13 @@
|
||||
|
||||
<script setup>
|
||||
import ChartCard from '@/components/chartCard.vue';
|
||||
import {router} from '@/utils'
|
||||
defineProps({
|
||||
qmsMeasuringInstruments: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<ChartCard margin="30rpx 0 0 0" title="企业和分支机构人数">
|
||||
<view class="org-person">
|
||||
<view class="org-person" @click="router.push('/pages/quality/numberEmployees/index')">
|
||||
<!-- <view class="org-person-row">
|
||||
<view class="org-person-row_lab">
|
||||
集团总数
|
||||
@@ -10,17 +10,17 @@
|
||||
<view class="u-flex">
|
||||
<view class="org-person-row">
|
||||
<view class="org-person-row_lab">企业质量管理人数</view>
|
||||
<view class="org-person-row_num">9521</view>
|
||||
<view class="org-person-row_num">{{ qmsOrgData?.CompanyPersonNum || 0 }}</view>
|
||||
</view>
|
||||
<view class="org-person-row">
|
||||
<view class="org-person-row_lab">项目质量管理人数</view>
|
||||
<view class="org-person-row_num">9521</view>
|
||||
<view class="org-person-row_num">{{ qmsOrgData?.ProjectPersonNum || 0 }}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="u-flex">
|
||||
<view class="org-person-row">
|
||||
<view class="org-person-row_lab">分支机构质量管理人数</view>
|
||||
<view class="org-person-row_num">9521</view>
|
||||
<view class="org-person-row_num">{{ qmsOrgData?.BranchPersonNum || 0 }}</view>
|
||||
</view>
|
||||
<!-- <view class="org-person-row">
|
||||
<view class="org-person-row_lab">特种设备质保体系</view>
|
||||
@@ -33,6 +33,13 @@
|
||||
|
||||
<script setup>
|
||||
import ChartCard from '@/components/chartCard.vue';
|
||||
import {router} from '@/utils'
|
||||
defineProps({
|
||||
qmsOrgData: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
|
||||
@@ -1,63 +1,75 @@
|
||||
<template>
|
||||
<ChartCard margin="30rpx 0 0 0" title="工程划分数">
|
||||
<view class="inspection ">
|
||||
<view class="inspection" @click="router.push('/pages/quality/engineeringDivision/index')">
|
||||
<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';
|
||||
|
||||
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)
|
||||
import ChartCard from '@/components/chartCard.vue';
|
||||
import { ref, watch } from 'vue';
|
||||
import {router} from '@/utils'
|
||||
let props = defineProps({
|
||||
projectDivisionData: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
}
|
||||
});
|
||||
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({});
|
||||
|
||||
onMounted(() => {
|
||||
let res = {
|
||||
categories: ["单位工程数", "分部工程数", "分项工程数"],
|
||||
series: [{
|
||||
name: '',
|
||||
data: [10000, 5428, 6852]
|
||||
},
|
||||
]
|
||||
};
|
||||
chartData.value = JSON.parse(JSON.stringify(res));
|
||||
})
|
||||
const handleTap = (e) => {
|
||||
console.log(e);
|
||||
};
|
||||
|
||||
watch(
|
||||
() => props.projectDivisionData,
|
||||
(newVal) => {
|
||||
if (newVal && newVal.length) {
|
||||
// 只有当数据存在时才赋值
|
||||
let res = {
|
||||
categories: ['单位工程数', '分部工程数', '分项工程数'],
|
||||
series: [
|
||||
{
|
||||
data: newVal
|
||||
}
|
||||
]
|
||||
};
|
||||
chartData.value = JSON.parse(JSON.stringify(res));
|
||||
}
|
||||
},
|
||||
{ deep: true, immediate: true }
|
||||
);
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.inspection {
|
||||
width: 100%;
|
||||
height: 300rpx;
|
||||
}
|
||||
</style>
|
||||
.inspection {
|
||||
width: 100%;
|
||||
height: 300rpx;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,11 +1,15 @@
|
||||
<template>
|
||||
<ChartCard margin="30rpx 0 0 0" title="项目质量检查数">
|
||||
<view class="defect">
|
||||
<view class="defect" @click="router.push('/pages/quality/projectQuality/index')">
|
||||
<!-- <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>
|
||||
<text class="defect-box-num u-margin-top-20">{{ qualityProblemData?.ProjectProblemNum || 0 }}</text>
|
||||
</view>
|
||||
<view class="defect-box gb-rectified">
|
||||
<text class="defect-box-lab">项目质量未完成数</text>
|
||||
<text class="defect-box-num u-margin-top-20">{{ qualityProblemData?.ProjectProblemNotCompletedNum || 0 }}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -14,7 +18,13 @@
|
||||
<script setup>
|
||||
import ChartCard from '@/components/chartCard.vue';
|
||||
import { ref, watch } from 'vue';
|
||||
|
||||
import {router} from '@/utils'
|
||||
defineProps({
|
||||
qualityProblemData: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
}
|
||||
});
|
||||
const current = ref(0);
|
||||
const list = ref([
|
||||
{
|
||||
@@ -40,7 +50,7 @@ const handleChange = () => {};
|
||||
}
|
||||
|
||||
&-box {
|
||||
width:100%;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
@@ -1,36 +1,42 @@
|
||||
<template>
|
||||
<ChartCard margin="30rpx 0 0 0" title="图纸会审及交底数">
|
||||
<view class="education u-flex">
|
||||
<view class="education u-flex" @click="router.push('/pages/quality/drawingReview/index')">
|
||||
<view class="education-box">
|
||||
<view class="education-box-lab">图纸会审总数</view>
|
||||
<view class="education-box-num u-margin-top-6">800</view>
|
||||
<view class="education-box-num u-margin-top-6">{{comprehensiveData?.ComprehensiveReviewDrawingsNum||0}}</view>
|
||||
</view>
|
||||
<view class="education-box">
|
||||
<view class="education-box-lab">设计交底总数</view>
|
||||
<view class="education-box-num u-margin-top-6">800</view>
|
||||
<view class="education-box-num u-margin-top-6">{{comprehensiveData?.DesignDetailsNum||0}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</ChartCard>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import ChartCard from '@/components/chartCard.vue'
|
||||
|
||||
import ChartCard from '@/components/chartCard.vue';
|
||||
import {router} from '@/utils'
|
||||
let props = defineProps({
|
||||
comprehensiveData: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
}
|
||||
});
|
||||
</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;
|
||||
&-lab {
|
||||
color: #999999;
|
||||
font-size: 24rpx;
|
||||
}
|
||||
&-num {
|
||||
color: #333333;
|
||||
font-size: 28rpx;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<ChartCard margin="30rpx 0 30rpx 0" title="领导级安全检查数">
|
||||
<view class="big-crisis">
|
||||
<view class="big-crisis" @click="router.push('/pages/quality/leader/index')">
|
||||
<qiun-data-charts type="column" :opts="opts" :canvas2d="false" :chartData="chartData" @getIndex="handleTap" />
|
||||
</view>
|
||||
</ChartCard>
|
||||
@@ -8,12 +8,24 @@
|
||||
|
||||
<script setup>
|
||||
import ChartCard from '@/components/chartCard.vue';
|
||||
import { ref, onMounted } from 'vue';
|
||||
import { ref, watch } from 'vue';
|
||||
import { router } from '@/utils';
|
||||
let props = defineProps({
|
||||
qualityProblemData: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
},
|
||||
qualityProblemDatas: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
}
|
||||
});
|
||||
|
||||
const opts = ref({
|
||||
padding: [15, 15, 0, 5],
|
||||
enableScroll: false,
|
||||
legend: {
|
||||
show: false
|
||||
show: true
|
||||
},
|
||||
xAxis: {
|
||||
disableGrid: true
|
||||
@@ -30,7 +42,8 @@ const opts = ref({
|
||||
type: 'group',
|
||||
width: 20,
|
||||
activeBgColor: '#000000',
|
||||
activeBgOpacity: 0.08
|
||||
activeBgOpacity: 0.08,
|
||||
seriesGap:3
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -40,18 +53,29 @@ 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));
|
||||
});
|
||||
watch(
|
||||
() => props.qualityProblemData,
|
||||
(newVal) => {
|
||||
if (newVal && newVal.length) {
|
||||
// 只有当数据存在时才赋值
|
||||
let res = {
|
||||
categories: ['集团检查数', '企业检查数', '分支机构检查数'],
|
||||
series: [
|
||||
{
|
||||
name: '总数',
|
||||
data: newVal
|
||||
},
|
||||
{
|
||||
name: '未完成',
|
||||
data: props.qualityProblemDatas
|
||||
}
|
||||
]
|
||||
};
|
||||
chartData.value = JSON.parse(JSON.stringify(res));
|
||||
}
|
||||
},
|
||||
{ deep: true, immediate: true }
|
||||
);
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
<template>
|
||||
<ChartCard margin="30rpx 0 0 0" title="焊接数">
|
||||
<view class="weld">
|
||||
<view class="weld" @click="router.push('/pages/quality/welding/index')">
|
||||
<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_num u-padding-left-18">{{ hjData?.WelderNum || 0 }}</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_num">{{ hjData?.TotalDineNum || 0 }}</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_num">{{ hjData?.CompleteDineNum || 0 }}</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_num">{{ hjData?.TotalFilmNum || 0 }}</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view class="weld-row2 u-margin-top-20">
|
||||
@@ -45,6 +45,13 @@
|
||||
|
||||
<script setup>
|
||||
import ChartCard from '@/components/chartCard.vue';
|
||||
import { router } from '@/utils';
|
||||
let props = defineProps({
|
||||
hjData: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
|
||||
Reference in New Issue
Block a user