Compare commits

..

2 Commits

Author SHA1 Message Date
676c93cc6b update 2024-01-08 15:06:33 +08:00
bc2adcd8f2 update 2024-01-08 09:34:39 +08:00
28 changed files with 2993 additions and 532 deletions

View File

@ -0,0 +1,797 @@
HNZY
湖南中烟吴忠卷烟厂企业标准
HNZY/WZ/GL-HQ-01-231113
办事公开民主管理制度
2023- 11 -13发布
2023 -11- 14实施
湖南中烟吴忠卷烟厂 发布
前 言
本标准依据《标准的结构和编写》所规定的规则而起草,并结合本厂实际情况制订。
本标准与前一版相比,除编辑性修改外,主要技术变化如下:
-- -- 将4.4条款纪检监察部改为纪检监察部(法规部);
-- -- 将4.10条款安全法规部改为安全管理部;
-- -- 对4.11条款进行修订;
-- -- 对5.1.1条款进行修订;
-- -- 对5.2条款进行修订;
-- -- 对附录D公开类别进行修订。
本标准由湖南中烟工业有限责任公司吴忠卷烟厂标准化委员会办公室提出。
本标准由工会办公室(群团工作部)起草并归口。
本标准由李占保批准。
本标准主要起草人:朱雷、刘骁、张婕
本标准的历次版本发布情况为。
-- -- HNZY/WZ/GL-QT-01-a.0, 发布日期为2013-8-30
-- -- HNZY/WZ/GL-QT-01-a.1, 发布日期为2015-7-15
-- -- HNZY/WZ/GL-QT-01-a.2, 发布日期为2016-12-30
-- -- HNZY/WZ/GL-QT-01-a.3, 发布日期为2018-2-8
-- -- HNZY/WZ/GL-QT-01-191203, 发布日期为2019-12-03
-- -- HNZY/WZ/GL-QT-01-201215, 发布日期为2020-12-15
-- -- HNZY/WZ/GL-QT-01-231113, 发布日期为2023-11-13。
办事公开民主管理制度
1  范围
本标准规定了办事公开民主管理的程序和要求。
本标准适用于本厂办事公开的民主管理。
2  规范性引用文件
下列文件对于本文件的应用是必不可少的。凡是注日期(版本)的引用文件,仅所注日期的版本适用于本文件。凡是不注日期(版本)的引用文件,其最新版本(包括所有的修改单)适用于本文件。
《宁夏回族自治区厂务公开条例》
《宁夏回族自治区企业民主管理条例》
《烟草行业办事公开民主管理工作规范》
《中国烟草总公司关于印发三个保障机制文件的通知》
《国家烟草专卖局关于印发烟草行业办事公开民主管理工作规范(试行)补充规定的通知》
HNZY/WZ/GL-ZH-06 经济责任制管理办法
3  术语和定义
4  监督检查与考评
工会办公室(群团工作部)每月对公开目录要求的公开内容进行监督检查,发现公开事项有不符合要求情况,对照《经济责任制管理办法》进行考核。
5  报告和记录
本标准形成的报告和记录的要求如下:
记录编号
记录名称
保存处
保存期限
-----
办事公开民主管理公开报表(A类)(工程投资、采购部分项目清单)
工会办工室(群团工作部)
三年
----
办事公开民主管理公开报表B类("三重一大"部分项目清单)
工会办工室(群团工作部)
三年
----
办事公开民主管理公开报表C类(生产经营及专卖管理部分项目清单)
工会办工室(群团工作部)
三年
----
办事公开民主管理公开报表D类(涉及干部职工切身利益及其他部分项目清单)
工会办工室(群团工作部)
三年
(资料性附录)办事公开民主管理公开报表(A类)(工程投资、采购部分项目清单)
年度 月
公开类别
事项名称
事项编号
承办部门
备注
工程投资
物资采购
服务类采购
填报人: 部门负责人:
说明:
1事项名称是指年度内计划实施的具体事项的称谓。
2承办部门是指承办该业务事项的具体部门。
资料性附录办事公开民主管理公开报表B类("三重一大"部分项目清单)
年度 月
公开类别
事项分类
事项名称
事项编号
承办部门
备注
重大事项决策
发展战略
发展规划
资产调整
产权转让
对外投资
利益调配
机构调整
年度工作报告
年度财务情况及预算安排
重要项目安排
年度投资计划
重要设备和技术引进情况
重大工程建设项目情况
大宗物资(服务)采购情况
重要干部任免
干部选拔实施
方案
干部职务岗位变动情况
公开选拔干部的公告、竞聘结果、任前公示、任命通知
大额度资金使用情况
年度预算内大额度资金调动和使用
超预算资金调动和使用
对外捐赠、赞助
其他大额度资金运作事项
填报人: 部门负责人:
资料性附录办事公开民主管理公开报表C类(生产经营及专卖管理部分项目清单)
年度 月
公开类别
事项分类
事项名称
事项编号
承办部门
备注
企业管理方面
经济运行通报
生产经营管理目标及完成情况
绩效考核情况
制度建设方面
招投标情况
采购方式审核情况
采购项目执行情况
财务管理方面
财务预算及执行情况
内部审计工作情况
年度财务报告情况
年度财务预算批复情况
资产报废批复情况
物资配送方面
月度经营情况通报
产品销售情况
通报
报废烟草物资处置情况
烟草专卖许可证申请、受理和办理情况
人事劳资管理方面
公开招聘公告、录用
结果
福利费年度使用情况
职工养老、医疗、工伤、失业、生育保险等社会保障基金的缴纳情况
年度岗位考核方案和结果
技能鉴定结果
职称评审结果
员工退休信息情况
安全保卫、法律法规方面
安全生产例会情况
安全生产及劳动保护情况
职业健康体系运行情况
安全检查通报及整改情况
填报人: 部门负责人:
资料性附录办事公开民主管理公开报表D类(涉及干部职工切身利益及其他部分项目清单)
年度 月
公开类别
事项分类
事项名称
事项编号
承办部门
备注
重要事项
工间餐物资采购定价
职工福利
其他
填报人: 部门负责人:

View File

@ -0,0 +1,5 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="1" y="1" width="14" height="14" rx="2" fill="#233A82"/>
<path d="M10.6625 3.56079H5.26806C4.32646 3.56079 3.56006 4.32719 3.56006 5.26879V10.7288C3.56006 11.6704 4.32646 12.4368 5.26806 12.4368H10.6625C11.6041 12.4368 12.3705 11.6704 12.3705 10.7288V5.26879C12.3713 4.32719 11.6049 3.56079 10.6625 3.56079ZM6.07926 10.4432C5.42886 10.4432 4.89926 9.91359 4.89926 9.26319C4.89926 8.61279 5.42886 8.08319 6.07926 8.08319C6.72966 8.08319 7.25926 8.61279 7.25926 9.26319C7.25926 9.91439 6.72966 10.4432 6.07926 10.4432ZM7.43286 6.07519L6.25286 7.22159C6.17046 7.30159 6.06086 7.34639 5.94646 7.34639H5.93926C5.88126 7.34555 5.82401 7.33316 5.77085 7.30995C5.7177 7.28673 5.6697 7.25316 5.62966 7.21119L4.94006 6.49359C4.85925 6.4094 4.81513 6.29659 4.81738 6.17991C4.81963 6.06323 4.86806 5.95221 4.95206 5.87119C5.03625 5.79038 5.14906 5.74626 5.26574 5.74851C5.38242 5.75076 5.49344 5.79919 5.57446 5.88319L5.95766 6.28159L6.82006 5.44399C6.86149 5.40367 6.91046 5.37192 6.96417 5.35054C7.01788 5.32916 7.07528 5.31858 7.13308 5.31939C7.19089 5.32021 7.24796 5.33241 7.30105 5.3553C7.35413 5.37819 7.40218 5.41132 7.44246 5.45279C7.52325 5.53684 7.56757 5.6494 7.56577 5.76597C7.56397 5.88253 7.5162 5.99367 7.43286 6.07519ZM10.7977 9.78159H8.25446C7.98966 9.78159 7.77446 9.56639 7.77446 9.30159C7.77446 9.03679 7.98966 8.82159 8.25446 8.82159H10.7977C11.0625 8.82159 11.2777 9.03679 11.2777 9.30159C11.2777 9.56639 11.0625 9.78159 10.7977 9.78159ZM10.7977 6.90559H8.25446C7.98966 6.90559 7.77446 6.69039 7.77446 6.42559C7.77446 6.16079 7.98966 5.94559 8.25446 5.94559H10.7977C11.0625 5.94559 11.2777 6.16079 11.2777 6.42559C11.2777 6.69039 11.0625 6.90559 10.7977 6.90559Z" fill="white"/>
<path d="M6.00159 8.87109C5.77919 8.87109 5.59839 9.05189 5.59839 9.27429C5.59839 9.49669 5.77919 9.67749 6.00159 9.67749C6.22399 9.67749 6.40479 9.49669 6.40479 9.27429C6.40479 9.05189 6.22399 8.87109 6.00159 8.87109Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -0,0 +1,4 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="1" y="1" width="14" height="14" rx="2" fill="#3491FA"/>
<path d="M7.99326 2.81006C5.13086 2.81006 2.81006 5.13086 2.81006 7.99326C2.81006 10.8557 5.13086 13.1765 7.99326 13.1765C10.8557 13.1765 13.1765 10.8557 13.1765 7.99326C13.1765 5.13086 10.8557 2.81006 7.99326 2.81006ZM10.0005 8.98046H7.54686C7.40873 8.98046 7.27627 8.92559 7.1786 8.82792C7.08093 8.73025 7.02606 8.59778 7.02606 8.45966V5.61166C7.02606 5.47353 7.08093 5.34107 7.1786 5.2434C7.27627 5.14573 7.40873 5.09086 7.54686 5.09086C7.68498 5.09086 7.81745 5.14573 7.91512 5.2434C8.01279 5.34107 8.06766 5.47353 8.06766 5.61166V7.93886H10.0005C10.1386 7.93886 10.2711 7.99373 10.3687 8.0914C10.4664 8.18907 10.5213 8.32153 10.5213 8.45966C10.5213 8.74766 10.2885 8.98046 10.0005 8.98046Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 879 B

View File

@ -0,0 +1,4 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="1" y="1" width="14" height="14" rx="2" fill="#F53F3F"/>
<path d="M7.71483 3.27373C6.72523 2.95373 5.76843 3.31693 5.10843 3.70653C4.99243 3.32333 4.63323 3.05453 4.22363 3.10653C3.85483 3.15293 3.55403 3.46813 3.50683 3.85933C3.46603 4.20093 3.61163 4.50973 3.85003 4.68813V12.6521C3.85003 12.9273 4.05003 13.1673 4.31003 13.1761C4.57883 13.1849 4.79883 12.9561 4.79883 12.6737V9.94893C7.47963 8.18173 9.11003 9.41773 10.2492 9.69533C11.1788 9.92173 11.9716 9.55853 12.2732 9.38813C12.354 9.34253 12.4036 9.25293 12.4036 9.15613V4.21773C12.4036 4.02013 12.2076 3.89693 12.0412 3.98413C10.6996 4.69053 9.35963 3.80573 7.71483 3.27373ZM9.92043 6.09693C9.52043 6.00733 8.99403 5.81853 8.35083 5.43693C7.21963 4.76653 6.23403 5.39693 6.19323 5.42413C5.97643 5.56653 5.69003 5.49773 5.55403 5.26813C5.41803 5.03933 5.48123 4.73773 5.69643 4.59213C5.75643 4.55213 7.17803 3.61293 8.80443 4.57773C9.36923 4.91213 9.80763 5.06573 10.114 5.13453C10.3276 5.18253 10.4788 5.38413 10.4788 5.61533C10.478 5.92653 10.2084 6.16093 9.92043 6.09693Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1,4 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="1" y="1" width="14" height="14" rx="2" fill="#F77234"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M13.3488 7.76984L12.036 6.45704C11.9757 6.39681 11.9417 6.31509 11.9416 6.22984V4.37224C11.9416 4.19464 11.7976 4.05144 11.6208 4.05144H9.76399C9.67919 4.05144 9.59679 4.01784 9.53679 3.95704L8.22399 2.64424C8.19417 2.61438 8.15875 2.59069 8.11977 2.57453C8.08078 2.55837 8.03899 2.55005 7.99679 2.55005C7.95459 2.55005 7.9128 2.55837 7.87382 2.57453C7.83483 2.59069 7.79942 2.61438 7.76959 2.64424L6.45599 3.95704C6.39576 4.01737 6.31404 4.05133 6.22879 4.05144H4.37199C4.32986 4.05144 4.28815 4.05973 4.24923 4.07586C4.21031 4.09198 4.17494 4.11561 4.14515 4.1454C4.11536 4.17519 4.09173 4.21055 4.07561 4.24947C4.05949 4.28839 4.05119 4.33011 4.05119 4.37224V6.22904C4.05119 6.31384 4.01759 6.39624 3.95679 6.45624L2.64399 7.76984C2.61413 7.79966 2.59045 7.83508 2.57428 7.87406C2.55812 7.91305 2.5498 7.95483 2.5498 7.99704C2.5498 8.03924 2.55812 8.08103 2.57428 8.12001C2.59045 8.159 2.61413 8.19441 2.64399 8.22424L3.95679 9.53704C4.01713 9.59726 4.05108 9.67898 4.05119 9.76424V11.621C4.05119 11.7986 4.19519 11.9418 4.37199 11.9418H6.22879C6.31359 11.9418 6.39599 11.9754 6.45599 12.0362L7.76879 13.349C7.79862 13.3789 7.83403 13.4026 7.87302 13.4187C7.912 13.4349 7.95379 13.4432 7.99599 13.4432C8.03819 13.4432 8.07998 13.4349 8.11897 13.4187C8.15795 13.4026 8.19337 13.3789 8.22319 13.349L9.53599 12.0362C9.59622 11.9759 9.67794 11.9419 9.76319 11.9418H11.62C11.7976 11.9418 11.9408 11.7978 11.9408 11.621V9.76424C11.9408 9.67944 11.9744 9.59704 12.0352 9.53704L13.348 8.22424C13.378 8.19451 13.4018 8.15915 13.4181 8.12019C13.4344 8.08123 13.4428 8.03943 13.4429 7.9972C13.443 7.95497 13.4347 7.91315 13.4185 7.87413C13.4024 7.83511 13.3787 7.79966 13.3488 7.76984ZM5.44559 6.59864C5.44559 5.83624 5.90959 5.23944 6.50239 5.23944C7.09519 5.23944 7.55919 5.83624 7.55919 6.59864C7.55919 7.36104 7.09519 7.95784 6.50239 7.95784C5.90959 7.95784 5.44559 7.36104 5.44559 6.59864ZM7.29919 10.6354C7.26265 10.7068 7.20706 10.7668 7.13859 10.8086C7.07011 10.8503 6.99141 10.8724 6.91119 10.8722C6.83657 10.8722 6.7632 10.8531 6.69812 10.8165C6.63305 10.78 6.57845 10.7274 6.53958 10.6637C6.5007 10.6 6.47885 10.5274 6.47612 10.4528C6.47339 10.3782 6.48988 10.3042 6.52399 10.2378L8.79679 5.80344C8.8228 5.75245 8.85863 5.7071 8.90221 5.66999C8.9458 5.63288 8.99628 5.60475 9.05077 5.58721C9.10525 5.56966 9.16267 5.56306 9.21972 5.56776C9.27676 5.57247 9.33232 5.5884 9.38319 5.61464C9.43412 5.64072 9.4794 5.67658 9.51645 5.72018C9.55351 5.76377 9.5816 5.81424 9.59914 5.8687C9.61667 5.92316 9.6233 5.98055 9.61864 6.03757C9.61399 6.0946 9.59813 6.15014 9.57199 6.20104L7.29919 10.6354ZM9.88399 10.6098C9.29119 10.6098 8.82719 10.013 8.82719 9.25064C8.82719 8.48824 9.29119 7.89144 9.88399 7.89144C10.4768 7.89144 10.9408 8.48824 10.9408 9.25064C10.9408 10.013 10.476 10.6098 9.88399 10.6098ZM9.83644 8.79917C9.77912 8.86492 9.69824 9.01737 9.69824 9.2507C9.69824 9.5603 9.84064 9.7283 9.88544 9.7387C9.9002 9.73464 9.92826 9.71018 9.95806 9.66594C10.0154 9.60092 10.0972 9.44762 10.0972 9.213C10.0972 8.9034 9.95481 8.7354 9.91001 8.725C9.89509 8.72909 9.86659 8.75404 9.83644 8.79917ZM6.49961 6.1106C6.54441 6.121 6.68681 6.289 6.68681 6.5986C6.68681 6.9082 6.54521 7.0754 6.50361 7.0866C6.45881 7.0762 6.31641 6.9082 6.31641 6.5986C6.31641 6.289 6.45881 6.1218 6.49961 6.1106Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@ -171,13 +171,23 @@ body .hasTagsView .app-main .el-card{
border: 0;
border-radius: 0;
}
body .el-card.box-card.is-always-shadow,
body .hasTagsView .app-main .el-card.box-card.is-always-shadow{
box-shadow: none;
}
body .el-card .el-card__header,
body .hasTagsView .app-main .el-card .el-card__header{
border-bottom: 1px solid #E5E6EB;
padding: 10px 20px;
}
body .el-card .el-card__header .clearfix::before,
body .el-card .el-card__header .clearfix::after{
content: "";
display: table;
}
body .el-card .el-card__header .clearfix::after{
clear: both;
}
body .hasTagsView .app-main .el-card .el-card__header>.clearfix>span{
line-height: 29px;
font-weight: bold;
@ -403,9 +413,28 @@ body .el-table--medium .el-table__cell {
body .el-table--border {
border: 0;
}
body .el-table--border::after,
body .el-table--group::after,
body .el-table::before {
background-color: #e5e6eb;
}
body .el-table--border::after {
content: none;
}
body .el-table--border.btable::after {
content: "";
}
body .el-table--border .el-table__cell {
border-right: 0;
}
body .el-table.btable{
border-top: 1px solid #e5e6eb !important;
border-left: 1px solid #e5e6eb !important;
}
body .el-table.btable .el-table__cell {
border-right: 1px solid #EBEEF5;
}
/*el-tree*/
body .el-tree {
@ -531,6 +560,12 @@ body .el-form-item .el-form-item__label {
body .el-progress-bar__inner {
background-color: #233A82 !important;
}
body .pro1 .el-progress-bar__inner {
background-color: #F53F3F !important;
}
body .el-progress-bar__inner .el-progress-bar__innerText{
color: #fff !important;
}
/*modellist*/
.modellist{
@ -670,3 +705,189 @@ body ,html{
.login-page .loright .locont .el-button{
border-radius: 2px;
}
* {
--color: #233A82;
--color_shallow: #233A82;
--count_number: #233A82;
--count_number_shallow: #233A82;
--primary_color: #233A82;
--aside_color: #233A82;
}
.ftitle{
display: block;
text-align: center;
font-size: 20px;
line-height: 28px;
font-weight: bold;
color: #1D2129;
margin: 0;
padding: 0;
}
.stitle{
display: block;
text-align: left;
color: #1D2129;
font-size: 16px;
font-weight: bold;
line-height: 24px;
padding: 0 0 8px 0;
margin: 30px 0 0 0;
border-bottom: 1px solid #e5e6eb;
}
.ttitle{
display: block;
text-align: left;
color: #1D2129;
font-size: 14px;
font-weight: bold;
line-height: 22px;
padding: 0 0 8px 0;
margin: 24px 0 0 0;
}
/*test-list*/
.test-list{
display: flex;
}
.test-list .list{
display: block;
flex: 1;
padding: 24px 24px 0 24px;
}
.test-list .list+.list{
margin-left: 24px;
}
.test-list .list .title{
display: flex;
align-items: center;
}
.test-list .list .title img{
display: block;
width: 16px;
margin: 0 4px 0 0;
}
.test-list .list .title .tit{
display: block;
color: #86909C;
font-size: 14px;
line-height: 22px;
margin: 0;
padding: 0;
}
.test-list .list .figure{
display: block;
margin: 12px 0 0 0;
padding: 0;
color: #1D2129;
font-size: 24px;
line-height: 32px;
font-weight: bold;
}
/*badge*/
body .el-badge.newbadge{
display: inline-flex;
flex-direction: row-reverse;
align-items: center;
}
body .el-badge.newbadge+.el-badge.newbadge{
margin-left: 20px;
}
body .el-badge.newbadge .sz{
color: #1D2129;
font-size: 14px;
font-weight: 300;
line-height: 22px;
margin: 0 0 0 10px;
}
body .el-badge.newbadge .el-badge__content.is-fixed{
position: inherit;
transform: inherit;
right: 0;
width: 18px;
height: 18px;
line-height: 18px;
text-align: center;
margin: 0;
padding: 0;
font-size: 12px;
}
body .el-badge__content{
background-color: #F53F3F;
}
body .el-badge__content--warning {
background-color: #F7BA1E;
}
body .el-badge__content--primary {
background-color: #0FC6C2;
}
/*ncoll*/
body .ncoll{
margin: 5px 0 0 0;
}
body .ncoll.el-collapse{
border: 0;
}
body .ncoll.el-collapse .el-collapse-item>div:first-child{
text-align: center;
}
body .ncoll.el-collapse .el-collapse-item__header{
border-bottom: 0;
height: 30px;
line-height: 30px;
justify-content: center;
display: inline-flex;
color: #233A82;
}
body .ncoll.el-collapse .el-collapse-item__header:hover{
color: #2B50C4;
}
body .ncoll.el-collapse .el-collapse-item__header .tit{
display: block;
margin: 0;
display: block;
text-align: left;
font-size: 12px;
font-weight: normal;
line-height: 20px;
}
body .ncoll.el-collapse .el-collapse-item__header .el-collapse-item__arrow{
display: block;
width: 18px;
height: 18px;
text-align: center;
line-height: 18px;
padding: 0;
font-size: 14px;
margin: 0;
-webkit-transform: rotate(90deg);
transform: rotate(90deg);
}
body .ncoll.el-collapse .el-collapse-item__arrow.is-active {
-webkit-transform: rotate(-90deg);
transform: rotate(-90deg);
}
body .ncoll.el-collapse .el-collapse-item__wrap{
border-bottom: 0;
}
body .ncoll.el-collapse .el-collapse-item__wrap .el-collapse-item__content{
padding: 5px 0;
}
.dbox{
border: 1px dashed #e5e6eb;
padding: 10px;
box-sizing: border-box;
margin: 10px 0 0 0;
border-radius: 4px;
}
.dbox .ttitle:first-child{
margin-top: 0;
}

View File

@ -195,16 +195,16 @@
/>
</el-select>
</el-form-item>
<el-form-item label="用例级别" prop="ruleLevelId">
<el-select v-model="form.ruleLevelId" placeholder="请选择用例级别" style="width: 100%">
<el-option
v-for="item in ruleLevelOptions"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="用例级别" prop="ruleLevelId">-->
<!-- <el-select v-model="form.ruleLevelId" placeholder="请选择用例级别" style="width: 100%">-->
<!-- <el-option-->
<!-- v-for="item in ruleLevelOptions"-->
<!-- :key="item.id"-->
<!-- :label="item.name"-->
<!-- :value="item.id"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
</div>
</el-form>
<el-form v-if="active == 2" ref="form" :model="form" :rules="rules" label-width="80px" style="width: 800px">
@ -219,6 +219,26 @@
/>
</el-select>
</el-form-item>
<el-row v-if="form.ruleConfig.ruleItemCode === 'regular_key'">
<el-col :span="24">
<el-form-item label="正则表达">
<el-input v-model="form.ruleConfig.regular.regular" placeholder="请输入正则规则" />
</el-form-item>
</el-col>
</el-row>
<el-row v-if="form.ruleConfig.ruleItemCode === 'regular_key'">
<el-form-item label="常用正则">
<el-radio-group v-model="form.zzStatus" @change="handleZzStatusRadioChange">
<el-radio label="1">手机号码</el-radio>
<el-radio label="2">邮箱</el-radio>
<el-radio label="3">整数</el-radio>
<el-radio label="4">负数</el-radio>
<el-radio label="5">身份证</el-radio>
<el-radio label="6">日期格式yyyy-mm-dd</el-radio>
<el-radio label="7">IP</el-radio>
</el-radio-group>
</el-form-item>
</el-row>
<el-form-item label="状态" prop="status">
<el-radio-group v-model="form.status">
<el-radio
@ -520,6 +540,16 @@ export default {
this.form.ruleConfig.regular.regular = '^[1-9][0-9]{10}$'
} else if (value === '2') {
this.form.ruleConfig.regular.regular = '^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$'
} else if (value === '3') {
this.form.ruleConfig.regular.regular = '[0-9]*[1-9][0-9]*'
} else if (value === '4') {
this.form.ruleConfig.regular.regular = '-[0-9]*[1-9][0-9]*'
} else if (value === '5') {
this.form.ruleConfig.regular.regular = '\\d{15}(\\d\\d[0-9xX])?'
} else if (value === '6') {
this.form.ruleConfig.regular.regular = '(\\d{4}|\\d{2})-((1[0-2])|(0?[1-9]))-(([12][0-9])|(3[01])|(0?[1-9]))'
} else if (value === '7') {
this.form.ruleConfig.regular.regular = '((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)'
}
}
}

View File

@ -21,16 +21,16 @@
/>
</el-select>
</el-form-item>
<el-form-item label="规则级别">
<el-select v-model="form.ruleLevelId">
<el-option
v-for="item in ruleLevelOptions"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="规则级别">-->
<!-- <el-select v-model="form.ruleLevelId">-->
<!-- <el-option-->
<!-- v-for="item in ruleLevelOptions"-->
<!-- :key="item.id"-->
<!-- :label="item.name"-->
<!-- :value="item.id"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="数据源">
<el-select v-model="form.ruleSourceId">
<el-option

View File

@ -22,16 +22,16 @@
/>
</el-select>
</el-form-item>
<el-form-item label="规则级别" prop="ruleLevelId">
<el-select v-model="form.ruleLevelId" placeholder="请选择规则级别">
<el-option
v-for="item in ruleLevelOptions"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="规则级别" prop="ruleLevelId">-->
<!-- <el-select v-model="form.ruleLevelId" placeholder="请选择规则级别">-->
<!-- <el-option-->
<!-- v-for="item in ruleLevelOptions"-->
<!-- :key="item.id"-->
<!-- :label="item.name"-->
<!-- :value="item.id"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="数据源" prop="ruleSourceId">
<el-select v-model="form.ruleSourceId" placeholder="请选择数据源" @change="sourceSelectChanged">
<el-option
@ -218,9 +218,6 @@ export default {
ruleItemId: [
{ required: true, message: '核查类型不能为空', trigger: 'change' }
],
ruleLevelId: [
{ required: true, message: '规则级别不能为空', trigger: 'change' }
],
ruleSourceId: [
{ required: true, message: '数据源不能为空', trigger: 'change' }
],

View File

@ -206,7 +206,7 @@ export default {
/* { prop: 'ruleColumn', label: '检测字段', show: true, formatter: this.ruleColumnFormatter },*/
{ prop: 'ruleName', label: '用例名称', show: true },
{ prop: 'ruleType', label: '用例类型', show: true },
{ prop: 'ruleLevel', label: '用例级别', width: 100, show: true },
// { prop: 'ruleLevel', label: '', width: 100, show: true },
{
prop: 'status',
label: '状态',

View File

@ -97,7 +97,7 @@
show-overflow-tooltip
/>
</template>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="300px">
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="400px">
<template slot-scope="scope">
<el-button
size="mini"
@ -131,6 +131,12 @@
icon="el-icon-s-promotion"
@click="handleRun(scope.row)"
>立即执行</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
>删除</el-button>
</template>
</el-table-column>
</el-table>

View File

@ -193,16 +193,16 @@
/>
</el-select>
</el-form-item>
<el-form-item label="用例级别" prop="ruleLevelId">
<el-select v-model="form.ruleLevelId" placeholder="请选择用例级别" style="width: 100%">
<el-option
v-for="item in ruleLevelOptions"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="用例级别" prop="ruleLevelId">-->
<!-- <el-select v-model="form.ruleLevelId" placeholder="请选择用例级别" style="width: 100%">-->
<!-- <el-option-->
<!-- v-for="item in ruleLevelOptions"-->
<!-- :key="item.id"-->
<!-- :label="item.name"-->
<!-- :value="item.id"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
</div>
</el-form>
<el-form v-if="active == 2" ref="form" :model="form" :rules="rules" label-width="80px" style="width: 800px">
@ -321,9 +321,6 @@ export default {
ruleItemId: [
{ required: true, message: '核查类型不能为空', trigger: 'change' }
],
ruleLevelId: [
{ required: true, message: '规则级别不能为空', trigger: 'change' }
],
ruleSourceId: [
{ required: true, message: '数据源不能为空', trigger: 'change' }
],

View File

@ -21,16 +21,16 @@
/>
</el-select>
</el-form-item>
<el-form-item label="规则级别">
<el-select v-model="form.ruleLevelId">
<el-option
v-for="item in ruleLevelOptions"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="规则级别">-->
<!-- <el-select v-model="form.ruleLevelId">-->
<!-- <el-option-->
<!-- v-for="item in ruleLevelOptions"-->
<!-- :key="item.id"-->
<!-- :label="item.name"-->
<!-- :value="item.id"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="数据源">
<el-select v-model="form.ruleSourceId">
<el-option

View File

@ -22,16 +22,16 @@
/>
</el-select>
</el-form-item>
<el-form-item label="规则级别" prop="ruleLevelId">
<el-select v-model="form.ruleLevelId" placeholder="请选择规则级别">
<el-option
v-for="item in ruleLevelOptions"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="规则级别" prop="ruleLevelId">-->
<!-- <el-select v-model="form.ruleLevelId" placeholder="请选择规则级别">-->
<!-- <el-option-->
<!-- v-for="item in ruleLevelOptions"-->
<!-- :key="item.id"-->
<!-- :label="item.name"-->
<!-- :value="item.id"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="数据源" prop="ruleSourceId">
<el-select v-model="form.ruleSourceId" placeholder="请选择数据源" @change="sourceSelectChanged">
<el-option
@ -218,9 +218,6 @@ export default {
ruleItemId: [
{ required: true, message: '核查类型不能为空', trigger: 'change' }
],
ruleLevelId: [
{ required: true, message: '规则级别不能为空', trigger: 'change' }
],
ruleSourceId: [
{ required: true, message: '数据源不能为空', trigger: 'change' }
],

View File

@ -206,7 +206,7 @@ export default {
{ prop: 'ruleColumn', label: '检测字段', show: true, formatter: this.ruleColumnFormatter },*/
{ prop: 'ruleName', label: '用例名称', show: true },
{ prop: 'ruleType', label: '用例类型', show: true },
{ prop: 'ruleLevel', label: '用例级别', width: 100, show: true },
// { prop: 'ruleLevel', label: '', width: 100, show: true },
{
prop: 'status',
label: '状态',

View File

@ -147,7 +147,8 @@
formatter: this.checkResultFormatter
},
{ prop: 'checkTotalCount', label: '检测数量', show: true },
{ prop: 'checkErrorCount', label: '不合规数量', show: true }
{ prop: 'checkErrorCount', label: '不合规数量', show: true },
{ prop: 'checkTimeConsuming', label: '耗时(毫秒)', show: true }
],
projectsOptions: [
{ id: '1111', projectName: '演示项目' }
@ -199,6 +200,7 @@
pageCheckReport(this.queryParams).then(response => {
this.loading = false
if (response.success) {
console.log('response',response)
const { data } = response
this.tableDataList = data.data
this.total = data.total
@ -208,7 +210,16 @@
handleReport(row) {
this.showOptions.data = row
this.showOptions.showList = false
if (row.checkReportType === 'relevance') {
//
this.showOptions.showDetail_relevance = true
} else if (row.checkReportType === 'content') {
//
this.showOptions.showDetail_content = true
} else {
//
this.showOptions.showDetail = true
}
this.$emit('showCard', this.showOptions)
},
handleSizeChange(val) {
@ -225,8 +236,10 @@
checkReportTypeFormatter(row, column, cellValue, index) {
if (cellValue === 'structure') {
return '结构符合性检测报告'
} else {
} else if (cellValue === 'content') {
return '内容符合性检测报告'
} else {
return '关联符合性检测报告'
}
},
checkResultFormatter(row, column, cellValue, index) {

View File

@ -1,83 +1,57 @@
<template>
<div class="app-container">
<el-card class="box-card" shadow="always">
<div class="hasTagsView">
<div class="app-main">
<el-card class="box-card">
<div slot="header" class="clearfix">
<el-button-group style="float: right;">
<el-button type="primary" size="mini" icon="el-icon-download">导出</el-button>
<div style="float: right;">
<el-button type="primary" size="mini" icon="el-icon-download" @click="exportWord">导出</el-button>
<el-button size="mini" icon="el-icon-back" @click="showCard">返回</el-button>
</el-button-group>
</div>
<div class="body-wrapper">
<h4 style="text-align: center;">{{ date }}{{ data.checkReportType === 'structure' ? '结构符合性' : '内容符合性' }}检测结果报告</h4>
<el-divider content-position="left"><h3>检测指标统计分析</h3></el-divider>
<el-row :gutter="20">
<div>
<el-row :gutter="20">
<el-col :span="6">
<div>
<el-statistic
group-separator=","
:precision="0"
:value="data.checkTotalCount"
title="检测表总数"
></el-statistic>
</div><!--header-->
<h4 class="ftitle">结构符合性检测结果报告</h4><!--ftitle 一级标题-->
<div class="stitle">检测指标统计分析</div><!--stitle 二级标题-->
<div class="test-list">
<div class="list">
<div class="title"><img src="../../../assets/images/j-icon1.svg"><span class="tit">检测表总数</span></div>
<!-- <div class="figure">{{ data.checkTotalCount_new }}</div>-->
<div class="figure" >{{ checkTotalCount_new }}</div>
</div>
</el-col>
<el-col :span="6">
<div>
<el-statistic title="检测总耗时(毫秒)">
<template slot="formatter">
{{ data.checkTimeConsuming }}
</template>
</el-statistic>
<div class="list">
<div class="title"><img src="../../../assets/images/j-icon2.svg"><span class="tit">检测总耗时(毫秒)</span></div>
<!-- <div class="figure">{{ data.checkTimeConsuming_new }}</div>-->
<div class="figure">{{ checkTimeConsuming_new }}</div>
</div>
</el-col>
<el-col :span="6">
<div>
<el-statistic
group-separator=","
:precision="0"
decimal-separator="."
:value="data.checkErrorCount"
title="不合规总数"
>
<template slot="prefix">
<i class="el-icon-s-flag" style="color: red"></i>
</template>
</el-statistic>
<div class="list">
<div class="title"><img src="../../../assets/images/j-icon3.svg"><span class="tit">不合规总数</span></div>
<!-- <div class="figure">{{ data.checkErrorCount_new }}</div>-->
<div class="figure">{{ checkErrorCount_new }}</div>
</div>
</el-col>
<el-col :span="6">
<div>
<el-statistic title="不合规率">
<template slot="prefix">
<span class="like">
<i class="el-icon-star-on" style="color:red"></i>
</span>
</template>
<template slot="formatter">
{{ (data.checkErrorCount / data.checkTotalCount * 100) + '%' }}
</template>
</el-statistic>
<div class="list">
<div class="title"><img src="../../../assets/images/j-icon4.svg"><span class="tit">不合规率</span></div>
<div class="figure">{{ (checkErrorCount_new / checkTotalCount_new * 100).toFixed(2) + '%' }}</div>
<!-- <div class="figure">{{ data.checkTotalCount_new }}</div>-->
</div>
</el-col>
</el-row>
</div>
</el-row>
<el-divider content-position="left"><h3>不合规统计分析</h3></el-divider>
<el-row :gutter="20">
<el-col :span="10">
<h5>按数据源统计不合规数量</h5>
<el-table
:data="reportTableData1"
:span-method="objectSpanMethod1"
border
default-expand-all
:max-height="250"
style="width: 100%; margin: 15px 0;"
>
</div><!--test-list-->
<div class="stitle">不合规统计分析</div><!--stitle 二级标题-->
<el-row :gutter="24">
<el-col :span="12">
<div class="ttitle">按数据源统计不合规数量</div><!--ttitle 三级标题-->
<el-table :data="reportTableData1" border style="width: 100%" class="btable"><!--加上btable-->
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
<el-table-column prop="ruleLevelName" label="规则级别" align="center" />
<el-table-column prop="tableSum" label="检测表数" align="center" />
<el-table-column prop="tableTime" label="耗时(毫秒)" align="center" />
<el-table-column prop="ruleLevelName" label="版本" align="center" />
<el-table-column prop="checkErrorCount" label="不合规数" align="center">
<template slot-scope="scope">
<el-progress :percentage="scope.row.checkErrorCount" :stroke-width="20" :text-inside="true" :color="colorFormat(scope.row.ruleLevelName)" :format="cellFormat" />
@ -85,218 +59,154 @@
</el-table-column>
</el-table>
</el-col>
<el-col :span="10" :offset="4">
<h5>按用例类型统计不合规数量</h5>
<el-table
:data="reportTableData2"
:span-method="objectSpanMethod2"
border
tooltip-effect="dark"
:max-height="250"
style="width: 100%; margin: 15px 0;"
>
<el-table-column prop="ruleTypeName" label="用例类型" align="center" />
<el-table-column prop="ruleName" label="用例名称" align="center" />
<el-table-column prop="checkErrorCount" label="不合规数" align="center">
<template slot-scope="scope">
<el-badge :value="scope.row.ruleLevelName" :type="typeFormat(scope.row.ruleLevelName)">
{{ scope.row.checkErrorCount }}
</el-badge>
</template>
<el-col :span="12">
<div class="ttitle">按用例类型统计不合规数量</div><!--ttitle 三级标题-->
<el-table :data="reportTableData2" border style="width: 100%" class="btable"><!--加上btable-->
<!-- <el-table-column prop="ta1" label="数据源">数据平台</el-table-column>-->
<el-table-column prop="ruleName" label="用例名称"></el-table-column>
<el-table-column prop="checkErrorCount" label="不合规数">
</el-table-column>
</el-table>
</el-col>
</el-row>
<el-divider content-position="left"><h3>用例类型统计分析</h3></el-divider>
<el-row>
<el-col :span="24">
<h5>表字段标准检测分析</h5>
<el-table
:data="table_key"
border
tooltip-effect="dark"
:max-height="250"
style="width: 100%; margin: 15px 0;"
>
<div class="stitle">用例类型统计分析</div><!--stitle 二级标题-->
<div class="dbox">
<div class="ttitle">表字段标准检测用例</div><!--ttitle 三级标题-->
<el-table :data="table_key" border style="width: 100%">
<el-table-column prop="ruleName" label="用例名称" align="center" />
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
<el-table-column prop="ruleTableName" label="数据表" align="center" />
<el-table-column prop="checkTotalCount" label="核查数" align="center" />
<el-table-column prop="version" label="版本" align="center" />
<el-table-column prop="checkTotalCount" label="检测数" align="center" />
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
</el-table>
<el-collapse accordion>
<el-collapse-item>
<template slot="title">
不合规明细<i class="el-icon-arrow-right"></i>
</template>
<div>
<el-table
:data="table_key"
border
tooltip-effect="dark"
:max-height="250"
style="width: 100%; margin: 15px 0;"
>
<el-table-column prop="ruleName" label="用例名称" align="center" />
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
<el-table-column prop="ruleTableName" label="数据表" align="center" />
<el-table-column prop="checkTotalCount" label="实际表名" align="center" />
<el-table-column prop="checkTotalCount" label="标准表名" align="center" />
<el-table-column prop="checkTotalCount" label="实际字段" align="center" />
<el-table-column prop="checkErrorCount" label="标准字段" align="center" />
<el-table-column prop="checkErrorCount" label="不合规原因" align="center" />
<el-collapse @change="handleChange" class="ncoll"><!--加上ncoll-->
<el-collapse-item name="1">
<template slot="title"><span class="tit">不合规明细</span></template>
<el-table :data="no_table_key" border style="width: 100%">
<el-table-column prop="caseName" label="用例名称" align="center" />
<el-table-column prop="source" label="数据源" align="center" />
<el-table-column prop="tableName" label="数据表" align="center" />
<el-table-column prop="trueTableName" label="实际表名" align="center" />
<el-table-column prop="standardTableName" label="标准表名" align="center" />
<el-table-column prop="trueColumn" label="实际字段" align="center" />
<el-table-column prop="standardColumn" label="标准字段" align="center" />
<el-table-column prop="notDetail" label="不合规原因" align="center" />
</el-table>
</div>
</el-collapse-item>
</el-collapse>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<h5>长度标准检测分析</h5>
<el-table
:data="length_key"
border
tooltip-effect="dark"
:max-height="250"
style="width: 100%; margin: 15px 0;"
>
</div><!--dbox-->
<div class="dbox">
<div class="ttitle">长度标准检测用例</div><!--ttitle 三级标题-->
<el-table :data="length_key" border style="width: 100%">
<el-table-column prop="ruleName" label="用例名称" align="center" />
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
<el-table-column prop="ruleTableName" label="数据表" align="center" />
<el-table-column prop="checkTotalCount" label="核查数" align="center" />
<el-table-column prop="version" label="版本" align="center" />
<el-table-column prop="checkTotalCount" label="检测数" align="center" />
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
</el-table>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<h5>空值标准检测分析</h5>
<el-table
:data="null_key"
border
tooltip-effect="dark"
:max-height="250"
style="width: 100%; margin: 15px 0;"
>
<el-collapse @change="handleChange" class="ncoll"><!--加上ncoll-->
<el-collapse-item name="1">
<template slot="title"><span class="tit">不合规明细</span></template>
<el-table :data="no_length_key" border style="width: 100%">
<el-table-column prop="caseName" label="用例名称" align="center" />
<el-table-column prop="source" label="数据源" align="center" />
<el-table-column prop="tableName" label="数据表" align="center" />
<el-table-column prop="standardColumn" label="标准字段" align="center" />
<el-table-column prop="standardLength" label="标准长度" align="center" />
<el-table-column prop="trueLength" label="实际长度" align="center" />
<el-table-column prop="notDetail" label="不合规原因" align="center" />
</el-table>
</el-collapse-item>
</el-collapse>
</div><!--dbox-->
<div class="dbox">
<div class="ttitle">空值标准检测用例</div><!--ttitle 三级标题-->
<el-table :data="null_key" border style="width: 100%">
<el-table-column prop="ruleName" label="用例名称" align="center" />
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
<el-table-column prop="ruleTableName" label="数据表" align="center" />
<el-table-column prop="checkTotalCount" label="核查数" align="center" />
<el-table-column prop="version" label="版本" align="center" />
<el-table-column prop="checkTotalCount" label="检测数" align="center" />
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
</el-table>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<h5>主键标准检测分析</h5>
<el-table
:data="pk_key"
border
tooltip-effect="dark"
:max-height="250"
style="width: 100%; margin: 15px 0;"
>
<el-collapse @change="handleChange" class="ncoll"><!--加上ncoll-->
<el-collapse-item name="1">
<template slot="title"><span class="tit">不合规明细</span></template>
<el-table :data="no_null_key" border style="width: 100%">
<el-table-column prop="caseName" label="用例名称" align="center" />
<el-table-column prop="source" label="数据源" align="center" />
<el-table-column prop="tableName" label="数据表" align="center" />
<el-table-column prop="standardColumn" label="标准字段" align="center" />
<el-table-column prop="standardNull" label="标准字段是否空值" align="center" />
<el-table-column prop="trueColumn" label="实际字段" align="center" />
<el-table-column prop="trueNull" label="实际字段是否空值" align="center" />
<el-table-column prop="notDetail" label="不合规原因" align="center" />
</el-table>
</el-collapse-item>
</el-collapse>
</div><!--dbox-->
<div class="dbox">
<div class="ttitle">主键标准检测用例</div><!--ttitle 三级标题-->
<el-table :data="pk_key" border style="width: 100%">
<el-table-column prop="ruleName" label="用例名称" align="center" />
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
<el-table-column prop="ruleTableName" label="数据表" align="center" />
<el-table-column prop="checkTotalCount" label="核查数" align="center" />
<el-table-column prop="version" label="版本" align="center" />
<el-table-column prop="checkTotalCount" label="检测数" align="center" />
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
</el-table>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<h5>外键标准检测分析</h5>
<el-table
:data="fk_key"
border
tooltip-effect="dark"
:max-height="250"
style="width: 100%; margin: 15px 0;"
>
<el-collapse @change="handleChange" class="ncoll"><!--加上ncoll-->
<el-collapse-item name="1">
<template slot="title"><span class="tit">不合规明细</span></template>
<el-table :data="no_pk_key" border style="width: 100%">
<el-table-column prop="caseName" label="用例名称" align="center" />
<el-table-column prop="source" label="数据源" align="center" />
<el-table-column prop="tableName" label="数据表" align="center" />
<el-table-column prop="standardColumn" label="标准字段" align="center" />
<el-table-column prop="standardPk" label="标准字段是否主键" align="center" />
<el-table-column prop="trueColumn" label="实际字段" align="center" />
<el-table-column prop="truePk" label="实际字段是否主键" align="center" />
<el-table-column prop="notDetail" label="不合规原因" align="center" />
</el-table>
</el-collapse-item>
</el-collapse>
</div><!--dbox-->
<div class="dbox">
<div class="ttitle">外键标准检测用例</div><!--ttitle 三级标题-->
<el-table :data="fk_key" border style="width: 100%">
<el-table-column prop="ruleName" label="用例名称" align="center" />
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
<el-table-column prop="ruleTableName" label="数据表" align="center" />
<el-table-column prop="checkTotalCount" label="核查数" align="center" />
<el-table-column prop="version" label="版本" align="center" />
<el-table-column prop="checkTotalCount" label="检测数" align="center" />
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
</el-table>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<h5>完整性标准检测分析</h5>
<el-table
:data="integrity"
border
tooltip-effect="dark"
:max-height="250"
style="width: 100%; margin: 15px 0;"
>
<el-table-column prop="ruleName" label="用例名称" align="center" />
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
<el-table-column prop="ruleTableName" label="数据表" align="center" />
<el-table-column prop="checkTotalCount" label="核查数" align="center" />
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
<el-collapse @change="handleChange" class="ncoll"><!--加上ncoll-->
<el-collapse-item name="1">
<template slot="title"><span class="tit">不合规明细</span></template>
<el-table :data="no_fk_key" border style="width: 100%">
<el-table-column prop="caseName" label="用例名称" align="center" />
<el-table-column prop="source" label="数据源" align="center" />
<el-table-column prop="tableName" label="数据表" align="center" />
<el-table-column prop="standardColumn" label="标准字段" align="center" />
<el-table-column prop="standardFk" label="标准字段是否外键" align="center" />
<el-table-column prop="trueColumn" label="实际字段" align="center" />
<el-table-column prop="trueFk" label="实际字段是否外键" align="center" />
<el-table-column prop="notDetail" label="不合规原因" align="center" />
</el-table>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<h5>准确性标准检测分析</h5>
<el-table
:data="accuracy"
border
tooltip-effect="dark"
:max-height="250"
style="width: 100%; margin: 15px 0;"
>
<el-table-column prop="ruleName" label="用例名称" align="center" />
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
<el-table-column prop="ruleTableName" label="数据表" align="center" />
<el-table-column prop="checkTotalCount" label="核查数" align="center" />
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
</el-table>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<h5>一致性标准检测分析</h5>
<el-table
:data="consistent"
border
tooltip-effect="dark"
:max-height="250"
style="width: 100%; margin: 15px 0;"
>
<el-table-column prop="ruleName" label="用例名称" align="center" />
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
<el-table-column prop="ruleTableName" label="数据表" align="center" />
<el-table-column prop="checkTotalCount" label="核查数" align="center" />
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
</el-table>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<h5>正则表达式标准检测分析</h5>
<el-table
:data="regular"
border
tooltip-effect="dark"
:max-height="250"
style="width: 100%; margin: 15px 0;"
>
<el-table-column prop="ruleName" label="用例名称" align="center" />
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
<el-table-column prop="ruleTableName" label="数据表" align="center" />
<el-table-column prop="checkTotalCount" label="核查数" align="center" />
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
</el-table>
</el-col>
</el-row>
</div>
</el-card>
</el-collapse-item>
</el-collapse>
</div><!--dbox-->
</el-card><!--el-card-->
</div><!--app-main-->
</div><!--hasTagsView-->
</div>
</template>
@ -352,22 +262,44 @@
//
table_key: [],
no_table_key: [],
//
length_key: [],
no_length_key: [],
//
null_key: [],
no_null_key: [],
//
pk_key: [],
no_pk_key: [],
//
fk_key: [],
no_fk_key: [],
//
integrity: [],
no_integrity: [],
//
accuracy: [],
no_accuracy: [],
//
consistent: [],
no_consistent: [],
//
regular: [],
no_regular: [],
//
checkTotalCount: null,
//
checkTimeConsuming: null,
//
checkErrorCount: null,
//
checkTotalCount_new: null,
//
checkTimeConsuming_new: null,
//
checkErrorCount_new: null,
like: true,
value1: 4154.564,
@ -382,30 +314,43 @@
mounted () {
//
this.table_key = dataJson.caseType.table_key
this.no_table_key = dataJson.caseType.no_table_key
//
this.length_key = dataJson.caseType.length_key
this.no_length_key = dataJson.caseType.no_length_key
//
this.null_key = dataJson.caseType.null_key
this.no_null_key = dataJson.caseType.no_null_key
//
this.pk_key = dataJson.caseType.pk_key
this.no_pk_key = dataJson.caseType.no_pk_key
//
this.fk_key = dataJson.caseType.fk_key
this.no_fk_key = dataJson.caseType.no_fk_key
//
this.integrity = dataJson.caseType.integrity
this.no_integrity = dataJson.caseType.no_integrity
//
this.accuracy = dataJson.caseType.accuracy
this.no_accuracy = dataJson.caseType.no_accuracy
//
this.consistent = dataJson.caseType.consistent
this.no_consistent = dataJson.caseType.no_consistent
//
this.regular = dataJson.caseType.regular
this.no_regular = dataJson.caseType.no_regular
//
this.spanArr1 = []
this.spanArr2 = []
this.reportTableData1 = dataJson.dataAmount.reportTableData1
this.reportTableData2 = dataJson.dataAmount.reportTableData2
this.reportTableData1 = dataJson.dataReport.reportTableData1
this.reportTableData2 = dataJson.dataReport.reportTableData2
this.rowspan1()
this.rowspan2()
this.checkTotalCount_new = dataJson.checkTotalCount
this.checkTimeConsuming_new = dataJson.checkTimeConsuming
this.checkErrorCount_new = dataJson.checkErrorCount
},
methods: {
showCard() {
@ -415,9 +360,9 @@
this.spanArr1 = []
this.spanArr2 = []
// this.getReportData1()
this.getReportData2()
this.getReportData3()
this.date = moment(this.queryParams.checkDate).format('YYYY年MM月DD日')
// this.getReportData2()
// this.getReportData3()
// this.date = moment(this.queryParams.checkDate).format('YYYYMMDD')
},
// getReportData1() {
// getReportBySource({ checkDate: this.queryParams.checkDate }).then(response => {
@ -521,6 +466,15 @@
this.timelinessTableData = response.data.timeliness
}
})
},
exportWord() {
const filePath = './static/your-word-document.docx'
const link = document.createElement('a')
link.href = filePath
link.download = '测结果报告.docx'
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
}
}
}

View File

@ -0,0 +1,750 @@
<template>
<div class="app-container">
<el-card class="box-card" shadow="always">
<div slot="header" class="clearfix">
<div style="float: right;">
<el-button type="primary" size="mini" icon="el-icon-download" @click="exportWord">导出</el-button>
<el-button size="mini" icon="el-icon-back" @click="showCard">返回</el-button>
</div>
</div>
<div class="body-wrapper">
<h4 style="text-align: center;">{{ date }}{{ data.checkReportType === 'structure' ? '结构符合性' : '内容符合性' }}检测结果报告</h4>
<el-divider content-position="left"><h3>检测指标统计分析</h3></el-divider>
<el-row :gutter="20">
<div>
<el-row :gutter="20">
<el-col :span="6">
<div>
<el-statistic
group-separator=","
:precision="0"
:value="data.checkTotalCount"
title="检测表总数"
></el-statistic>
</div>
</el-col>
<el-col :span="6">
<div>
<el-statistic title="检测总耗时(毫秒)">
<template slot="formatter">
{{ data.checkTimeConsuming }}
</template>
</el-statistic>
</div>
</el-col>
<el-col :span="6">
<div>
<el-statistic
group-separator=","
:precision="0"
decimal-separator="."
:value="data.checkErrorCount"
title="不合规总数"
>
<template slot="prefix">
<i class="el-icon-s-flag" style="color: red"></i>
</template>
</el-statistic>
</div>
</el-col>
<el-col :span="6">
<div>
<el-statistic title="不合规率">
<template slot="prefix">
<span class="like">
<i class="el-icon-star-on" style="color:red"></i>
</span>
</template>
<template slot="formatter">
{{ (data.checkErrorCount / data.checkTotalCount * 100) + '%' }}
</template>
</el-statistic>
</div>
</el-col>
</el-row>
</div>
</el-row>
<el-divider content-position="left"><h3>不合规统计分析</h3></el-divider>
<el-row :gutter="20">
<el-col :span="10">
<h5>按数据源统计不合规数量</h5>
<el-table
:data="reportTableData1"
:span-method="objectSpanMethod1"
border
default-expand-all
:max-height="250"
style="width: 100%; margin: 15px 0;"
>
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
<el-table-column prop="ruleLevelName" label="规则级别" align="center" />
<el-table-column prop="checkErrorCount" label="不合规数" align="center">
<template slot-scope="scope">
<el-progress :percentage="scope.row.checkErrorCount" :stroke-width="20" :text-inside="true" :color="colorFormat(scope.row.ruleLevelName)" :format="cellFormat" />
</template>
</el-table-column>
</el-table>
</el-col>
<el-col :span="10" :offset="4">
<h5>按用例类型统计不合规数量</h5>
<el-table
:data="reportTableData2"
:span-method="objectSpanMethod2"
border
tooltip-effect="dark"
:max-height="250"
style="width: 100%; margin: 15px 0;"
>
<el-table-column prop="ruleTypeName" label="用例类型" align="center" />
<el-table-column prop="ruleName" label="用例名称" align="center" />
<el-table-column prop="checkErrorCount" label="不合规数" align="center">
<template slot-scope="scope">
<el-badge :value="scope.row.ruleLevelName" :type="typeFormat(scope.row.ruleLevelName)">
{{ scope.row.checkErrorCount }}
</el-badge>
</template>
</el-table-column>
</el-table>
</el-col>
</el-row>
<el-divider content-position="left"><h3>用例类型统计分析</h3></el-divider>
<el-row>
<el-col :span="24">
<h5>表字段标准检测</h5>
<el-table
:data="table_key"
border
tooltip-effect="dark"
:max-height="250"
style="width: 100%; margin: 15px 0;"
>
<el-table-column prop="ruleName" label="用例名称" align="center" />
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
<el-table-column prop="version" label="版本" align="center" />
<el-table-column prop="checkTotalCount" label="检测数" align="center" />
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
</el-table>
<el-collapse accordion>
<el-collapse-item>
<template slot="title">
<i class="el-icon-document"></i>&nbsp;不合规明细
</template>
<el-table
:data="no_table_key"
border
tooltip-effect="dark"
:max-height="250"
style="width: 100%; margin: 15px 0;"
>
<el-table-column prop="caseName" label="用例名称" align="center" />
<el-table-column prop="source" label="数据源" align="center" />
<el-table-column prop="tableName" label="数据表" align="center" />
<el-table-column prop="trueTableName" label="实际表名" align="center" />
<el-table-column prop="standardTableName" label="标准表名" align="center" />
<el-table-column prop="trueColumn" label="实际字段" align="center" />
<el-table-column prop="standardColumn" label="标准字段" align="center" />
<el-table-column prop="notDetail" label="不合规原因" align="center" />
</el-table>
</el-collapse-item>
</el-collapse>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<h5>长度标准检测</h5>
<el-table
:data="length_key"
border
tooltip-effect="dark"
:max-height="250"
style="width: 100%; margin: 15px 0;"
>
<el-table-column prop="ruleName" label="用例名称" align="center" />
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
<el-table-column prop="version" label="版本" align="center" />
<el-table-column prop="checkTotalCount" label="检测数" align="center" />
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
</el-table>
<el-collapse accordion>
<el-collapse-item>
<template slot="title">
<i class="el-icon-document"></i>&nbsp;不合规明细
</template>
<el-table
:data="no_length_key"
border
tooltip-effect="dark"
:max-height="250"
style="width: 100%; margin: 15px 0;"
>
<el-table-column prop="caseName" label="用例名称" align="center" />
<el-table-column prop="source" label="数据源" align="center" />
<el-table-column prop="tableName" label="数据表" align="center" />
<el-table-column prop="standardColumn" label="标准字段" align="center" />
<el-table-column prop="standardLength" label="标准长度" align="center" />
<el-table-column prop="trueLength" label="实际长度" align="center" />
<el-table-column prop="notDetail" label="不合规原因" align="center" />
</el-table>
</el-collapse-item>
</el-collapse>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<h5>空值标准检测</h5>
<el-table
:data="null_key"
border
tooltip-effect="dark"
:max-height="250"
style="width: 100%; margin: 15px 0;"
>
<el-table-column prop="ruleName" label="用例名称" align="center" />
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
<el-table-column prop="version" label="版本" align="center" />
<el-table-column prop="checkTotalCount" label="检测数" align="center" />
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
</el-table>
<el-collapse accordion>
<el-collapse-item>
<template slot="title">
<i class="el-icon-document"></i>&nbsp;不合规明细
</template>
<el-table
:data="no_null_key"
border
tooltip-effect="dark"
:max-height="250"
style="width: 100%; margin: 15px 0;"
>
<el-table-column prop="caseName" label="用例名称" align="center" />
<el-table-column prop="source" label="数据源" align="center" />
<el-table-column prop="tableName" label="数据表" align="center" />
<el-table-column prop="standardColumn" label="标准字段" align="center" />
<el-table-column prop="standardNull" label="标准字段是否空值" align="center" />
<el-table-column prop="trueColumn" label="实际字段" align="center" />
<el-table-column prop="trueNull" label="实际字段是否空值" align="center" />
<el-table-column prop="notDetail" label="不合规原因" align="center" />
</el-table>
</el-collapse-item>
</el-collapse>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<h5>主键标准检测</h5>
<el-table
:data="pk_key"
border
tooltip-effect="dark"
:max-height="250"
style="width: 100%; margin: 15px 0;"
>
<el-table-column prop="ruleName" label="用例名称" align="center" />
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
<el-table-column prop="version" label="版本" align="center" />
<el-table-column prop="checkTotalCount" label="检测数" align="center" />
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
</el-table>
<el-collapse accordion>
<el-collapse-item>
<template slot="title">
<i class="el-icon-document"></i>&nbsp;不合规明细
</template>
<el-table
:data="no_pk_key"
border
tooltip-effect="dark"
:max-height="250"
style="width: 100%; margin: 15px 0;"
>
<el-table-column prop="caseName" label="用例名称" align="center" />
<el-table-column prop="source" label="数据源" align="center" />
<el-table-column prop="tableName" label="数据表" align="center" />
<el-table-column prop="standardColumn" label="标准字段" align="center" />
<el-table-column prop="standardPk" label="标准字段是否主键" align="center" />
<el-table-column prop="trueColumn" label="实际字段" align="center" />
<el-table-column prop="truePk" label="实际字段是否主键" align="center" />
<el-table-column prop="notDetail" label="不合规原因" align="center" />
</el-table>
</el-collapse-item>
</el-collapse>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<h5>外键标准检测</h5>
<el-table
:data="fk_key"
border
tooltip-effect="dark"
:max-height="250"
style="width: 100%; margin: 15px 0;"
>
<el-table-column prop="ruleName" label="用例名称" align="center" />
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
<el-table-column prop="version" label="版本" align="center" />
<el-table-column prop="checkTotalCount" label="检测数" align="center" />
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
</el-table>
<el-collapse accordion>
<el-collapse-item>
<template slot="title">
<i class="el-icon-document"></i>&nbsp;不合规明细
</template>
<el-table
:data="no_fk_key"
border
tooltip-effect="dark"
:max-height="250"
style="width: 100%; margin: 15px 0;"
>
<el-table-column prop="caseName" label="用例名称" align="center" />
<el-table-column prop="source" label="数据源" align="center" />
<el-table-column prop="tableName" label="数据表" align="center" />
<el-table-column prop="standardColumn" label="标准字段" align="center" />
<el-table-column prop="standardFk" label="标准字段是否外键" align="center" />
<el-table-column prop="trueColumn" label="实际字段" align="center" />
<el-table-column prop="trueFk" label="实际字段是否外键" align="center" />
<el-table-column prop="notDetail" label="不合规原因" align="center" />
</el-table>
</el-collapse-item>
</el-collapse>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<h5>完整性标准检测</h5>
<el-table
:data="integrity"
border
tooltip-effect="dark"
:max-height="250"
style="width: 100%; margin: 15px 0;"
>
<el-table-column prop="ruleName" label="用例名称" align="center" />
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
<el-table-column prop="version" label="版本" align="center" />
<el-table-column prop="checkTotalCount" label="检测数" align="center" />
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
</el-table>
<el-collapse accordion>
<el-collapse-item>
<template slot="title">
<i class="el-icon-document"></i>&nbsp;不合规明细
</template>
<el-table
:data="no_integrity"
border
tooltip-effect="dark"
:max-height="250"
style="width: 100%; margin: 15px 0;"
>
<el-table-column prop="caseName" label="用例名称" align="center" />
<el-table-column prop="source" label="数据源" align="center" />
<el-table-column prop="tableName" label="数据表" align="center" />
<el-table-column prop="trueColumn" label="字段名称" align="center" />
<el-table-column prop="notDetail" label="不合规原因" align="center" />
</el-table>
</el-collapse-item>
</el-collapse>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<h5>准确性标准检测</h5>
<el-table
:data="accuracy"
border
tooltip-effect="dark"
:max-height="250"
style="width: 100%; margin: 15px 0;"
>
<el-table-column prop="ruleName" label="用例名称" align="center" />
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
<el-table-column prop="version" label="版本" align="center" />
<el-table-column prop="checkTotalCount" label="检测数" align="center" />
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
</el-table>
<el-collapse accordion>
<el-collapse-item>
<template slot="title">
<i class="el-icon-document"></i>&nbsp;不合规明细
</template>
<el-table
:data="no_accuracy"
border
tooltip-effect="dark"
:max-height="250"
style="width: 100%; margin: 15px 0;"
>
<el-table-column prop="caseName" label="用例名称" align="center" />
<el-table-column prop="source" label="数据源" align="center" />
<el-table-column prop="tableName" label="数据表" align="center" />
<el-table-column prop="trueColumn" label="字段名称" align="center" />
<el-table-column prop="notDetail" label="不合规原因" align="center" />
</el-table>
</el-collapse-item>
</el-collapse>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<h5>一致性标准检测</h5>
<el-table
:data="consistent"
border
tooltip-effect="dark"
:max-height="250"
style="width: 100%; margin: 15px 0;"
>
<el-table-column prop="ruleName" label="用例名称" align="center" />
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
<el-table-column prop="version" label="版本" align="center" />
<el-table-column prop="checkTotalCount" label="检测数" align="center" />
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
</el-table>
<el-collapse accordion>
<el-collapse-item>
<template slot="title">
<i class="el-icon-document"></i>&nbsp;不合规明细
</template>
<el-table
:data="no_consistent"
border
tooltip-effect="dark"
:max-height="250"
style="width: 100%; margin: 15px 0;"
>
<el-table-column prop="caseName" label="用例名称" align="center" />
<el-table-column prop="source" label="数据源" align="center" />
<el-table-column prop="tableName" label="数据表" align="center" />
<el-table-column prop="trueColumn" label="字段名称" align="center" />
<el-table-column prop="notDetail" label="不合规原因" align="center" />
</el-table>
</el-collapse-item>
</el-collapse>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<h5>正则表达式标准检测</h5>
<el-table
:data="regular"
border
tooltip-effect="dark"
:max-height="250"
style="width: 100%; margin: 15px 0;"
>
<el-table-column prop="ruleName" label="用例名称" align="center" />
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
<el-table-column prop="version" label="版本" align="center" />
<el-table-column prop="checkTotalCount" label="检测数" align="center" />
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
</el-table>
<el-collapse accordion>
<el-collapse-item>
<template slot="title">
<i class="el-icon-document"></i>&nbsp;不合规明细
</template>
<el-table
:data="no_regular"
border
tooltip-effect="dark"
:max-height="250"
style="width: 100%; margin: 15px 0;"
>
<el-table-column prop="caseName" label="用例名称" align="center" />
<el-table-column prop="source" label="数据源" align="center" />
<el-table-column prop="tableName" label="数据表" align="center" />
<el-table-column prop="trueColumn" label="字段名称" align="center" />
<el-table-column prop="dataColumn" label="字段值" align="center" />
<el-table-column prop="notDetail" label="不合规原因" align="center" />
</el-table>
</el-collapse-item>
</el-collapse>
</el-col>
</el-row>
</div>
</el-card>
</div>
</template>
<script>
import { getReportBySource, getReportByType, getReportDetail } from '@/api/quality/checkreport'
import moment from 'moment'
import dataJson from './Data.json'
export default {
name: 'CheckReportStructure',
props: {
data: {
type: Object,
default: function() {
return {}
}
}
},
data() {
return {
queryParams: {
checkDate: ''
},
pickerOption: {
disabledDate(date) {
return date.getTime() > Date.now()
}
},
date: '',
//
showOptions: {
data: {},
showList: true,
showDetail: false
},
spanArr1: [],
position1: 0,
reportTableData1: [],
spanArr2: [],
position2: 0,
reportTableData2: [],
//
uniqueTableData: [],
//
integrityTableData: [],
//
accuracyTableData: [],
//
consistentTableData: [],
//
relevanceTableData: [],
//
timelinessTableData: [],
//
table_key: [],
no_table_key: [],
//
length_key: [],
no_length_key: [],
//
null_key: [],
no_null_key: [],
//
pk_key: [],
no_pk_key: [],
//
fk_key: [],
no_fk_key: [],
//
integrity: [],
no_integrity: [],
//
accuracy: [],
no_accuracy: [],
//
consistent: [],
no_consistent: [],
//
regular: [],
no_regular: [],
//
checkTotalCount: null,
//
checkTimeConsuming: null,
//
checkErrorCount: null,
like: true,
value1: 4154.564,
totalTables: 1314,
title: '增长人数'
}
},
created() {
this.queryParams.checkDate = moment(this.data.checkDate).format('YYYY-MM-DD')
this.handleQuery()
},
mounted () {
//
this.table_key = dataJson.caseType.table_key
this.no_table_key = dataJson.caseType.no_table_key
//
this.length_key = dataJson.caseType.length_key
this.no_length_key = dataJson.caseType.no_length_key
//
this.null_key = dataJson.caseType.null_key
this.no_null_key = dataJson.caseType.no_null_key
//
this.pk_key = dataJson.caseType.pk_key
this.no_pk_key = dataJson.caseType.no_pk_key
//
this.fk_key = dataJson.caseType.fk_key
this.no_fk_key = dataJson.caseType.no_fk_key
//
this.integrity = dataJson.caseType.integrity
this.no_integrity = dataJson.caseType.no_integrity
//
this.accuracy = dataJson.caseType.accuracy
this.no_accuracy = dataJson.caseType.no_accuracy
//
this.consistent = dataJson.caseType.consistent
this.no_consistent = dataJson.caseType.no_consistent
//
this.regular = dataJson.caseType.regular
this.no_regular = dataJson.caseType.no_regular
//
this.spanArr1 = []
this.spanArr2 = []
this.reportTableData1 = dataJson.dataReport.reportTableData1
this.reportTableData2 = dataJson.dataReport.reportTableData2
this.rowspan1()
this.rowspan2()
},
methods: {
showCard() {
this.$emit('showCard', this.showOptions)
},
handleQuery() {
this.spanArr1 = []
this.spanArr2 = []
// this.getReportData1()
this.getReportData2()
this.getReportData3()
this.date = moment(this.queryParams.checkDate).format('YYYY年MM月DD日')
},
// getReportData1() {
// getReportBySource({ checkDate: this.queryParams.checkDate }).then(response => {
// if (response.success) {
// this.reportTableData1 = response.data
// console.log('reportTableData1==', this.reportTableData1)
// this.rowspan1()
// }
// })
// },
// getReportData2() {
// getReportByType({ checkDate: this.queryParams.checkDate }).then(response => {
// if (response.success) {
// this.reportTableData2 = response.data
// console.log('this.reportTableData2===', this.reportTableData2)
// this.rowspan2()
// }
// })
// },
rowspan1() {
this.reportTableData1.forEach((item, index) => {
if (index === 0) {
this.spanArr1.push(1)
this.position1 = 0
} else {
if (this.reportTableData1[index].ruleSourceId === this.reportTableData1[index - 1].ruleSourceId) {
this.spanArr1[this.position1] += 1
this.spanArr1.push(0)
} else {
this.spanArr1.push(1)
this.position1 = index
}
}
})
},
objectSpanMethod1({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 0) {
const _row = this.spanArr1[rowIndex]
const _col = _row > 0 ? 1 : 0
return {
rowspan: _row,
colspan: _col
}
}
},
rowspan2() {
this.reportTableData2.forEach((item, index) => {
if (index === 0) {
this.spanArr2.push(1)
this.position2 = 0
} else {
if (this.reportTableData2[index].ruleTypeId === this.reportTableData2[index - 1].ruleTypeId) {
this.spanArr2[this.position2] += 1
this.spanArr2.push(0)
} else {
this.spanArr2.push(1)
this.position2 = index
}
}
})
},
objectSpanMethod2({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 0) {
const _row = this.spanArr2[rowIndex]
const _col = _row > 0 ? 1 : 0
return {
rowspan: _row,
colspan: _col
}
}
},
colorFormat(level) {
if (level === '低') {
return '#409eff'
} else if (level === '中') {
return '#e6a23c'
} else {
return '#f56c6c'
}
},
cellFormat(percentage) {
return `${percentage}`
},
typeFormat(level) {
if (level === '低') {
return 'primary'
} else if (level === '中') {
return 'warning'
} else {
return 'danger'
}
},
getReportData3() {
getReportDetail({ checkDate: this.queryParams.checkDate }).then(response => {
if (response.success) {
this.uniqueTableData = response.data.unique
this.integrityTableData = response.data.integrity
this.accuracyTableData = response.data.accuracy
this.consistentTableData = response.data.consistent
this.relevanceTableData = response.data.relevance
this.timelinessTableData = response.data.timeliness
}
})
},
exportWord() {
const filePath = './static/your-word-document.docx'
const link = document.createElement('a')
link.href = filePath
link.download = '测结果报告.docx'
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
}
}
}
</script>
<style lang="scss" scoped>
.el-card ::v-deep .el-card__body {
height: calc(100vh - 230px);
overflow-y: auto;
}
.form-inline {
::v-deep .el-form-item {
margin-bottom: 0px;
}
}
::v-deep .el-badge__content {
margin-top: 10px;
right: 0px;
}
::v-deep .el-table__header th {
background-color: #f5f5f5 !important;
}
</style>

View File

@ -0,0 +1,462 @@
<template>
<div class="app-container">
<div class="hasTagsView">
<div class="app-main">
<el-card class="box-card">
<div slot="header" class="clearfix">
<div style="float: right;">
<el-button type="primary" size="mini" icon="el-icon-download" @click="exportWord">导出</el-button>
<el-button size="mini" icon="el-icon-back" @click="showCard">返回</el-button>
</div>
</div><!--header-->
<h4 class="ftitle">内容符合性检测结果报告</h4><!--ftitle 一级标题-->
<div class="stitle">检测指标统计分析</div><!--stitle 二级标题-->
<div class="test-list">
<div class="list">
<div class="title"><img src="../../../assets/images/j-icon1.svg"><span class="tit">检测表条数</span></div>
<!-- <div class="figure">{{ data.checkTotalCount_new }}</div>-->
<div class="figure" >{{ checkTotalCount_new }}</div>
</div>
<div class="list">
<div class="title"><img src="../../../assets/images/j-icon2.svg"><span class="tit">检测总耗时(毫秒)</span></div>
<!-- <div class="figure">{{ data.checkTimeConsuming_new }}</div>-->
<div class="figure">{{ checkTimeConsuming_new }}</div>
</div>
<div class="list">
<div class="title"><img src="../../../assets/images/j-icon3.svg"><span class="tit">不合规总数</span></div>
<!-- <div class="figure">{{ data.checkErrorCount_new }}</div>-->
<div class="figure">{{ checkErrorCount_new }}</div>
</div>
<div class="list">
<div class="title"><img src="../../../assets/images/j-icon4.svg"><span class="tit">不合规率</span></div>
<div class="figure">{{ (checkErrorCount_new / checkTotalCount_new * 100).toFixed(2) + '%' }}</div>
<!-- <div class="figure">{{ data.checkTotalCount_new }}</div>-->
</div>
</div><!--test-list-->
<div class="stitle">不合规统计分析</div><!--stitle 二级标题-->
<el-row :gutter="24">
<el-col :span="12">
<div class="ttitle">按数据源统计不合规数量</div><!--ttitle 三级标题-->
<el-table :data="reportTableData1" border style="width: 100%" class="btable"><!--加上btable-->
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
<el-table-column prop="tableSum" label="检测条数" align="center" />
<el-table-column prop="tableTime" label="耗时(毫秒)" align="center" />
<el-table-column prop="ruleLevelName" label="版本" align="center" />
<el-table-column prop="checkErrorCount" label="不合规数" align="center">
<template slot-scope="scope">
<el-progress :percentage="scope.row.checkErrorCount" :stroke-width="20" :text-inside="true" :color="colorFormat(scope.row.ruleLevelName)" :format="cellFormat" />
</template>
</el-table-column>
</el-table>
</el-col>
<el-col :span="12">
<div class="ttitle">按用例类型统计不合规数量</div><!--ttitle 三级标题-->
<el-table :data="reportTableData2" border style="width: 100%" class="btable"><!--加上btable-->
<!-- <el-table-column prop="ta1" label="数据源">数据平台</el-table-column>-->
<el-table-column prop="ruleName" label="用例名称"></el-table-column>
<el-table-column prop="checkErrorCount" label="不合规数">
</el-table-column>
</el-table>
</el-col>
</el-row>
<div class="stitle">用例类型统计分析</div><!--stitle 二级标题-->
<div class="dbox" >
<div class="ttitle">完整性标准检测用例</div><!--ttitle 三级标题-->
<el-table :data="integrity" border style="width: 100%">
<el-table-column prop="ruleName" label="用例名称" align="center" />
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
<el-table-column prop="version" label="版本" align="center" />
<el-table-column prop="checkTotalTime" label="耗时(毫秒)" align="center" />
<el-table-column prop="checkTotalCount" label="检测数" align="center" />
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
</el-table>
<el-collapse @change="handleChange" class="ncoll"><!--加上ncoll-->
<el-collapse-item name="1">
<template slot="title"><span class="tit">不合规明细</span></template>
<el-table :data="no_integrity" border style="width: 100%">
<el-table-column prop="caseName" label="用例名称" align="center" />
<el-table-column prop="source" label="数据源" align="center" />
<el-table-column prop="tableName" label="数据表" align="center" />
<el-table-column prop="trueColumn" label="字段名称" align="center" />
<el-table-column prop="notDetail" label="不合规原因" align="center" />
</el-table>
</el-collapse-item>
</el-collapse>
</div><!--dbox-->
<div class="dbox" >
<div class="ttitle">准确性标准检测用例</div><!--ttitle 三级标题-->
<el-table :data="accuracy" border style="width: 100%">
<el-table-column prop="ruleName" label="用例名称" align="center" />
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
<el-table-column prop="version" label="版本" align="center" />
<el-table-column prop="checkTotalTime" label="耗时(毫秒)" align="center" />
<el-table-column prop="checkTotalCount" label="检测数" align="center" />
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
</el-table>
<el-collapse @change="handleChange" class="ncoll"><!--加上ncoll-->
<el-collapse-item name="1">
<template slot="title"><span class="tit">不合规明细</span></template>
<el-table :data="no_accuracy" border style="width: 100%">
<el-table-column prop="caseName" label="用例名称" align="center" />
<el-table-column prop="source" label="数据源" align="center" />
<el-table-column prop="tableName" label="数据表" align="center" />
<el-table-column prop="trueColumn" label="字段名称" align="center" />
<el-table-column prop="notDetail" label="不合规原因" align="center" />
</el-table>
</el-collapse-item>
</el-collapse>
</div><!--dbox-->
<div class="dbox" >
<div class="ttitle">一致性标准检测用例</div><!--ttitle 三级标题-->
<el-table :data="consistent" border style="width: 100%">
<el-table-column prop="ruleName" label="用例名称" align="center" />
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
<el-table-column prop="version" label="版本" align="center" />
<el-table-column prop="checkTotalTime" label="耗时(毫秒)" align="center" />
<el-table-column prop="checkTotalCount" label="检测数" align="center" />
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
</el-table>
<el-collapse @change="handleChange" class="ncoll"><!--加上ncoll-->
<el-collapse-item name="1">
<template slot="title"><span class="tit">不合规明细</span></template>
<el-table :data="no_consistent" border style="width: 100%">
<el-table-column prop="caseName" label="用例名称" align="center" />
<el-table-column prop="source" label="数据源" align="center" />
<el-table-column prop="tableName" label="数据表" align="center" />
<el-table-column prop="trueColumn" label="字段名称" align="center" />
<el-table-column prop="notDetail" label="不合规原因" align="center" />
</el-table>
</el-collapse-item>
</el-collapse>
</div><!--dbox-->
<div class="dbox" >
<div class="ttitle">正则表达式标准检测用例</div><!--ttitle 三级标题-->
<el-table :data="regular" border style="width: 100%">
<el-table-column prop="ruleName" label="用例名称" align="center" />
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
<el-table-column prop="version" label="版本" align="center" />
<el-table-column prop="checkTotalTime" label="耗时(毫秒)" align="center" />
<el-table-column prop="checkTotalCount" label="检测数" align="center" />
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
</el-table>
<el-collapse @change="handleChange" class="ncoll"><!--加上ncoll-->
<el-collapse-item name="1">
<template slot="title"><span class="tit">不合规明细</span></template>
<el-table :data="no_regular" border style="width: 100%">
<el-table-column prop="caseName" label="用例名称" align="center" />
<el-table-column prop="source" label="数据源" align="center" />
<el-table-column prop="tableName" label="数据表" align="center" />
<el-table-column prop="trueColumn" label="字段名称" align="center" />
<!-- <el-table-column prop="dataColumn" label="字段值" align="center" />-->
<el-table-column prop="notDetail" label="不合规原因" align="center" />
</el-table>
</el-collapse-item>
</el-collapse>
</div><!--dbox-->
</el-card><!--el-card-->
</div><!--app-main-->
</div><!--hasTagsView-->
</div>
</template>
<script>
// import { getReportBySource, getReportByType, C } from '@/api/quality/checkreport'
import moment from 'moment'
import dataJson from './Data_content.json'
export default {
name: 'CheckReportStructureontent',
props: {
data: {
type: Object,
default: function() {
return {}
}
}
},
data() {
return {
queryParams: {
checkDate: ''
},
pickerOption: {
disabledDate(date) {
return date.getTime() > Date.now()
}
},
date: '',
//
showOptions: {
data: {},
showList: true,
showDetail_content: false
},
spanArr1: [],
position1: 0,
reportTableData1: [],
spanArr2: [],
position2: 0,
reportTableData2: [],
//
uniqueTableData: [],
//
integrityTableData: [],
//
accuracyTableData: [],
//
consistentTableData: [],
//
relevanceTableData: [],
//
timelinessTableData: [],
//
table_key: [],
no_table_key: [],
//
length_key: [],
no_length_key: [],
//
null_key: [],
no_null_key: [],
//
pk_key: [],
no_pk_key: [],
//
fk_key: [],
no_fk_key: [],
//
integrity: [],
no_integrity: [],
//
accuracy: [],
no_accuracy: [],
//
consistent: [],
no_consistent: [],
//
regular: [],
no_regular: [],
//
checkTotalCount: null,
//
checkTimeConsuming: null,
//
checkErrorCount: null,
//
checkTotalCount_new: null,
//
checkTimeConsuming_new: null,
//
checkErrorCount_new: null,
like: true,
value1: 4154.564,
totalTables: 1314,
title: '增长人数'
}
},
created() {
this.queryParams.checkDate = moment(this.data.checkDate).format('YYYY-MM-DD')
this.handleQuery()
},
mounted () {
//
this.table_key = dataJson.caseType.table_key
this.no_table_key = dataJson.caseType.no_table_key
//
this.length_key = dataJson.caseType.length_key
this.no_length_key = dataJson.caseType.no_length_key
//
this.null_key = dataJson.caseType.null_key
this.no_null_key = dataJson.caseType.no_null_key
//
this.pk_key = dataJson.caseType.pk_key
this.no_pk_key = dataJson.caseType.no_pk_key
//
this.fk_key = dataJson.caseType.fk_key
this.no_fk_key = dataJson.caseType.no_fk_key
//
this.integrity = dataJson.caseType.integrity
this.no_integrity = dataJson.caseType.no_integrity
//
this.accuracy = dataJson.caseType.accuracy
this.no_accuracy = dataJson.caseType.no_accuracy
//
this.consistent = dataJson.caseType.consistent
this.no_consistent = dataJson.caseType.no_consistent
//
this.regular = dataJson.caseType.regular
this.no_regular = dataJson.caseType.no_regular
//
this.spanArr1 = []
this.spanArr2 = []
this.reportTableData1 = dataJson.dataReport.reportTableData1
this.reportTableData2 = dataJson.dataReport.reportTableData2
this.rowspan1()
this.rowspan2()
this.checkTotalCount_new = dataJson.checkTotalCount
this.checkTimeConsuming_new = dataJson.checkTimeConsuming
this.checkErrorCount_new = dataJson.checkErrorCount
},
methods: {
showCard() {
this.$emit('showCard', this.showOptions)
},
handleQuery() {
this.spanArr1 = []
this.spanArr2 = []
// this.getReportData1()
// this.getReportData2()
// this.getReportData3()
// this.date = moment(this.queryParams.checkDate).format('YYYYMMDD')
},
// getReportData1() {
// getReportBySource({ checkDate: this.queryParams.checkDate }).then(response => {
// if (response.success) {
// this.reportTableData1 = response.data
// console.log('reportTableData1==', this.reportTableData1)
// this.rowspan1()
// }
// })
// },
// getReportData2() {
// getReportByType({ checkDate: this.queryParams.checkDate }).then(response => {
// if (response.success) {
// this.reportTableData2 = response.data
// console.log('this.reportTableData2===', this.reportTableData2)
// this.rowspan2()
// }
// })
// },
rowspan1() {
this.reportTableData1.forEach((item, index) => {
if (index === 0) {
this.spanArr1.push(1)
this.position1 = 0
} else {
if (this.reportTableData1[index].ruleSourceId === this.reportTableData1[index - 1].ruleSourceId) {
this.spanArr1[this.position1] += 1
this.spanArr1.push(0)
} else {
this.spanArr1.push(1)
this.position1 = index
}
}
})
},
objectSpanMethod1({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 0) {
const _row = this.spanArr1[rowIndex]
const _col = _row > 0 ? 1 : 0
return {
rowspan: _row,
colspan: _col
}
}
},
rowspan2() {
this.reportTableData2.forEach((item, index) => {
if (index === 0) {
this.spanArr2.push(1)
this.position2 = 0
} else {
if (this.reportTableData2[index].ruleTypeId === this.reportTableData2[index - 1].ruleTypeId) {
this.spanArr2[this.position2] += 1
this.spanArr2.push(0)
} else {
this.spanArr2.push(1)
this.position2 = index
}
}
})
},
objectSpanMethod2({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 0) {
const _row = this.spanArr2[rowIndex]
const _col = _row > 0 ? 1 : 0
return {
rowspan: _row,
colspan: _col
}
}
},
colorFormat(level) {
if (level === '低') {
return '#409eff'
} else if (level === '中') {
return '#e6a23c'
} else {
return '#f56c6c'
}
},
cellFormat(percentage) {
return `${percentage}`
},
typeFormat(level) {
if (level === '低') {
return 'primary'
} else if (level === '中') {
return 'warning'
} else {
return 'danger'
}
},
// getReportData3() {
// getReportDetail({ checkDate: this.queryParams.checkDate }).then(response => {
// if (response.success) {
// this.uniqueTableData = response.data.unique
// this.integrityTableData = response.data.integrity
// this.accuracyTableData = response.data.accuracy
// this.consistentTableData = response.data.consistent
// this.relevanceTableData = response.data.relevance
// this.timelinessTableData = response.data.timeliness
// }
// })
// },
exportWord() {
const filePath = './static/your-word-document.docx'
const link = document.createElement('a')
link.href = filePath
link.download = '测结果报告.docx'
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
}
}
}
</script>
<style lang="scss" scoped>
.el-card ::v-deep .el-card__body {
height: calc(100vh - 230px);
overflow-y: auto;
}
.form-inline {
::v-deep .el-form-item {
margin-bottom: 0px;
}
}
::v-deep .el-badge__content {
margin-top: 10px;
right: 0px;
}
::v-deep .el-table__header th {
background-color: #f5f5f5 !important;
}
</style>

View File

@ -0,0 +1,396 @@
<template>
<div class="app-container">
<div class="hasTagsView">
<div class="app-main">
<el-card class="box-card">
<div slot="header" class="clearfix">
<div style="float: right;">
<el-button type="primary" size="mini" icon="el-icon-download" @click="exportWord">导出</el-button>
<el-button size="mini" icon="el-icon-back" @click="showCard">返回</el-button>
</div>
</div><!--header-->
<h4 class="ftitle">关联符合性检测结果报告</h4><!--ftitle 一级标题-->
<div class="stitle">检测指标统计分析</div><!--stitle 二级标题-->
<div class="test-list">
<div class="list">
<div class="title"><img src="../../../assets/images/j-icon1.svg"><span class="tit">检测表总数</span></div>
<!-- <div class="figure">{{ data.checkTotalCount_new }}</div>-->
<div class="figure" >{{ checkTotalCount_new }}</div>
</div>
<div class="list">
<div class="title"><img src="../../../assets/images/j-icon2.svg"><span class="tit">检测总耗时(毫秒)</span></div>
<!-- <div class="figure">{{ data.checkTimeConsuming_new }}</div>-->
<div class="figure">{{ checkTimeConsuming_new }}</div>
</div>
<div class="list">
<div class="title"><img src="../../../assets/images/j-icon3.svg"><span class="tit">不合规总数</span></div>
<!-- <div class="figure">{{ data.checkErrorCount_new }}</div>-->
<div class="figure">{{ checkErrorCount_new }}</div>
</div>
<div class="list">
<div class="title"><img src="../../../assets/images/j-icon4.svg"><span class="tit">不合规率</span></div>
<div class="figure">{{ (checkErrorCount_new / checkTotalCount_new * 100).toFixed(2) + '%' }}</div>
<!-- <div class="figure">{{ data.checkTotalCount_new }}</div>-->
</div>
</div><!--test-list-->
<div class="stitle">不合规统计分析</div><!--stitle 二级标题-->
<el-row :gutter="24">
<el-col :span="12">
<div class="ttitle">按数据源统计不合规数量</div><!--ttitle 三级标题-->
<el-table :data="reportTableData1" border style="width: 100%" class="btable"><!--加上btable-->
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
<el-table-column prop="tableSum" label="检测表数" align="center" />
<el-table-column prop="tableTime" label="耗时(毫秒)" align="center" />
<el-table-column prop="ruleLevelName" label="版本" align="center" />
<el-table-column prop="checkErrorCount" label="不合规数" align="center">
<template slot-scope="scope">
<el-progress :percentage="scope.row.checkErrorCount" :stroke-width="20" :text-inside="true" :color="colorFormat(scope.row.ruleLevelName)" :format="cellFormat" />
</template>
</el-table-column>
</el-table>
</el-col>
<el-col :span="12">
<div class="ttitle">按用例类型统计不合规数量</div><!--ttitle 三级标题-->
<el-table :data="reportTableData2" border style="width: 100%" class="btable"><!--加上btable-->
<!-- <el-table-column prop="ta1" label="数据源">数据平台</el-table-column>-->
<el-table-column prop="ruleName" label="用例名称"></el-table-column>
<el-table-column prop="checkErrorCount" label="不合规数">
</el-table-column>
</el-table>
</el-col>
</el-row>
<div class="stitle">用例类型统计分析</div><!--stitle 二级标题-->
<div class="dbox">
<div class="ttitle">关联性检测用例</div><!--ttitle 三级标题-->
<el-table :data="relevancData" border style="width: 100%">
<el-table-column prop="ruleName" label="用例名称" align="center" />
<el-table-column prop="ruleSourceName" label="数据源" align="center" />
<el-table-column prop="version" label="版本" align="center" />
<el-table-column prop="checkTotalTime" label="耗时(毫秒)" align="center" />
<el-table-column prop="checkTotalCount" label="检测数" align="center" />
<el-table-column prop="checkErrorCount" label="不合规数" align="center" />
</el-table>
<el-collapse @change="handleChange" class="ncoll"><!--加上ncoll-->
<el-collapse-item name="1">
<template slot="title"><span class="tit">不合规明细</span></template>
<el-table :data="no_relevancData" border style="width: 100%">
<el-table-column prop="caseName" label="用例名称" align="center" />
<el-table-column prop="source" label="数据源" align="center" />
<el-table-column prop="tableName" label="标准数据表" align="center" />
<el-table-column prop="notDetail" label="不合规原因" align="center" />
</el-table>
</el-collapse-item>
</el-collapse>
</div><!--dbox-->
</el-card><!--el-card-->
</div><!--app-main-->
</div><!--hasTagsView-->
</div>
</template>
<script>
// import { getReportBySource, getReportByType, getReportDetail } from '@/api/quality/checkreport'
import moment from 'moment'
import dataJson from './Data_relevance.json'
export default {
name: 'CheckReportStructureRelevance',
props: {
data: {
type: Object,
default: function() {
return {}
}
}
},
data() {
return {
queryParams: {
checkDate: ''
},
pickerOption: {
disabledDate(date) {
return date.getTime() > Date.now()
}
},
date: '',
//
showOptions: {
data: {},
showList: true,
showDetail_relevance: false
},
spanArr1: [],
position1: 0,
reportTableData1: [],
spanArr2: [],
position2: 0,
reportTableData2: [],
//
uniqueTableData: [],
//
integrityTableData: [],
//
accuracyTableData: [],
//
consistentTableData: [],
//
relevanceTableData: [],
//
timelinessTableData: [],
//
table_key: [],
no_table_key: [],
//
length_key: [],
no_length_key: [],
//
null_key: [],
no_null_key: [],
//
pk_key: [],
no_pk_key: [],
//
fk_key: [],
no_fk_key: [],
//
integrity: [],
no_integrity: [],
//
accuracy: [],
no_accuracy: [],
//
consistent: [],
no_consistent: [],
//
regular: [],
no_regular: [],
//
relevancData: [],
no_relevanceData: [],
//
checkTotalCount: null,
//
checkTimeConsuming: null,
//
checkErrorCount: null,
//
checkTotalCount_new: null,
//
checkTimeConsuming_new: null,
//
checkErrorCount_new: null,
like: true,
value1: 4154.564,
totalTables: 1314,
title: '增长人数'
}
},
created() {
this.queryParams.checkDate = moment(this.data.checkDate).format('YYYY-MM-DD')
this.handleQuery()
},
mounted () {
//
this.table_key = dataJson.caseType.table_key
this.no_table_key = dataJson.caseType.no_table_key
//
this.length_key = dataJson.caseType.length_key
this.no_length_key = dataJson.caseType.no_length_key
//
this.null_key = dataJson.caseType.null_key
this.no_null_key = dataJson.caseType.no_null_key
//
this.pk_key = dataJson.caseType.pk_key
this.no_pk_key = dataJson.caseType.no_pk_key
//
this.fk_key = dataJson.caseType.fk_key
this.no_fk_key = dataJson.caseType.no_fk_key
//
this.integrity = dataJson.caseType.integrity
this.no_integrity = dataJson.caseType.no_integrity
//
this.accuracy = dataJson.caseType.accuracy
this.no_accuracy = dataJson.caseType.no_accuracy
//
this.consistent = dataJson.caseType.consistent
this.no_consistent = dataJson.caseType.no_consistent
//
this.regular = dataJson.caseType.regular
this.no_regular = dataJson.caseType.no_regular
this.relevancData = dataJson.caseType.relevancData
this.no_relevancData = dataJson.caseType.no_relevancData
//
this.spanArr1 = []
this.spanArr2 = []
this.reportTableData1 = dataJson.dataReport.reportTableData1
this.reportTableData2 = dataJson.dataReport.reportTableData2
this.rowspan1()
this.rowspan2()
this.checkTotalCount_new = dataJson.checkTotalCount
this.checkTimeConsuming_new = dataJson.checkTimeConsuming
this.checkErrorCount_new = dataJson.checkErrorCount
},
methods: {
showCard() {
this.$emit('showCard', this.showOptions)
},
handleQuery() {
this.spanArr1 = []
this.spanArr2 = []
// this.getReportData1()
// this.getReportData2()
// this.getReportData3()
// this.date = moment(this.queryParams.checkDate).format('YYYYMMDD')
},
// getReportData1() {
// getReportBySource({ checkDate: this.queryParams.checkDate }).then(response => {
// if (response.success) {
// this.reportTableData1 = response.data
// console.log('reportTableData1==', this.reportTableData1)
// this.rowspan1()
// }
// })
// },
// getReportData2() {
// getReportByType({ checkDate: this.queryParams.checkDate }).then(response => {
// if (response.success) {
// this.reportTableData2 = response.data
// console.log('this.reportTableData2===', this.reportTableData2)
// this.rowspan2()
// }
// })
// },
rowspan1() {
this.reportTableData1.forEach((item, index) => {
if (index === 0) {
this.spanArr1.push(1)
this.position1 = 0
} else {
if (this.reportTableData1[index].ruleSourceId === this.reportTableData1[index - 1].ruleSourceId) {
this.spanArr1[this.position1] += 1
this.spanArr1.push(0)
} else {
this.spanArr1.push(1)
this.position1 = index
}
}
})
},
objectSpanMethod1({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 0) {
const _row = this.spanArr1[rowIndex]
const _col = _row > 0 ? 1 : 0
return {
rowspan: _row,
colspan: _col
}
}
},
rowspan2() {
this.reportTableData2.forEach((item, index) => {
if (index === 0) {
this.spanArr2.push(1)
this.position2 = 0
} else {
if (this.reportTableData2[index].ruleTypeId === this.reportTableData2[index - 1].ruleTypeId) {
this.spanArr2[this.position2] += 1
this.spanArr2.push(0)
} else {
this.spanArr2.push(1)
this.position2 = index
}
}
})
},
objectSpanMethod2({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 0) {
const _row = this.spanArr2[rowIndex]
const _col = _row > 0 ? 1 : 0
return {
rowspan: _row,
colspan: _col
}
}
},
colorFormat(level) {
if (level === '低') {
return '#409eff'
} else if (level === '中') {
return '#e6a23c'
} else {
return '#f56c6c'
}
},
cellFormat(percentage) {
return `${percentage}`
},
typeFormat(level) {
if (level === '低') {
return 'primary'
} else if (level === '中') {
return 'warning'
} else {
return 'danger'
}
},
// getReportData3() {
// getReportDetail({ checkDate: this.queryParams.checkDate }).then(response => {
// if (response.success) {
// this.uniqueTableData = response.data.unique
// this.integrityTableData = response.data.integrity
// this.accuracyTableData = response.data.accuracy
// this.consistentTableData = response.data.consistent
// this.relevanceTableData = response.data.relevance
// this.timelinessTableData = response.data.timeliness
// }
// })
// },
exportWord() {
const filePath = './static/your-word-document.docx'
const link = document.createElement('a')
link.href = filePath
link.download = '测结果报告.docx'
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
}
}
}
</script>
<style lang="scss" scoped>
.el-card ::v-deep .el-card__body {
height: calc(100vh - 230px);
overflow-y: auto;
}
.form-inline {
::v-deep .el-form-item {
margin-bottom: 0px;
}
}
::v-deep .el-badge__content {
margin-top: 10px;
right: 0px;
}
::v-deep .el-table__header th {
background-color: #f5f5f5 !important;
}
</style>

View File

@ -1,132 +1,570 @@
{
"caseType":
{
"caseType": {
"table_key": [
{
"ruleName":"表字段标准检测分析",
"ruleName": "表字段标准检测用例",
"ruleSourceName": "数据平台",
"ruleTableName": "全表",
"checkTotalCount":"500",
"checkErrorCount":"28"
"version": "1.0",
"checkTotalCount": "78",
"checkErrorCount": "1"
},
{
"ruleName": "表字段标准检测用例",
"ruleSourceName": "演示应用",
"ruleTableName": "全表",
"version": "1.0",
"checkTotalCount": "449",
"checkErrorCount": "4"
}
],
"no_table_key": [
{
"caseName": "表字段标准检测用例",
"source": "数据平台",
"tableName": "TABLE_A",
"trueTableName": "TABLE_A",
"standardTableName": "TABLE_A",
"trueColumn": "column_AAA",
"standardColumn": "column_AAC",
"notDetail": "字段名与标准不一致"
},
{
"caseName": "表字段标准检测用例",
"source": "演示应用",
"tableName": "TABLE_D",
"trueTableName": "TABLE_D",
"standardTableName": "TABLE_K",
"trueColumn": "",
"standardColumn": "",
"notDetail": "表名与标准不一致"
},
{
"caseName": "表字段标准检测用例",
"source": "演示应用",
"tableName": "TABLE_E",
"trueTableName": "TABLE_E",
"standardTableName": "TABLE_E",
"trueColumn": "columnE",
"standardColumn": "column_E",
"notDetail": "字段名与标准不一致"
},
{
"caseName": "表字段标准检测用例",
"source": "演示应用",
"tableName": "TABLE_F",
"trueTableName": "TABLE_F",
"standardTableName": "TABLE_F",
"trueColumn": "columnF",
"standardColumn": "column_F",
"notDetail": "字段名与标准不一致"
},
{
"caseName": "表字段标准检测用例",
"source": "演示应用",
"tableName": "TABLE_G",
"trueTableName": "TABLE_G",
"standardTableName": "TABLE_G",
"trueColumn": "columnG",
"standardColumn": "column_G",
"notDetail": "字段名与标准不一致"
}
],
"length_key": [
{
"ruleName":"长度标准检测分析",
"ruleSourceName":"数据平台",
"ruleName": "长度标准检测用例",
"ruleSourceName": "演示应用",
"ruleTableName": "全表",
"checkTotalCount":"500",
"checkErrorCount":"28"
"version": "1.0",
"checkTotalCount": "449",
"checkErrorCount": "10"
}
],
"no_length_key": [
{
"caseName": "长度标准检测用例",
"source": "演示应用",
"tableName": "TABLE_A",
"standardColumn": "column_C",
"standardLength": "200",
"trueLength": "2000",
"notDetail": "字段长度不符合标准约束"
},{
"caseName": "长度标准检测用例",
"source": "演示应用",
"tableName": "TABLE_B",
"standardColumn": "column_C",
"standardLength": "100",
"trueLength": "150",
"notDetail": "字段长度不符合标准约束"
},{
"caseName": "长度标准检测用例",
"source": "演示应用",
"tableName": "TABLE_C",
"standardColumn": "column_C",
"standardLength": "200",
"trueLength": "4000",
"notDetail": "字段长度不符合标准约束"
},{
"caseName": "长度标准检测用例",
"source": "演示应用",
"tableName": "TABLE_D",
"standardColumn": "column_C",
"standardLength": "200",
"trueLength": "2000",
"notDetail": "字段长度不符合标准约束"
},{
"caseName": "长度标准检测用例",
"source": "演示应用",
"tableName": "TABLE_E",
"standardColumn": "column_C",
"standardLength": "200",
"trueLength": "2000",
"notDetail": "字段长度不符合标准约束"
},{
"caseName": "长度标准检测用例",
"source": "演示应用",
"tableName": "TABLE_F",
"standardColumn": "column_C",
"standardLength": "200",
"trueLength": "2000",
"notDetail": "字段长度不符合标准约束"
},{
"caseName": "长度标准检测用例",
"source": "演示应用",
"tableName": "TABLE_G",
"standardColumn": "column_C",
"standardLength": "2000",
"trueLength": "4000",
"notDetail": "字段长度不符合标准约束"
},{
"caseName": "长度标准检测用例",
"source": "演示应用",
"tableName": "TABLE_H",
"standardColumn": "column_C",
"standardLength": "100",
"trueLength": "150",
"notDetail": "字段长度不符合标准约束"
},{
"caseName": "长度标准检测用例",
"source": "演示应用",
"tableName": "TABLE_I",
"standardColumn": "column_C",
"standardLength": "200",
"trueLength": "2000",
"notDetail": "字段长度不符合标准约束"
},{
"caseName": "长度标准检测用例",
"source": "演示应用",
"tableName": "TABLE_J",
"standardColumn": "column_C",
"standardLength": "200",
"trueLength": "2000",
"notDetail": "字段长度不符合标准约束"
}
],
"pk_key": [
{
"ruleName":"主键标准检测分析",
"ruleName": "主键标准检测用例",
"ruleSourceName": "数据平台",
"ruleTableName": "全表",
"checkTotalCount":"500",
"checkErrorCount":"28"
"version": "1.0",
"checkTotalCount": "78",
"checkErrorCount": "8"
},{
"ruleName": "主键标准检测用例",
"ruleSourceName": "演示应用",
"ruleTableName": "全表",
"version": "1.0",
"checkTotalCount": "449",
"checkErrorCount": "5"
}
],
"no_pk_key": [
{
"caseName": "主键标准检测用例",
"source": "演示应用",
"tableName": "TABLE_A",
"standardColumn": "column_AAA",
"trueColumn": "column_AAA",
"truePk": "是",
"notDetail": "表字段不符合主键标准约束",
"standardPk": "否"
},
{
"caseName": "主键标准检测用例",
"source": "演示应用",
"tableName": "TABLE_W",
"standardColumn": "column_AAA",
"trueColumn": "column_AAA",
"truePk": "否",
"notDetail": "表字段不符合主键标准约束",
"standardPk": "是"
},{
"caseName": "主键标准检测用例",
"source": "演示应用",
"tableName": "TABLE_Q",
"standardColumn": "column_AAA",
"trueColumn": "column_AAA",
"truePk": "是",
"notDetail": "表字段不符合主键标准约束",
"standardPk": "否"
},
{
"caseName": "主键标准检测用例",
"source": "演示应用",
"tableName": "TABLE_E",
"standardColumn": "column_AAA",
"trueColumn": "column_AAA",
"truePk": "否",
"notDetail": "表字段不符合主键标准约束",
"standardPk": "是"
},{
"caseName": "主键标准检测用例",
"source": "演示应用",
"tableName": "TABLE_R",
"standardColumn": "column_AAA",
"trueColumn": "column_AAA",
"truePk": "是",
"notDetail": "表字段不符合主键标准约束",
"standardPk": "否"
},
{
"caseName": "主键标准检测用例",
"source": "数据平台",
"tableName": "TABLE_A",
"standardColumn": "column_AAA",
"trueColumn": "column_AAA",
"truePk": "否",
"notDetail": "表字段不符合主键标准约束",
"standardPk": "是"
},{
"caseName": "主键标准检测用例",
"source": "数据平台",
"tableName": "TABLE_D",
"standardColumn": "column_AAA",
"trueColumn": "column_AAA",
"truePk": "是",
"notDetail": "表字段不符合主键标准约束",
"standardPk": "否"
},
{
"caseName": "主键标准检测用例",
"source": "数据平台",
"tableName": "TABLE_W",
"standardColumn": "column_AAA",
"trueColumn": "column_AAA",
"truePk": "否",
"notDetail": "表字段不符合主键标准约束",
"standardPk": "是"
},{
"caseName": "主键标准检测用例",
"source": "数据平台",
"tableName": "TABLE_G",
"standardColumn": "column_AAA",
"trueColumn": "column_AAA",
"truePk": "是",
"notDetail": "表字段不符合主键标准约束",
"standardPk": "否"
},
{
"caseName": "主键标准检测用例",
"source": "数据平台",
"tableName": "TABLE_L",
"standardColumn": "column_AAA",
"trueColumn": "column_AAA",
"truePk": "否",
"notDetail": "表字段不符合主键标准约束",
"standardPk": "是"
},{
"caseName": "主键标准检测用例",
"source": "数据平台",
"tableName": "TABLE_P",
"standardColumn": "column_AAA",
"trueColumn": "column_AAA",
"truePk": "是",
"notDetail": "表字段不符合主键标准约束",
"standardPk": "否"
},
{
"caseName": "主键标准检测用例",
"source": "数据平台",
"tableName": "TABLE_U",
"standardColumn": "column_AAA",
"trueColumn": "column_AAA",
"truePk": "否",
"notDetail": "表字段不符合主键标准约束",
"standardPk": "是"
},{
"caseName": "主键标准检测用例",
"source": "数据平台",
"tableName": "TABLE_M",
"standardColumn": "column_AAA",
"trueColumn": "column_AAA",
"truePk": "是",
"notDetail": "表字段不符合主键标准约束",
"standardPk": "否"
}
],
"null_key": [
{
"ruleName":"空值标准检测分析",
"ruleSourceName":"数据平台",
"ruleName": "空值标准检测用例",
"ruleSourceName": "演示应用",
"ruleTableName": "全表",
"checkTotalCount":"500",
"checkErrorCount":"28"
"version": "1.0",
"checkTotalCount": "449",
"checkErrorCount": "9"
}
],
"no_null_key": [
{
"caseName": "空值标准检测用例",
"source": "演示应用",
"tableName": "TABLE_A",
"standardColumn": "column_AAA",
"trueColumn": "column_AAA",
"trueNull": "是",
"notDetail": "表字段不符合空值校验",
"standardNull": "否"
},
{
"caseName": "空值标准检测用例",
"source": "演示应用",
"tableName": "TABLE_B",
"standardColumn": "column_BBB",
"trueColumn": "column_BBB",
"trueNull": "否",
"notDetail": "表字段不符合空值校验",
"standardNull": "是"
},{
"caseName": "空值标准检测用例",
"source": "演示应用",
"tableName": "TABLE_Y",
"standardColumn": "column_AAA",
"trueColumn": "column_AAA",
"trueNull": "是",
"notDetail": "表字段不符合空值校验",
"standardNull": "否"
},
{
"caseName": "空值标准检测用例",
"source": "演示应用",
"tableName": "TABLE_W",
"standardColumn": "column_BBB",
"trueColumn": "column_BBB",
"trueNull": "否",
"notDetail": "表字段不符合空值校验",
"standardNull": "是"
},{
"caseName": "空值标准检测用例",
"source": "演示应用",
"tableName": "TABLE_H",
"standardColumn": "column_AAA",
"trueColumn": "column_AAA",
"trueNull": "是",
"notDetail": "表字段不符合空值校验",
"standardNull": "否"
},
{
"caseName": "空值标准检测用例",
"source": "演示应用",
"tableName": "TABLE_UU",
"standardColumn": "column_BBB",
"trueColumn": "column_BBB",
"trueNull": "否",
"notDetail": "表字段不符合空值校验",
"standardNull": "是"
},{
"caseName": "空值标准检测用例",
"source": "演示应用",
"tableName": "TABLE_QQ",
"standardColumn": "column_AAA",
"trueColumn": "column_AAA",
"trueNull": "是",
"notDetail": "表字段不符合空值校验",
"standardNull": "否"
},
{
"caseName": "空值标准检测用例",
"source": "演示应用",
"tableName": "TABLE_PP",
"standardColumn": "column_BBB",
"trueColumn": "column_BBB",
"trueNull": "否",
"notDetail": "表字段不符合空值校验",
"standardNull": "是"
},{
"caseName": "空值标准检测用例",
"source": "演示应用",
"tableName": "TABLE_K",
"standardColumn": "column_BBB",
"trueColumn": "column_BBB",
"trueNull": "否",
"notDetail": "表字段不符合空值校验",
"standardNull": "是"
}
],
"fk_key": [
{
"ruleName":"外键标准检测分析",
"ruleSourceName":"数据平台",
"ruleName": "外键标准检测用例",
"ruleSourceName": "演示应用",
"ruleTableName": "全表",
"checkTotalCount":"500",
"checkErrorCount":"28"
"version": "1.0",
"checkTotalCount": "449",
"checkErrorCount": "2"
}
],
"no_fk_key": [
{
"caseName": "外键标准检测用例",
"source": "演示应用",
"tableName": "TABLE_A",
"standardColumn": "column_AAA",
"trueColumn": "column_AAA",
"trueFk": "是",
"notDetail": "表字段不符合主键标准约束",
"standardFk": "否"
},
{
"caseName": "外键标准检测用例",
"source": "演示应用",
"tableName": "TABLE_B",
"standardColumn": "column_BBB",
"trueColumn": "column_BBB",
"trueFk": "否",
"notDetail": "表字段不符合外键标准约束",
"standardFk": "是"
}
],
"integrity": [
{
"ruleName":"完整性标准检测分析",
"ruleName": "完整性标准检测用例",
"ruleSourceName": "数据平台",
"ruleTableName": "全表",
"version": "1.0",
"checkTotalCount": "500",
"checkErrorCount": "28"
}
],
"no_integrity":[{
"caseName": "完整性标准检测用例",
"source": "数据平台",
"tableName": "TABLE_A",
"trueColumn": "column_AAA",
"notDetail": "数据不符合标准表字段非空约束"
}],
"accuracy": [
{
"ruleName":"准确性标准检测分析",
"ruleName": "准确性标准检测用例",
"ruleSourceName": "数据平台",
"ruleTableName": "全表",
"version": "1.0",
"checkTotalCount": "500",
"checkErrorCount": "28"
}
],
"no_accuracy": [{
"caseName": "准确性标准检测用例",
"source": "数据平台",
"tableName": "TABLE_A",
"trueColumn": "column_AAA",
"notDetail": "数据不符合标准表字段长度约束"
}],
"consistent": [
{
"ruleName":"一致性标准检测分析",
"ruleName": "一致性标准检测用例",
"ruleSourceName": "数据平台",
"ruleTableName": "全表",
"version": "1.0",
"checkTotalCount": "500",
"checkErrorCount": "28"
}
],
"no_consistent": [{
"caseName": "一致性标准检测用例",
"source": "数据平台",
"tableName": "TABLE_A",
"trueColumn": "column_AAA",
"notDetail": "数据不符合标准值域范围"
}],
"regular": [
{
"ruleName":"正则表达式标准检测分析",
"ruleName": "正则表达式标准检测用例",
"ruleSourceName": "数据平台",
"ruleTableName": "全表",
"version": "1.0",
"checkTotalCount": "500",
"checkErrorCount": "28"
}
]
],
"no_regular": [{
"caseName": "手机号码验证用例",
"source": "数据平台",
"tableName": "TABLE_A",
"trueColumn": "column_AAA",
"dataColumn": "271727122",
"notDetail": "数据不符合标准正则表达式约束"
}]
},
"dataAmount":
{
"dataReport": {
"reportTableData1": [
{
"ruleSourceId": 1,
"ruleSourceName": "数据平台",
"ruleLevelName": "低",
"tableSum": "78",
"tableTime": "3879",
"ruleLevelName": "1.0",
"checkErrorCount": 9
},
{
"ruleSourceId": 1,
"ruleSourceName":"数据平台",
"ruleLevelName": "高",
"checkErrorCount":56
},
{
"ruleSourceId":1,
"ruleSourceName":"数据平台",
"ruleLevelName": "中",
"checkErrorCount":78
"ruleSourceName": "演示应用",
"tableSum": "449",
"tableTime": "15264",
"ruleLevelName": "1.0",
"checkErrorCount": 30
}
],
"reportTableData2": [
{
"checkErrorCount":7,
"ruleTypeId":"1",
"ruleTypeName":"数据平台",
"ruleLevelName":"中",
"ruleName": "表字段标准检测分析"
},
{
"checkErrorCount":20,
"ruleTypeId":"1",
"ruleTypeName":"数据平台",
"ruleLevelName":"高",
"ruleName": "长度标准检测分析"
},
{
"checkErrorCount": 5,
"ruleTypeId": "1",
"ruleTypeName": "数据平台",
"ruleLevelName":"低",
"ruleName": "空值标准检测分析"
"ruleLevelName": "中",
"ruleName": "表字段标准检测用例"
},
{
"checkErrorCount": 10,
"ruleTypeId": "1",
"ruleTypeName": "数据平台",
"ruleLevelName": "中",
"ruleName": "长度标准检测用例"
},
{
"checkErrorCount": 9,
"ruleTypeId": "1",
"ruleTypeName": "数据平台",
"ruleLevelName": "中",
"ruleName": "空值标准检测用例"
},
{
"checkErrorCount": 13,
"ruleTypeId": "1",
"ruleTypeName": "数据平台",
"ruleLevelName": "中",
"ruleName": "主键标准检测用例"
},
{
"checkErrorCount": 2,
"ruleTypeId": "1",
"ruleTypeName": "数据平台",
"ruleLevelName": "中",
"ruleName": "外键标准检测用例"
}
]
}
},
"checkTotalCount": "527",
"checkTimeConsuming": "19,143",
"checkErrorCount": "39"
}

View File

@ -0,0 +1,123 @@
{
"caseType": {
"integrity": [
{
"ruleName": "完整性标准检测用例",
"ruleSourceName": "演示应用",
"ruleTableName": "全表",
"version": "1.0",
"checkTotalTime": "9034",
"checkTotalCount": "130264",
"checkErrorCount": "1203"
}
],
"no_integrity":[{
"caseName": "完整性标准检测用例",
"source": "演示应用",
"tableName": "TABLE_A",
"trueColumn": "column_AAA",
"notDetail": "数据不符合标准表字段非空约束"
}],
"accuracy": [
{
"ruleName": "准确性标准检测用例",
"ruleSourceName": "演示应用",
"ruleTableName": "全表",
"version": "1.0",
"checkTotalTime": "4645",
"checkTotalCount": "130264",
"checkErrorCount": "691"
}
],
"no_accuracy": [{
"caseName": "准确性标准检测用例",
"source": "演示应用",
"tableName": "TABLE_A",
"trueColumn": "column_AAA",
"notDetail": "数据不符合标准表字段长度约束"
}],
"consistent": [
{
"ruleName": "一致性标准检测用例",
"ruleSourceName": "演示应用",
"ruleTableName": "全表",
"version": "1.0",
"checkTotalTime": "11382",
"checkTotalCount": "130264",
"checkErrorCount": "263"
}
],
"no_consistent": [{
"caseName": "一致性标准检测用例",
"source": "演示应用",
"tableName": "TABLE_A",
"trueColumn": "column_AAA",
"notDetail": "数据不符合标准值域范围"
}],
"regular": [
{
"ruleName": "正则表达式标准检测用例",
"ruleSourceName": "演示应用",
"ruleTableName": "全表",
"version": "1.0",
"checkTotalTime": "14989",
"checkTotalCount": "130264",
"checkErrorCount": "1596"
}
],
"no_regular": [{
"caseName": "手机号码验证用例",
"source": "演示应用",
"tableName": "TABLE_A",
"trueColumn": "column_AAA",
"dataColumn": "271727122",
"notDetail": "数据不符合标准正则表达式约束"
}]
},
"dataReport": {
"reportTableData1": [
{
"ruleSourceId": 1,
"ruleSourceName": "演示应用",
"tableSum": "130264",
"tableTime": "40,050",
"ruleLevelName": "1.0",
"checkErrorCount": "3,753"
}
],
"reportTableData2": [
{
"checkErrorCount": 1203,
"ruleTypeId": "1",
"ruleTypeName": "数据平台",
"ruleLevelName": "中",
"ruleName": "完整性标准检测用例"
},
{
"checkErrorCount": 691,
"ruleTypeId": "1",
"ruleTypeName": "数据平台",
"ruleLevelName": "中",
"ruleName": "准确性标准检测用例"
},
{
"checkErrorCount": 263,
"ruleTypeId": "1",
"ruleTypeName": "数据平台",
"ruleLevelName": "中",
"ruleName": "一致性标准检测用例"
},
{
"checkErrorCount": 1596,
"ruleTypeId": "1",
"ruleTypeName": "数据平台",
"ruleLevelName": "中",
"ruleName": "正则表达式标准检测用例"
}
]
},
"checkTotalCount": "130264",
"checkTimeConsuming": "40,050",
"checkErrorCount": "3753"
}

View File

@ -0,0 +1,47 @@
{
"caseType": {
"relevancData": [
{
"ruleName": "字段关联性检测用例",
"ruleSourceName": "演示应用",
"ruleTableName": "全表",
"version": "1.0",
"checkTotalTime": "9635",
"checkTotalCount": "130264",
"checkErrorCount": "1986"
}
],
"no_relevancData":[{
"caseName": "字段关联性检测用例",
"source": "演示应用",
"tableName": "TABLE_A",
"trueColumn": "column_AAA",
"notDetail": "数据不符合关系符合性测试"
}]
},
"dataReport": {
"reportTableData1": [
{
"ruleSourceId": 1,
"ruleSourceName": "演示应用",
"tableSum": "130264",
"tableTime": "9635",
"ruleLevelName": "1.0",
"checkErrorCount": "1,986"
}
],
"reportTableData2": [
{
"checkErrorCount": 1986,
"ruleTypeId": "1",
"ruleTypeName": "数据平台",
"ruleLevelName": "中",
"ruleName": "字段关联性检测用例"
}
]
},
"checkTotalCount": "130264",
"checkTimeConsuming": "9635",
"checkErrorCount": "1986"
}

View File

@ -6,16 +6,25 @@
<transition name="el-zoom-in-bottom">
<check-report-structure v-if="options.showDetail" :data="options.data" @showCard="showCard" />
</transition>
<transition name="el-zoom-in-bottom">
<check-report-structure-content v-if="options.showDetail_content" :data="options.data" @showCard="showCard" />
</transition>
<transition name="el-zoom-in-bottom">
<check-report-structure-relevance v-if="options.showDetail_relevance" :data="options.data" @showCard="showCard" />
</transition>
</div>
</template>
<script>
import CheckReportList from './CheckReportList'
import CheckReportStructure from './CheckReportStructure'
import CheckReportStructureContent from './CheckReportStructure_content'
import CheckReportStructureRelevance from './CheckReportStructure_relevance'
export default {
name: 'CheckReport',
components: { CheckReportList, CheckReportStructure },
components: { CheckReportList, CheckReportStructure, CheckReportStructureContent, CheckReportStructureRelevance },
data() {
return {
options: {

View File

@ -29,16 +29,16 @@
/>
</el-select>
</el-form-item>
<el-form-item label="用例级别" prop="ruleLevelId">
<el-select v-model="form.ruleLevelId" placeholder="请选择用例级别" style="width: 100%">
<el-option
v-for="item in ruleLevelOptions"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="用例级别" prop="ruleLevelId">-->
<!-- <el-select v-model="form.ruleLevelId" placeholder="请选择用例级别" style="width: 100%">-->
<!-- <el-option-->
<!-- v-for="item in ruleLevelOptions"-->
<!-- :key="item.id"-->
<!-- :label="item.name"-->
<!-- :value="item.id"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
</div>
</el-form>
<el-form v-if="active == 2" ref="form" :model="form" :rules="rules" label-width="80px" style="width: 800px">
@ -58,6 +58,7 @@
filterable
:titles="['备选', '已选']"
:filter-method="filterMethod"
:format="formatTransfer"
filter-placeholder="请输入表名"
:data="transferData"
/>-->
@ -163,7 +164,8 @@ export default {
},
status: '1',
zzStatus: '0', //
transferValue: []
transferValue: [],
transferValueName: []
},
//
rules: {
@ -173,9 +175,6 @@ export default {
ruleItemId: [
{ required: true, message: '核查类型不能为空', trigger: 'change' }
],
ruleLevelId: [
{ required: true, message: '规则级别不能为空', trigger: 'change' }
],
ruleSourceId: [
{ required: true, message: '数据源不能为空', trigger: 'change' }
],
@ -218,20 +217,23 @@ export default {
methods: {
filterMethod(query, item) {
return item.pinyin.indexOf(query) > -1
return item.tableNameStr.indexOf(query) > -1
},
formatTransfer(item) {
return item.label
},
generateData(tableData) {
const data = []
const tableName = tableData
const pinyin = tableData
tableName.forEach((tableData, index) => {
const tableName = tableData // tableData label
tableName.forEach((tableItem) => {
data.push({
label: tableData,
key: tableData,
pinyin: pinyin[index]
label: tableItem.label,
key: tableItem.key,
tableNameStr: tableItem.label // 使 tableItem.label
})
})
this.transferData = data
console.log('this.transferData==', this.transferData)
},
showCard() {
this.$emit('showCard', this.showOptions)
@ -293,8 +295,12 @@ export default {
const tableNameList = []
for (let i = 0; i < response.data.length; i++) {
const tableName = response.data[i].tableName
const tableId = response.data[i].id
const map = {}
if (!tableNameOldList.some((str) => str === tableName)) {
tableNameList.push(tableName)
map.key = tableId
map.label = tableName
tableNameList.push(map)
}
}
await this.generateData(tableNameList)
@ -395,6 +401,7 @@ export default {
},
/** 提交按钮 */
submitForm: function () {
console.log('transferValue', this.form.transferValue)
this.$refs['form'].validate(valid => {
if (valid) {
this.loadingOptions.loading = true

View File

@ -21,16 +21,16 @@
/>
</el-select>
</el-form-item>
<el-form-item label="规则级别">
<el-select v-model="form.ruleLevelId">
<el-option
v-for="item in ruleLevelOptions"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="规则级别">-->
<!-- <el-select v-model="form.ruleLevelId">-->
<!-- <el-option-->
<!-- v-for="item in ruleLevelOptions"-->
<!-- :key="item.id"-->
<!-- :label="item.name"-->
<!-- :value="item.id"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="数据源">
<el-select v-model="form.ruleSourceId">
<el-option

View File

@ -22,16 +22,16 @@
/>
</el-select>
</el-form-item>
<el-form-item label="规则级别" prop="ruleLevelId">
<el-select v-model="form.ruleLevelId" placeholder="请选择规则级别">
<el-option
v-for="item in ruleLevelOptions"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="规则级别" prop="ruleLevelId">-->
<!-- <el-select v-model="form.ruleLevelId" placeholder="请选择规则级别">-->
<!-- <el-option-->
<!-- v-for="item in ruleLevelOptions"-->
<!-- :key="item.id"-->
<!-- :label="item.name"-->
<!-- :value="item.id"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="数据源" prop="ruleSourceId">
<el-select v-model="form.ruleSourceId" placeholder="请选择数据源" @change="sourceSelectChanged">
<el-option
@ -116,9 +116,6 @@ export default {
ruleItemId: [
{ required: true, message: '核查类型不能为空', trigger: 'change' }
],
ruleLevelId: [
{ required: true, message: '规则级别不能为空', trigger: 'change' }
],
ruleSourceId: [
{ required: true, message: '数据源不能为空', trigger: 'change' }
],

View File

@ -215,7 +215,7 @@ export default {
{ prop: 'ruleName', label: '用例名称', show: true },
{ prop: 'ruleType', label: '用例类型', show: true },
// { prop: 'ruleColumn', label: '', show: true, formatter: this.ruleColumnFormatter },
{ prop: 'ruleLevel', label: '用例级别', width: 100, show: true },
// { prop: 'ruleLevel', label: '', width: 100, show: true },
{
prop: 'status',
label: '状态',