diff --git a/src/api/dataManagement/data/verificationCertificate.ts b/src/api/dataManagement/data/verificationCertificate.ts
new file mode 100644
index 0000000..9ba5ab9
--- /dev/null
+++ b/src/api/dataManagement/data/verificationCertificate.ts
@@ -0,0 +1,51 @@
+// 检定证书分析相关接口
+import request from '@/api/index'
+
+// 基本信息
+export function getBaseInfo(data: object) {
+ return request({
+ url: '/data/certificate/amount',
+ method: 'post',
+ data
+ })
+}
+// 部门检校证书分析
+export function getDeptAnalysis(data: object) {
+ return request({
+ url: '/data/certificate/analysis',
+ method: 'post',
+ data
+ })
+}
+// 检校类别分析
+export function getCategoryAnalysis(data: object) {
+ return request({
+ url: '/data/certificate/category',
+ method: 'post',
+ data
+ })
+}
+// 部门检校证书比例
+export function getDeptRate(data: object) {
+ return request({
+ url: '/data/certificate/rate',
+ method: 'post',
+ data
+ })
+}
+// 检定人员排行榜
+export function getStaffRank(data: object) {
+ return request({
+ url: '/data/certificate/staff',
+ method: 'post',
+ data
+ })
+}
+// 无需出证书tab页:展示没有证书只有原始记录的设备列表
+export function getOnlyRecord(data: object) {
+ return request({
+ url: '/data/certificate/onlyRecord',
+ method: 'post',
+ data
+ })
+}
diff --git a/src/api/dataManagement/data/verificationCertificate.ts b/src/api/dataManagement/data/verificationCertificate.ts
new file mode 100644
index 0000000..9ba5ab9
--- /dev/null
+++ b/src/api/dataManagement/data/verificationCertificate.ts
@@ -0,0 +1,51 @@
+// 检定证书分析相关接口
+import request from '@/api/index'
+
+// 基本信息
+export function getBaseInfo(data: object) {
+ return request({
+ url: '/data/certificate/amount',
+ method: 'post',
+ data
+ })
+}
+// 部门检校证书分析
+export function getDeptAnalysis(data: object) {
+ return request({
+ url: '/data/certificate/analysis',
+ method: 'post',
+ data
+ })
+}
+// 检校类别分析
+export function getCategoryAnalysis(data: object) {
+ return request({
+ url: '/data/certificate/category',
+ method: 'post',
+ data
+ })
+}
+// 部门检校证书比例
+export function getDeptRate(data: object) {
+ return request({
+ url: '/data/certificate/rate',
+ method: 'post',
+ data
+ })
+}
+// 检定人员排行榜
+export function getStaffRank(data: object) {
+ return request({
+ url: '/data/certificate/staff',
+ method: 'post',
+ data
+ })
+}
+// 无需出证书tab页:展示没有证书只有原始记录的设备列表
+export function getOnlyRecord(data: object) {
+ return request({
+ url: '/data/certificate/onlyRecord',
+ method: 'post',
+ data
+ })
+}
diff --git "a/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\345\217\212\346\227\266\347\216\207.png" "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\345\217\212\346\227\266\347\216\207.png"
new file mode 100644
index 0000000..25e6710
--- /dev/null
+++ "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\345\217\212\346\227\266\347\216\207.png"
Binary files differ
diff --git a/src/api/dataManagement/data/verificationCertificate.ts b/src/api/dataManagement/data/verificationCertificate.ts
new file mode 100644
index 0000000..9ba5ab9
--- /dev/null
+++ b/src/api/dataManagement/data/verificationCertificate.ts
@@ -0,0 +1,51 @@
+// 检定证书分析相关接口
+import request from '@/api/index'
+
+// 基本信息
+export function getBaseInfo(data: object) {
+ return request({
+ url: '/data/certificate/amount',
+ method: 'post',
+ data
+ })
+}
+// 部门检校证书分析
+export function getDeptAnalysis(data: object) {
+ return request({
+ url: '/data/certificate/analysis',
+ method: 'post',
+ data
+ })
+}
+// 检校类别分析
+export function getCategoryAnalysis(data: object) {
+ return request({
+ url: '/data/certificate/category',
+ method: 'post',
+ data
+ })
+}
+// 部门检校证书比例
+export function getDeptRate(data: object) {
+ return request({
+ url: '/data/certificate/rate',
+ method: 'post',
+ data
+ })
+}
+// 检定人员排行榜
+export function getStaffRank(data: object) {
+ return request({
+ url: '/data/certificate/staff',
+ method: 'post',
+ data
+ })
+}
+// 无需出证书tab页:展示没有证书只有原始记录的设备列表
+export function getOnlyRecord(data: object) {
+ return request({
+ url: '/data/certificate/onlyRecord',
+ method: 'post',
+ data
+ })
+}
diff --git "a/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\345\217\212\346\227\266\347\216\207.png" "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\345\217\212\346\227\266\347\216\207.png"
new file mode 100644
index 0000000..25e6710
--- /dev/null
+++ "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\345\217\212\346\227\266\347\216\207.png"
Binary files differ
diff --git "a/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217.png" "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217.png"
new file mode 100644
index 0000000..b600260
--- /dev/null
+++ "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217.png"
Binary files differ
diff --git a/src/api/dataManagement/data/verificationCertificate.ts b/src/api/dataManagement/data/verificationCertificate.ts
new file mode 100644
index 0000000..9ba5ab9
--- /dev/null
+++ b/src/api/dataManagement/data/verificationCertificate.ts
@@ -0,0 +1,51 @@
+// 检定证书分析相关接口
+import request from '@/api/index'
+
+// 基本信息
+export function getBaseInfo(data: object) {
+ return request({
+ url: '/data/certificate/amount',
+ method: 'post',
+ data
+ })
+}
+// 部门检校证书分析
+export function getDeptAnalysis(data: object) {
+ return request({
+ url: '/data/certificate/analysis',
+ method: 'post',
+ data
+ })
+}
+// 检校类别分析
+export function getCategoryAnalysis(data: object) {
+ return request({
+ url: '/data/certificate/category',
+ method: 'post',
+ data
+ })
+}
+// 部门检校证书比例
+export function getDeptRate(data: object) {
+ return request({
+ url: '/data/certificate/rate',
+ method: 'post',
+ data
+ })
+}
+// 检定人员排行榜
+export function getStaffRank(data: object) {
+ return request({
+ url: '/data/certificate/staff',
+ method: 'post',
+ data
+ })
+}
+// 无需出证书tab页:展示没有证书只有原始记录的设备列表
+export function getOnlyRecord(data: object) {
+ return request({
+ url: '/data/certificate/onlyRecord',
+ method: 'post',
+ data
+ })
+}
diff --git "a/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\345\217\212\346\227\266\347\216\207.png" "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\345\217\212\346\227\266\347\216\207.png"
new file mode 100644
index 0000000..25e6710
--- /dev/null
+++ "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\345\217\212\346\227\266\347\216\207.png"
Binary files differ
diff --git "a/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217.png" "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217.png"
new file mode 100644
index 0000000..b600260
--- /dev/null
+++ "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217.png"
Binary files differ
diff --git "a/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217\345\210\206\345\214\205\346\226\271.png" "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217\345\210\206\345\214\205\346\226\271.png"
new file mode 100644
index 0000000..cde39e6
--- /dev/null
+++ "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217\345\210\206\345\214\205\346\226\271.png"
Binary files differ
diff --git a/src/api/dataManagement/data/verificationCertificate.ts b/src/api/dataManagement/data/verificationCertificate.ts
new file mode 100644
index 0000000..9ba5ab9
--- /dev/null
+++ b/src/api/dataManagement/data/verificationCertificate.ts
@@ -0,0 +1,51 @@
+// 检定证书分析相关接口
+import request from '@/api/index'
+
+// 基本信息
+export function getBaseInfo(data: object) {
+ return request({
+ url: '/data/certificate/amount',
+ method: 'post',
+ data
+ })
+}
+// 部门检校证书分析
+export function getDeptAnalysis(data: object) {
+ return request({
+ url: '/data/certificate/analysis',
+ method: 'post',
+ data
+ })
+}
+// 检校类别分析
+export function getCategoryAnalysis(data: object) {
+ return request({
+ url: '/data/certificate/category',
+ method: 'post',
+ data
+ })
+}
+// 部门检校证书比例
+export function getDeptRate(data: object) {
+ return request({
+ url: '/data/certificate/rate',
+ method: 'post',
+ data
+ })
+}
+// 检定人员排行榜
+export function getStaffRank(data: object) {
+ return request({
+ url: '/data/certificate/staff',
+ method: 'post',
+ data
+ })
+}
+// 无需出证书tab页:展示没有证书只有原始记录的设备列表
+export function getOnlyRecord(data: object) {
+ return request({
+ url: '/data/certificate/onlyRecord',
+ method: 'post',
+ data
+ })
+}
diff --git "a/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\345\217\212\346\227\266\347\216\207.png" "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\345\217\212\346\227\266\347\216\207.png"
new file mode 100644
index 0000000..25e6710
--- /dev/null
+++ "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\345\217\212\346\227\266\347\216\207.png"
Binary files differ
diff --git "a/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217.png" "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217.png"
new file mode 100644
index 0000000..b600260
--- /dev/null
+++ "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217.png"
Binary files differ
diff --git "a/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217\345\210\206\345\214\205\346\226\271.png" "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217\345\210\206\345\214\205\346\226\271.png"
new file mode 100644
index 0000000..cde39e6
--- /dev/null
+++ "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217\345\210\206\345\214\205\346\226\271.png"
Binary files differ
diff --git "a/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\350\257\201\344\271\246\345\267\256\351\224\231\347\216\207.png" "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\350\257\201\344\271\246\345\267\256\351\224\231\347\216\207.png"
new file mode 100644
index 0000000..fe44ad9
--- /dev/null
+++ "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\350\257\201\344\271\246\345\267\256\351\224\231\347\216\207.png"
Binary files differ
diff --git a/src/api/dataManagement/data/verificationCertificate.ts b/src/api/dataManagement/data/verificationCertificate.ts
new file mode 100644
index 0000000..9ba5ab9
--- /dev/null
+++ b/src/api/dataManagement/data/verificationCertificate.ts
@@ -0,0 +1,51 @@
+// 检定证书分析相关接口
+import request from '@/api/index'
+
+// 基本信息
+export function getBaseInfo(data: object) {
+ return request({
+ url: '/data/certificate/amount',
+ method: 'post',
+ data
+ })
+}
+// 部门检校证书分析
+export function getDeptAnalysis(data: object) {
+ return request({
+ url: '/data/certificate/analysis',
+ method: 'post',
+ data
+ })
+}
+// 检校类别分析
+export function getCategoryAnalysis(data: object) {
+ return request({
+ url: '/data/certificate/category',
+ method: 'post',
+ data
+ })
+}
+// 部门检校证书比例
+export function getDeptRate(data: object) {
+ return request({
+ url: '/data/certificate/rate',
+ method: 'post',
+ data
+ })
+}
+// 检定人员排行榜
+export function getStaffRank(data: object) {
+ return request({
+ url: '/data/certificate/staff',
+ method: 'post',
+ data
+ })
+}
+// 无需出证书tab页:展示没有证书只有原始记录的设备列表
+export function getOnlyRecord(data: object) {
+ return request({
+ url: '/data/certificate/onlyRecord',
+ method: 'post',
+ data
+ })
+}
diff --git "a/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\345\217\212\346\227\266\347\216\207.png" "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\345\217\212\346\227\266\347\216\207.png"
new file mode 100644
index 0000000..25e6710
--- /dev/null
+++ "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\345\217\212\346\227\266\347\216\207.png"
Binary files differ
diff --git "a/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217.png" "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217.png"
new file mode 100644
index 0000000..b600260
--- /dev/null
+++ "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217.png"
Binary files differ
diff --git "a/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217\345\210\206\345\214\205\346\226\271.png" "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217\345\210\206\345\214\205\346\226\271.png"
new file mode 100644
index 0000000..cde39e6
--- /dev/null
+++ "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217\345\210\206\345\214\205\346\226\271.png"
Binary files differ
diff --git "a/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\350\257\201\344\271\246\345\267\256\351\224\231\347\216\207.png" "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\350\257\201\344\271\246\345\267\256\351\224\231\347\216\207.png"
new file mode 100644
index 0000000..fe44ad9
--- /dev/null
+++ "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\350\257\201\344\271\246\345\267\256\351\224\231\347\216\207.png"
Binary files differ
diff --git a/src/components/Echart/BarChartHorizontal.vue b/src/components/Echart/BarChartHorizontal.vue
index 6b785ab..038d800 100644
--- a/src/components/Echart/BarChartHorizontal.vue
+++ b/src/components/Echart/BarChartHorizontal.vue
@@ -381,7 +381,7 @@
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
itemStyle: {
- color: props.color,
+ color: item.color || props.color,
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
data: item.data,
diff --git a/src/api/dataManagement/data/verificationCertificate.ts b/src/api/dataManagement/data/verificationCertificate.ts
new file mode 100644
index 0000000..9ba5ab9
--- /dev/null
+++ b/src/api/dataManagement/data/verificationCertificate.ts
@@ -0,0 +1,51 @@
+// 检定证书分析相关接口
+import request from '@/api/index'
+
+// 基本信息
+export function getBaseInfo(data: object) {
+ return request({
+ url: '/data/certificate/amount',
+ method: 'post',
+ data
+ })
+}
+// 部门检校证书分析
+export function getDeptAnalysis(data: object) {
+ return request({
+ url: '/data/certificate/analysis',
+ method: 'post',
+ data
+ })
+}
+// 检校类别分析
+export function getCategoryAnalysis(data: object) {
+ return request({
+ url: '/data/certificate/category',
+ method: 'post',
+ data
+ })
+}
+// 部门检校证书比例
+export function getDeptRate(data: object) {
+ return request({
+ url: '/data/certificate/rate',
+ method: 'post',
+ data
+ })
+}
+// 检定人员排行榜
+export function getStaffRank(data: object) {
+ return request({
+ url: '/data/certificate/staff',
+ method: 'post',
+ data
+ })
+}
+// 无需出证书tab页:展示没有证书只有原始记录的设备列表
+export function getOnlyRecord(data: object) {
+ return request({
+ url: '/data/certificate/onlyRecord',
+ method: 'post',
+ data
+ })
+}
diff --git "a/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\345\217\212\346\227\266\347\216\207.png" "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\345\217\212\346\227\266\347\216\207.png"
new file mode 100644
index 0000000..25e6710
--- /dev/null
+++ "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\345\217\212\346\227\266\347\216\207.png"
Binary files differ
diff --git "a/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217.png" "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217.png"
new file mode 100644
index 0000000..b600260
--- /dev/null
+++ "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217.png"
Binary files differ
diff --git "a/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217\345\210\206\345\214\205\346\226\271.png" "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217\345\210\206\345\214\205\346\226\271.png"
new file mode 100644
index 0000000..cde39e6
--- /dev/null
+++ "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217\345\210\206\345\214\205\346\226\271.png"
Binary files differ
diff --git "a/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\350\257\201\344\271\246\345\267\256\351\224\231\347\216\207.png" "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\350\257\201\344\271\246\345\267\256\351\224\231\347\216\207.png"
new file mode 100644
index 0000000..fe44ad9
--- /dev/null
+++ "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\350\257\201\344\271\246\345\267\256\351\224\231\347\216\207.png"
Binary files differ
diff --git a/src/components/Echart/BarChartHorizontal.vue b/src/components/Echart/BarChartHorizontal.vue
index 6b785ab..038d800 100644
--- a/src/components/Echart/BarChartHorizontal.vue
+++ b/src/components/Echart/BarChartHorizontal.vue
@@ -381,7 +381,7 @@
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
itemStyle: {
- color: props.color,
+ color: item.color || props.color,
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
data: item.data,
diff --git a/src/views/dataManagement/components/data/eqptDevice.vue b/src/views/dataManagement/components/data/eqptDevice.vue
index 6f963b1..1f1d01c 100644
--- a/src/views/dataManagement/components/data/eqptDevice.vue
+++ b/src/views/dataManagement/components/data/eqptDevice.vue
@@ -464,15 +464,15 @@
searchQueryResult.value.timeEnd = `${timeDate.value[0]} 23:59:59`
} else {
searchQueryResult.value.timeStart = `${timeDate.value[0]} 00:00:00`
- searchQueryResult.value.timeEnd = `${timeDate.value[1]} 23:59:59`
+ searchQueryResult.value.timeEnd = `${timeDate.value[timeDate.value.length - 1]} 23:59:59`
}
} else {
searchQueryResult.value.timeStart = `${selectCurrentTime.value[0]} 00:00:00`
searchQueryResult.value.timeEnd = `${selectCurrentTime.value[1]} 23:59:59`
console.log(selectCurrentTime.value, 'selectCurrentTime.value')
}
- searchQueryResult.value.timeStart = `2024-01-01 00:00:00`
- searchQueryResult.value.timeEnd = `2024-12-31 23:59:59`
+ // searchQueryResult.value.timeStart = `2024-01-01 00:00:00`
+ // searchQueryResult.value.timeEnd = `2024-12-31 23:59:59`
// 获取基础数据
getBaseInfo(searchQueryResult.value).then(res => {
baseInfo.value.forEach(item => {
@@ -529,9 +529,7 @@
limit: 9999
}).then(res => {
console.log(res.data, '受检设备性能趋势')
- const current = showChart.value.filter(
- item => item.name === '受检设备性能趋势'
- )[0]
+ const current = showChart.value.filter(item => item.name === '受检设备性能趋势')[0]
current.data = res.data.rows.map((item: any, index: number) => ({
...item,
index: index + 1
@@ -731,8 +729,7 @@
+ format="YYYY-MM-DD" value-format="YYYY-MM-DD" @focus="handlerFocus" @blur="handlerBlur" />
diff --git a/src/api/dataManagement/data/verificationCertificate.ts b/src/api/dataManagement/data/verificationCertificate.ts
new file mode 100644
index 0000000..9ba5ab9
--- /dev/null
+++ b/src/api/dataManagement/data/verificationCertificate.ts
@@ -0,0 +1,51 @@
+// 检定证书分析相关接口
+import request from '@/api/index'
+
+// 基本信息
+export function getBaseInfo(data: object) {
+ return request({
+ url: '/data/certificate/amount',
+ method: 'post',
+ data
+ })
+}
+// 部门检校证书分析
+export function getDeptAnalysis(data: object) {
+ return request({
+ url: '/data/certificate/analysis',
+ method: 'post',
+ data
+ })
+}
+// 检校类别分析
+export function getCategoryAnalysis(data: object) {
+ return request({
+ url: '/data/certificate/category',
+ method: 'post',
+ data
+ })
+}
+// 部门检校证书比例
+export function getDeptRate(data: object) {
+ return request({
+ url: '/data/certificate/rate',
+ method: 'post',
+ data
+ })
+}
+// 检定人员排行榜
+export function getStaffRank(data: object) {
+ return request({
+ url: '/data/certificate/staff',
+ method: 'post',
+ data
+ })
+}
+// 无需出证书tab页:展示没有证书只有原始记录的设备列表
+export function getOnlyRecord(data: object) {
+ return request({
+ url: '/data/certificate/onlyRecord',
+ method: 'post',
+ data
+ })
+}
diff --git "a/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\345\217\212\346\227\266\347\216\207.png" "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\345\217\212\346\227\266\347\216\207.png"
new file mode 100644
index 0000000..25e6710
--- /dev/null
+++ "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\345\217\212\346\227\266\347\216\207.png"
Binary files differ
diff --git "a/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217.png" "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217.png"
new file mode 100644
index 0000000..b600260
--- /dev/null
+++ "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217.png"
Binary files differ
diff --git "a/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217\345\210\206\345\214\205\346\226\271.png" "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217\345\210\206\345\214\205\346\226\271.png"
new file mode 100644
index 0000000..cde39e6
--- /dev/null
+++ "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217\345\210\206\345\214\205\346\226\271.png"
Binary files differ
diff --git "a/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\350\257\201\344\271\246\345\267\256\351\224\231\347\216\207.png" "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\350\257\201\344\271\246\345\267\256\351\224\231\347\216\207.png"
new file mode 100644
index 0000000..fe44ad9
--- /dev/null
+++ "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\350\257\201\344\271\246\345\267\256\351\224\231\347\216\207.png"
Binary files differ
diff --git a/src/components/Echart/BarChartHorizontal.vue b/src/components/Echart/BarChartHorizontal.vue
index 6b785ab..038d800 100644
--- a/src/components/Echart/BarChartHorizontal.vue
+++ b/src/components/Echart/BarChartHorizontal.vue
@@ -381,7 +381,7 @@
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
itemStyle: {
- color: props.color,
+ color: item.color || props.color,
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
data: item.data,
diff --git a/src/views/dataManagement/components/data/eqptDevice.vue b/src/views/dataManagement/components/data/eqptDevice.vue
index 6f963b1..1f1d01c 100644
--- a/src/views/dataManagement/components/data/eqptDevice.vue
+++ b/src/views/dataManagement/components/data/eqptDevice.vue
@@ -464,15 +464,15 @@
searchQueryResult.value.timeEnd = `${timeDate.value[0]} 23:59:59`
} else {
searchQueryResult.value.timeStart = `${timeDate.value[0]} 00:00:00`
- searchQueryResult.value.timeEnd = `${timeDate.value[1]} 23:59:59`
+ searchQueryResult.value.timeEnd = `${timeDate.value[timeDate.value.length - 1]} 23:59:59`
}
} else {
searchQueryResult.value.timeStart = `${selectCurrentTime.value[0]} 00:00:00`
searchQueryResult.value.timeEnd = `${selectCurrentTime.value[1]} 23:59:59`
console.log(selectCurrentTime.value, 'selectCurrentTime.value')
}
- searchQueryResult.value.timeStart = `2024-01-01 00:00:00`
- searchQueryResult.value.timeEnd = `2024-12-31 23:59:59`
+ // searchQueryResult.value.timeStart = `2024-01-01 00:00:00`
+ // searchQueryResult.value.timeEnd = `2024-12-31 23:59:59`
// 获取基础数据
getBaseInfo(searchQueryResult.value).then(res => {
baseInfo.value.forEach(item => {
@@ -529,9 +529,7 @@
limit: 9999
}).then(res => {
console.log(res.data, '受检设备性能趋势')
- const current = showChart.value.filter(
- item => item.name === '受检设备性能趋势'
- )[0]
+ const current = showChart.value.filter(item => item.name === '受检设备性能趋势')[0]
current.data = res.data.rows.map((item: any, index: number) => ({
...item,
index: index + 1
@@ -731,8 +729,7 @@
+ format="YYYY-MM-DD" value-format="YYYY-MM-DD" @focus="handlerFocus" @blur="handlerBlur" />
diff --git a/src/views/dataManagement/components/data/img.ts b/src/views/dataManagement/components/data/img.ts
index bceb2f7..8fba081 100644
--- a/src/views/dataManagement/components/data/img.ts
+++ b/src/views/dataManagement/components/data/img.ts
@@ -30,6 +30,10 @@
import recordAmount from '@/assets/images/dataManagement/standardDevice/标准装置分析-核查记录总数.png'
import yearRecordAmount from '@/assets/images/dataManagement/standardDevice/标准装置分析-核查记录总数本年度.png'
import quarterRecordAmount from '@/assets/images/dataManagement/standardDevice/标准装置分析-核查记录总数本季度.png'
+import certificateAmount from '@/assets/images/dataManagement/verificationCertificate/检定证书分析-检定证书总量.png'
+import outCertificateAmount from '@/assets/images/dataManagement/verificationCertificate/检定证书分析-检定证书总量分包方.png'
+import timelyRate from '@/assets/images/dataManagement/verificationCertificate/检定证书分析-检定及时率.png'
+import errorRate from '@/assets/images/dataManagement/verificationCertificate/检定证书分析-证书差错率.png'
export const resourceManage = {
人员总数: staffAmount,
体系文件总数: systemFileAmount,
@@ -80,3 +84,10 @@
'核查记录总数(本年度)': yearRecordAmount,
'核查记录总数(本季度)': quarterRecordAmount,
}
+
+export const verificationCertificate = {
+ 检定证书总量: certificateAmount,
+ '检定证书总量(分包方)': outCertificateAmount,
+ 检定及时率: timelyRate,
+ 证书差错率: errorRate,
+}
diff --git a/src/api/dataManagement/data/verificationCertificate.ts b/src/api/dataManagement/data/verificationCertificate.ts
new file mode 100644
index 0000000..9ba5ab9
--- /dev/null
+++ b/src/api/dataManagement/data/verificationCertificate.ts
@@ -0,0 +1,51 @@
+// 检定证书分析相关接口
+import request from '@/api/index'
+
+// 基本信息
+export function getBaseInfo(data: object) {
+ return request({
+ url: '/data/certificate/amount',
+ method: 'post',
+ data
+ })
+}
+// 部门检校证书分析
+export function getDeptAnalysis(data: object) {
+ return request({
+ url: '/data/certificate/analysis',
+ method: 'post',
+ data
+ })
+}
+// 检校类别分析
+export function getCategoryAnalysis(data: object) {
+ return request({
+ url: '/data/certificate/category',
+ method: 'post',
+ data
+ })
+}
+// 部门检校证书比例
+export function getDeptRate(data: object) {
+ return request({
+ url: '/data/certificate/rate',
+ method: 'post',
+ data
+ })
+}
+// 检定人员排行榜
+export function getStaffRank(data: object) {
+ return request({
+ url: '/data/certificate/staff',
+ method: 'post',
+ data
+ })
+}
+// 无需出证书tab页:展示没有证书只有原始记录的设备列表
+export function getOnlyRecord(data: object) {
+ return request({
+ url: '/data/certificate/onlyRecord',
+ method: 'post',
+ data
+ })
+}
diff --git "a/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\345\217\212\346\227\266\347\216\207.png" "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\345\217\212\346\227\266\347\216\207.png"
new file mode 100644
index 0000000..25e6710
--- /dev/null
+++ "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\345\217\212\346\227\266\347\216\207.png"
Binary files differ
diff --git "a/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217.png" "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217.png"
new file mode 100644
index 0000000..b600260
--- /dev/null
+++ "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217.png"
Binary files differ
diff --git "a/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217\345\210\206\345\214\205\346\226\271.png" "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217\345\210\206\345\214\205\346\226\271.png"
new file mode 100644
index 0000000..cde39e6
--- /dev/null
+++ "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217\345\210\206\345\214\205\346\226\271.png"
Binary files differ
diff --git "a/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\350\257\201\344\271\246\345\267\256\351\224\231\347\216\207.png" "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\350\257\201\344\271\246\345\267\256\351\224\231\347\216\207.png"
new file mode 100644
index 0000000..fe44ad9
--- /dev/null
+++ "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\350\257\201\344\271\246\345\267\256\351\224\231\347\216\207.png"
Binary files differ
diff --git a/src/components/Echart/BarChartHorizontal.vue b/src/components/Echart/BarChartHorizontal.vue
index 6b785ab..038d800 100644
--- a/src/components/Echart/BarChartHorizontal.vue
+++ b/src/components/Echart/BarChartHorizontal.vue
@@ -381,7 +381,7 @@
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
itemStyle: {
- color: props.color,
+ color: item.color || props.color,
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
data: item.data,
diff --git a/src/views/dataManagement/components/data/eqptDevice.vue b/src/views/dataManagement/components/data/eqptDevice.vue
index 6f963b1..1f1d01c 100644
--- a/src/views/dataManagement/components/data/eqptDevice.vue
+++ b/src/views/dataManagement/components/data/eqptDevice.vue
@@ -464,15 +464,15 @@
searchQueryResult.value.timeEnd = `${timeDate.value[0]} 23:59:59`
} else {
searchQueryResult.value.timeStart = `${timeDate.value[0]} 00:00:00`
- searchQueryResult.value.timeEnd = `${timeDate.value[1]} 23:59:59`
+ searchQueryResult.value.timeEnd = `${timeDate.value[timeDate.value.length - 1]} 23:59:59`
}
} else {
searchQueryResult.value.timeStart = `${selectCurrentTime.value[0]} 00:00:00`
searchQueryResult.value.timeEnd = `${selectCurrentTime.value[1]} 23:59:59`
console.log(selectCurrentTime.value, 'selectCurrentTime.value')
}
- searchQueryResult.value.timeStart = `2024-01-01 00:00:00`
- searchQueryResult.value.timeEnd = `2024-12-31 23:59:59`
+ // searchQueryResult.value.timeStart = `2024-01-01 00:00:00`
+ // searchQueryResult.value.timeEnd = `2024-12-31 23:59:59`
// 获取基础数据
getBaseInfo(searchQueryResult.value).then(res => {
baseInfo.value.forEach(item => {
@@ -529,9 +529,7 @@
limit: 9999
}).then(res => {
console.log(res.data, '受检设备性能趋势')
- const current = showChart.value.filter(
- item => item.name === '受检设备性能趋势'
- )[0]
+ const current = showChart.value.filter(item => item.name === '受检设备性能趋势')[0]
current.data = res.data.rows.map((item: any, index: number) => ({
...item,
index: index + 1
@@ -731,8 +729,7 @@
+ format="YYYY-MM-DD" value-format="YYYY-MM-DD" @focus="handlerFocus" @blur="handlerBlur" />
diff --git a/src/views/dataManagement/components/data/img.ts b/src/views/dataManagement/components/data/img.ts
index bceb2f7..8fba081 100644
--- a/src/views/dataManagement/components/data/img.ts
+++ b/src/views/dataManagement/components/data/img.ts
@@ -30,6 +30,10 @@
import recordAmount from '@/assets/images/dataManagement/standardDevice/标准装置分析-核查记录总数.png'
import yearRecordAmount from '@/assets/images/dataManagement/standardDevice/标准装置分析-核查记录总数本年度.png'
import quarterRecordAmount from '@/assets/images/dataManagement/standardDevice/标准装置分析-核查记录总数本季度.png'
+import certificateAmount from '@/assets/images/dataManagement/verificationCertificate/检定证书分析-检定证书总量.png'
+import outCertificateAmount from '@/assets/images/dataManagement/verificationCertificate/检定证书分析-检定证书总量分包方.png'
+import timelyRate from '@/assets/images/dataManagement/verificationCertificate/检定证书分析-检定及时率.png'
+import errorRate from '@/assets/images/dataManagement/verificationCertificate/检定证书分析-证书差错率.png'
export const resourceManage = {
人员总数: staffAmount,
体系文件总数: systemFileAmount,
@@ -80,3 +84,10 @@
'核查记录总数(本年度)': yearRecordAmount,
'核查记录总数(本季度)': quarterRecordAmount,
}
+
+export const verificationCertificate = {
+ 检定证书总量: certificateAmount,
+ '检定证书总量(分包方)': outCertificateAmount,
+ 检定及时率: timelyRate,
+ 证书差错率: errorRate,
+}
diff --git a/src/views/dataManagement/components/data/standardDevice.vue b/src/views/dataManagement/components/data/standardDevice.vue
index c0c4c1f..62b94ed 100644
--- a/src/views/dataManagement/components/data/standardDevice.vue
+++ b/src/views/dataManagement/components/data/standardDevice.vue
@@ -324,13 +324,7 @@
ghost-class="ghostClass" chosen-class="chosenClass" @end="onEnd">
+ width: `${showChart.length === 4 ? '48%': index === 0 || index === 1 ? '48%': '31.5%'}`}" class="chart-item">
@@ -410,7 +404,7 @@
left: '0',
top: '10'
}" />
-
diff --git a/src/api/dataManagement/data/verificationCertificate.ts b/src/api/dataManagement/data/verificationCertificate.ts
new file mode 100644
index 0000000..9ba5ab9
--- /dev/null
+++ b/src/api/dataManagement/data/verificationCertificate.ts
@@ -0,0 +1,51 @@
+// 检定证书分析相关接口
+import request from '@/api/index'
+
+// 基本信息
+export function getBaseInfo(data: object) {
+ return request({
+ url: '/data/certificate/amount',
+ method: 'post',
+ data
+ })
+}
+// 部门检校证书分析
+export function getDeptAnalysis(data: object) {
+ return request({
+ url: '/data/certificate/analysis',
+ method: 'post',
+ data
+ })
+}
+// 检校类别分析
+export function getCategoryAnalysis(data: object) {
+ return request({
+ url: '/data/certificate/category',
+ method: 'post',
+ data
+ })
+}
+// 部门检校证书比例
+export function getDeptRate(data: object) {
+ return request({
+ url: '/data/certificate/rate',
+ method: 'post',
+ data
+ })
+}
+// 检定人员排行榜
+export function getStaffRank(data: object) {
+ return request({
+ url: '/data/certificate/staff',
+ method: 'post',
+ data
+ })
+}
+// 无需出证书tab页:展示没有证书只有原始记录的设备列表
+export function getOnlyRecord(data: object) {
+ return request({
+ url: '/data/certificate/onlyRecord',
+ method: 'post',
+ data
+ })
+}
diff --git "a/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\345\217\212\346\227\266\347\216\207.png" "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\345\217\212\346\227\266\347\216\207.png"
new file mode 100644
index 0000000..25e6710
--- /dev/null
+++ "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\345\217\212\346\227\266\347\216\207.png"
Binary files differ
diff --git "a/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217.png" "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217.png"
new file mode 100644
index 0000000..b600260
--- /dev/null
+++ "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217.png"
Binary files differ
diff --git "a/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217\345\210\206\345\214\205\346\226\271.png" "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217\345\210\206\345\214\205\346\226\271.png"
new file mode 100644
index 0000000..cde39e6
--- /dev/null
+++ "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\346\243\200\345\256\232\350\257\201\344\271\246\346\200\273\351\207\217\345\210\206\345\214\205\346\226\271.png"
Binary files differ
diff --git "a/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\350\257\201\344\271\246\345\267\256\351\224\231\347\216\207.png" "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\350\257\201\344\271\246\345\267\256\351\224\231\347\216\207.png"
new file mode 100644
index 0000000..fe44ad9
--- /dev/null
+++ "b/src/assets/images/dataManagement/verificationCertificate/\346\243\200\345\256\232\350\257\201\344\271\246\345\210\206\346\236\220-\350\257\201\344\271\246\345\267\256\351\224\231\347\216\207.png"
Binary files differ
diff --git a/src/components/Echart/BarChartHorizontal.vue b/src/components/Echart/BarChartHorizontal.vue
index 6b785ab..038d800 100644
--- a/src/components/Echart/BarChartHorizontal.vue
+++ b/src/components/Echart/BarChartHorizontal.vue
@@ -381,7 +381,7 @@
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
itemStyle: {
- color: props.color,
+ color: item.color || props.color,
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
data: item.data,
diff --git a/src/views/dataManagement/components/data/eqptDevice.vue b/src/views/dataManagement/components/data/eqptDevice.vue
index 6f963b1..1f1d01c 100644
--- a/src/views/dataManagement/components/data/eqptDevice.vue
+++ b/src/views/dataManagement/components/data/eqptDevice.vue
@@ -464,15 +464,15 @@
searchQueryResult.value.timeEnd = `${timeDate.value[0]} 23:59:59`
} else {
searchQueryResult.value.timeStart = `${timeDate.value[0]} 00:00:00`
- searchQueryResult.value.timeEnd = `${timeDate.value[1]} 23:59:59`
+ searchQueryResult.value.timeEnd = `${timeDate.value[timeDate.value.length - 1]} 23:59:59`
}
} else {
searchQueryResult.value.timeStart = `${selectCurrentTime.value[0]} 00:00:00`
searchQueryResult.value.timeEnd = `${selectCurrentTime.value[1]} 23:59:59`
console.log(selectCurrentTime.value, 'selectCurrentTime.value')
}
- searchQueryResult.value.timeStart = `2024-01-01 00:00:00`
- searchQueryResult.value.timeEnd = `2024-12-31 23:59:59`
+ // searchQueryResult.value.timeStart = `2024-01-01 00:00:00`
+ // searchQueryResult.value.timeEnd = `2024-12-31 23:59:59`
// 获取基础数据
getBaseInfo(searchQueryResult.value).then(res => {
baseInfo.value.forEach(item => {
@@ -529,9 +529,7 @@
limit: 9999
}).then(res => {
console.log(res.data, '受检设备性能趋势')
- const current = showChart.value.filter(
- item => item.name === '受检设备性能趋势'
- )[0]
+ const current = showChart.value.filter(item => item.name === '受检设备性能趋势')[0]
current.data = res.data.rows.map((item: any, index: number) => ({
...item,
index: index + 1
@@ -731,8 +729,7 @@
+ format="YYYY-MM-DD" value-format="YYYY-MM-DD" @focus="handlerFocus" @blur="handlerBlur" />
diff --git a/src/views/dataManagement/components/data/img.ts b/src/views/dataManagement/components/data/img.ts
index bceb2f7..8fba081 100644
--- a/src/views/dataManagement/components/data/img.ts
+++ b/src/views/dataManagement/components/data/img.ts
@@ -30,6 +30,10 @@
import recordAmount from '@/assets/images/dataManagement/standardDevice/标准装置分析-核查记录总数.png'
import yearRecordAmount from '@/assets/images/dataManagement/standardDevice/标准装置分析-核查记录总数本年度.png'
import quarterRecordAmount from '@/assets/images/dataManagement/standardDevice/标准装置分析-核查记录总数本季度.png'
+import certificateAmount from '@/assets/images/dataManagement/verificationCertificate/检定证书分析-检定证书总量.png'
+import outCertificateAmount from '@/assets/images/dataManagement/verificationCertificate/检定证书分析-检定证书总量分包方.png'
+import timelyRate from '@/assets/images/dataManagement/verificationCertificate/检定证书分析-检定及时率.png'
+import errorRate from '@/assets/images/dataManagement/verificationCertificate/检定证书分析-证书差错率.png'
export const resourceManage = {
人员总数: staffAmount,
体系文件总数: systemFileAmount,
@@ -80,3 +84,10 @@
'核查记录总数(本年度)': yearRecordAmount,
'核查记录总数(本季度)': quarterRecordAmount,
}
+
+export const verificationCertificate = {
+ 检定证书总量: certificateAmount,
+ '检定证书总量(分包方)': outCertificateAmount,
+ 检定及时率: timelyRate,
+ 证书差错率: errorRate,
+}
diff --git a/src/views/dataManagement/components/data/standardDevice.vue b/src/views/dataManagement/components/data/standardDevice.vue
index c0c4c1f..62b94ed 100644
--- a/src/views/dataManagement/components/data/standardDevice.vue
+++ b/src/views/dataManagement/components/data/standardDevice.vue
@@ -324,13 +324,7 @@
ghost-class="ghostClass" chosen-class="chosenClass" @end="onEnd">
+ width: `${showChart.length === 4 ? '48%': index === 0 || index === 1 ? '48%': '31.5%'}`}" class="chart-item">
@@ -410,7 +404,7 @@
left: '0',
top: '10'
}" />
-
diff --git a/src/views/dataManagement/components/data/verificationCertificate.vue b/src/views/dataManagement/components/data/verificationCertificate.vue
index a314cd8..b7f4b70 100644
--- a/src/views/dataManagement/components/data/verificationCertificate.vue
+++ b/src/views/dataManagement/components/data/verificationCertificate.vue
@@ -4,6 +4,8 @@
import draggable from 'vuedraggable'
import { colors } from '../environment/colors'
import { getRangeAllTime } from '@/utils/date'
+import { verificationCertificate } from './img'
+import { getBaseInfo, getStaffRank, getCategoryAnalysis, getDeptRate, getDeptAnalysis, getOnlyRecord } from '@/api/dataManagement/data/verificationCertificate'
const props = defineProps({
lab: {
type: String,
@@ -16,33 +18,52 @@
setTimeout(() => {
current.value = '近7日'
})
+const searchQueryResult = ref({
+ labCode: '',
+ timeStart: '',
+ timeEnd: '',
+ contentType: '1'
+})
const selectCurrentTime = ref()
const menu = ref(['当日', '近7日', '近14天', '自定义时间'])
// 时间筛选条件
-const startTime = ref()
-const calendarChange = (e: any) => {
- startTime.value = e[0].getTime()
-}
-const pickerOptions = (time: any) => {
- if (startTime.value) {
- const timeRange = 1 * 24 * 60 * 60 * 1000 // 1天时间戳
- const minTime = startTime.value - timeRange * 2
- const maxTime = startTime.value + timeRange * 15
- return time.getTime() <= minTime || time.getTime() >= maxTime || time.getTime() === startTime.value
- }
- else {
- return false
- }
-}
+// const startTime = ref()
+// const calendarChange = (e: any) => {
+// startTime.value = e[0].getTime()
+// }
+// const pickerOptions = (time: any) => {
+// if (startTime.value) {
+// const timeRange = 1 * 24 * 60 * 60 * 1000 // 1天时间戳
+// const minTime = startTime.value - timeRange * 2
+// const maxTime = startTime.value + timeRange * 15
+// return time.getTime() <= minTime || time.getTime() >= maxTime || time.getTime() === startTime.value
+// }
+// else {
+// return false
+// }
+// }
// 点击自定义时间
-const clickBtn = (event: any) => {
- const select = event.target.value
- if (select && select === '自定义时间') {
- dateRef.value.focus()
- }
- else if (select && select !== '自定义时间') {
- selectCurrentTime.value = []
- startTime.value = ''
+// const clickBtn = (event: any) => {
+// const select = event.target.value
+// if (select && select === '自定义时间') {
+// dateRef.value.focus()
+// }
+// else if (select && select !== '自定义时间') {
+// selectCurrentTime.value = []
+// startTime.value = ''
+// }
+// }
+const currentBak = ref('')
+const handlerFocus = () => {
+ console.log('获取焦点')
+ // 记录之前
+ currentBak.value = current.value
+ current.value = '自定义时间'
+}
+const handlerBlur = () => {
+ console.log('失去焦点')
+ if (!selectCurrentTime.value.length) {
+ current.value = currentBak.value || '近7日'
}
}
const timeDate = ref([])
@@ -50,27 +71,92 @@
if (newVal) {
if (newVal === '当日') {
timeDate.value = [dayjs().format('YYYY-MM-DD')]
+ } else if (newVal === '近7日') {
+ timeDate.value = getRangeAllTime(
+ dayjs().subtract(7, 'day').format('YYYY-MM-DD'),
+ dayjs().format('YYYY-MM-DD')
+ )
+ } else if (newVal === '近14天') {
+ timeDate.value = getRangeAllTime(
+ dayjs().subtract(14, 'day').format('YYYY-MM-DD'),
+ dayjs().format('YYYY-MM-DD')
+ )
}
- else if (newVal === '近7日') {
- timeDate.value = getRangeAllTime(dayjs().subtract(7, 'day').format('YYYY-MM-DD'), dayjs().format('YYYY-MM-DD'))
+ if (!newVal.includes('自定义')) {
+ searchQueryResult.value.labCode = props.lab
+ fetchData()
+ selectCurrentTime.value = []
}
- else if (newVal === '近14天') {
- timeDate.value = getRangeAllTime(dayjs().subtract(14, 'day').format('YYYY-MM-DD'), dayjs().format('YYYY-MM-DD'))
- }
- fetchData()
}
})
-watch(() => selectCurrentTime.value, (newVal) => {
+watch(() => selectCurrentTime.value, newVal => {
if (newVal.length === 2) {
+ console.log('确定时间')
timeDate.value = getRangeAllTime(newVal[0], newVal[1])
fetchData()
}
})
watch(() => props.lab, (newVal) => {
if (newVal) {
- fetchData()
+ searchQueryResult.value.labCode = props.lab
+ setTimeout(() => {
+ fetchData()
+ })
}
})
+watch(() => searchQueryResult.value.contentType, (newVal) => {
+ if (!newVal) { return }
+ console.log(newVal, 'newVal')
+ if (newVal !== '3') {
+ showChartBase.value = showChart.value
+ // 修改基本信息
+ baseInfo.value = baseInfo.value.map((item: any) => ({
+ ...item,
+ name: newVal=== '1' && item.name.includes('原始记录') ? item.name.replace('原始记录', '检定证书') : newVal === '2' && item.name.includes('检定证书') ? item.name.replace('检定证书', '原始记录') : item.name
+ }))
+ // 修改标题
+ showChartBase.value = showChartBase.value.map((item: any) => ({
+ ...item,
+ name: newVal=== '1' && item.name.includes('原始记录') ? item.name.replace('原始记录', '检校证书') : newVal === '2' && item.name.includes('检校证书') ? item.name.replace('检校证书', '原始记录') : item.name
+ }))
+ }
+ else {
+ showChartBase.value = showChartNoNeed.value
+ }
+ fetchData()
+})
+// 基础信息展示数据
+const baseInfo = ref([
+ {
+ name: '检定证书总量',
+ value: 'certificateAmount',
+ data: '',
+ icon: verificationCertificate['检定证书总量'],
+ color: '#1AAF8B'
+ },
+ {
+ name: '检定证书总量(分包方)',
+ value: 'outCertificateAmount',
+ data: '',
+ icon: verificationCertificate['检定证书总量(分包方)'],
+ color: '#1AAF8B'
+ },
+ {
+ name: '检定及时率',
+ value: 'timelyRate',
+ data: '',
+ icon: verificationCertificate['检定及时率'],
+ color: '#02A7F0'
+ },
+ {
+ name: '证书差错率',
+ value: 'errorRate',
+ data: '',
+ icon: verificationCertificate['证书差错率'],
+ color: '#D9001B'
+ },
+])
+const showChartBase = ref([])
const showChart = ref([
{
name: '检校类别分析',
@@ -91,6 +177,7 @@
name: '部门检校证书分析',
type: 'bar-horizontal',
source: 'system',
+ gradient: false
},
{
name: '检定人员排行榜',
@@ -99,17 +186,17 @@
columns: [
{
text: '检定员',
- value: 'name',
+ value: 'staffName',
align: 'center',
},
{
text: '部门',
- value: 'dept',
+ value: 'groupCodeName',
align: 'center',
},
{
text: '检定证书数量',
- value: 'count',
+ value: 'certificateAmount',
align: 'center',
},
@@ -117,6 +204,57 @@
data: [],
},
])
+const showChartNoNeed = ref([
+{
+ name: '设备列表',
+ type: 'rank-table',
+ source: 'system',
+ columns: [
+ {
+ text: '设备名称',
+ value: 'equipmentName',
+ align: 'center',
+ },
+ {
+ text: '型号规格',
+ value: 'model',
+ align: 'center',
+ },
+ {
+ text: '辅助字段',
+ value: 'helpInstruction',
+ align: 'center',
+ },
+ {
+ text: '生产厂家',
+ value: 'manufacturer',
+ align: 'center',
+ },
+ {
+ text: '出厂编号',
+ value: 'manufactureNo',
+ align: 'center',
+ },
+ {
+ text: '负责人',
+ value: 'directorName',
+ align: 'center',
+ },
+ {
+ text: '检定机构',
+ value: 'checkOrganization',
+ align: 'center',
+ },
+ {
+ text: '证书有效期',
+ value: 'certificateValid',
+ align: 'center',
+ },
+ ],
+ data: [],
+ },
+])
+showChartBase.value = showChart.value
watch(() => showChart.value.length, () => {
setTimeout(() => {
const resize = new Event('resize')
@@ -126,45 +264,155 @@
// 模拟数据
const loading = ref(false)
function fetchData() {
- loading.value = true
- // 检校类别分析
- const name = ['检定', '校准', '测试', '校验']
- const name1 = ['合格', '不合格', '除*外合格']
- showChart.value.filter((item: any) => item.name === '检校类别分析')[0].data = name1.map((item, index) => ({
- name: item,
- stack: 'Ad',
- data: name.map(item => Math.floor(Math.random() * 100) + 1),
- color: colors[index],
- }))
- showChart.value.filter((item: any) => item.name === '检校类别分析')[0].xAxisData = name
- // 部门检校证书比例
- const name2 = ['电学电源组', '热工压力组', '无线脉冲组']
- showChart.value.filter((item: any) => item.name === '部门检校证书比例')[0].data = name2.map(item => ({
- name: item,
- value: Math.floor(Math.random() * 100) + 1,
- }))
- // 部门检校证书分析
- const name3 = ['检定', '校准', '测试', '校验']
- showChart.value.filter((item: any) => item.name === '部门检校证书分析')[0].xAxisData = name2
- showChart.value.filter((item: any) => item.name === '部门检校证书分析')[0].data = name3.map(item => ({
- name: item,
- data: name2.map(item => Math.floor(Math.random() * 100) + 1),
- }))
- // 检定人员排行榜
- const name4 = ['李响', '张超', '王立勇', '张浩', '孙子涵', '楚瑜', '张月月', '刘涵', '李渊', '王瑞']
- const name5 = ['电学电源组', '电学电源组', '热工压力组', '热工压力组', '热工压力组', '电学电源组', '无线脉冲组', '无线脉冲组', '电学电源组', '热工压力组']
- showChart.value.filter((item: any) => item.name === '检定人员排行榜')[0].data = name4.map((item, index) => ({
- name: item,
- count: Math.floor(Math.random() * 100) + 1,
- dept: name5[index],
- }))
- setTimeout(() => {
- loading.value = false
- }, 3000)
+ if (current.value !== '自定义时间') {
+ // console.log(timeDate.value, 'timeDate')
+ if (current.value === '当日') {
+ searchQueryResult.value.timeStart = `${timeDate.value[0]} 00:00:00`
+ searchQueryResult.value.timeEnd = `${timeDate.value[0]} 23:59:59`
+ } else {
+ searchQueryResult.value.timeStart = `${timeDate.value[0]} 00:00:00`
+ searchQueryResult.value.timeEnd = `${timeDate.value[timeDate.value.length - 1]} 23:59:59`
+ }
+ } else {
+ searchQueryResult.value.timeStart = `${selectCurrentTime.value[0]} 00:00:00`
+ searchQueryResult.value.timeEnd = `${selectCurrentTime.value[1]} 23:59:59`
+ // console.log(selectCurrentTime.value, 'selectCurrentTime.value')
+ }
+ // searchQueryResult.value.timeStart = `2024-01-01 00:00:00`
+ // searchQueryResult.value.timeEnd = `2024-12-31 23:59:59`
+ if (searchQueryResult.value.contentType !== '3') {
+ // 获取基础信息
+ getBaseInfo(searchQueryResult.value).then(res => {
+ baseInfo.value.forEach(item => {
+ item.data = res.data[item.value]
+ })
+ })
+ // 检定人员排行榜
+ getStaffRank(searchQueryResult.value).then(res => {
+ const current = showChart.value.filter(item => item.name === '检定人员排行榜')[0]
+ console.log(res.data, '检定人员排行榜')
+ current.data = res.data.rows
+ })
+ // 检校类别分析
+ getCategoryAnalysis(searchQueryResult.value).then(res => {
+ const current = showChart.value.filter(item => item.name === '检校类别分析')[0]
+ console.log(res.data, '检校类别分析')
+ current.xAxisData = res.data.map((item: any) => item.measureCategoryName)
+ const data = [
+ { name: '合格', value: 'qualifiedAmount' },
+ { name: '不合格', value: 'unqualifiedAmount' },
+ { name: '除*外合格', value: 'otherAmount' },
+ ]
+ current.data = data.map((item: any, index: number) => ({
+ name: item.name,
+ stack: 'Ad',
+ color: colors[index],
+ data: res.data.map((citem: any) => String(citem[data[index].value]))
+ // data: data.map(item => Math.floor(Math.random() * 100) + 1),
+ }))
+ })
+ // 部门检校证书比例
+ getDeptRate(searchQueryResult.value).then(res => {
+ console.log(res.data, '部门检校证书比例')
+ const current = showChart.value.filter(item => item.name === '部门检校证书比例' || item.name === '部门原始记录比例')[0]
+ const data = [
+ {
+ name: '电学电源组',
+ value: 'ddAmount',
+ data: ''
+ },
+ {
+ name: '热工压力组',
+ value: 'rlAmount',
+ data: ''
+ },
+ {
+ name: '无线电脉冲组',
+ value: 'wmAmount',
+ data: ''
+ }
+ ]
+ data.forEach(item => { item.data = res.data[item.value] })
+ current.data = data.map(item => ({ name: item.name, value: String(item.data) }))
+ })
+ // 部门检校证书分析
+ getDeptAnalysis(searchQueryResult.value).then(res => {
+ const current = showChart.value.filter(item => item.name === '部门检校证书分析' || item.name === '部门原始记录分析')[0]
+ console.log(res.data, '部门检校证书分析')
+ const data = [
+ {
+ name: '校准',
+ value: 'calibrationAmount',
+ data: ''
+ },
+ {
+ name: '校验',
+ value: 'checkAmount',
+ data: ''
+ },
+ {
+ name: '检定',
+ value: 'measureAmount',
+ data: ''
+ },
+ {
+ name: '测试',
+ value: 'testAmount',
+ data: ''
+ },
+ ]
+ current.xAxisData = res.data.map((item: any) => item.groupCodeName)
+ current.data = data.map((item: any, index: number) => ({
+ name: item.name,
+ data: res.data.map((citem: any) => String(citem[item.value])),
+ color: JSON.parse(JSON.stringify(colors)).reverse()[index]
+ }))
+ })
+ }
+ else {
+ getOnlyRecord(searchQueryResult.value).then(res => {
+ console.log(res.data, '设备列表')
+ const current = showChart.value.filter(item => item.name === '设备列表')[0]
+ console.log(res.data, '设备列表')
+ current.data = res.data.rows
+ })
+ }
+ // loading.value = true
+ // // 检校类别分析
+ // const name = ['检定', '校准', '测试', '校验']
+ // const name1 = ['合格', '不合格', '除*外合格']
+ // showChart.value.filter((item: any) => item.name === '检校类别分析')[0].data = name1.map((item, index) => ({
+ // name: item,
+ // stack: 'Ad',
+ // data: name.map(item => Math.floor(Math.random() * 100) + 1),
+ // color: colors[index],
+ // }))
+ // showChart.value.filter((item: any) => item.name === '检校类别分析')[0].xAxisData = name
+ // // 部门检校证书比例
+ // const name2 = ['电学电源组', '热工压力组', '无线脉冲组']
+ // showChart.value.filter((item: any) => item.name === '部门检校证书比例')[0].data = name2.map(item => ({
+ // name: item,
+ // value: Math.floor(Math.random() * 100) + 1,
+ // }))
+ // // 部门检校证书分析
+ // const name3 = ['检定', '校准', '测试', '校验']
+ // showChart.value.filter((item: any) => item.name === '部门检校证书分析')[0].xAxisData = name2
+ // showChart.value.filter((item: any) => item.name === '部门检校证书分析')[0].data = name3.map(item => ({
+ // name: item,
+ // data: name2.map(item => Math.floor(Math.random() * 100) + 1),
+ // }))
+ // // 检定人员排行榜
+ // const name4 = ['李响', '张超', '王立勇', '张浩', '孙子涵', '楚瑜', '张月月', '刘涵', '李渊', '王瑞']
+ // const name5 = ['电学电源组', '电学电源组', '热工压力组', '热工压力组', '热工压力组', '电学电源组', '无线脉冲组', '无线脉冲组', '电学电源组', '热工压力组']
+ // showChart.value.filter((item: any) => item.name === '检定人员排行榜')[0].data = name4.map((item, index) => ({
+ // name: item,
+ // count: Math.floor(Math.random() * 100) + 1,
+ // dept: name5[index],
+ // }))
+ // setTimeout(() => {
+ // loading.value = false
+ // }, 3000)
}
-setTimeout(() => {
- fetchData()
-}, 100)
defineExpose({
showChart,
})
@@ -182,107 +430,125 @@
-
-
+
+
{{ item }}
-
+
+
+
+
+
+
+