diff --git a/src/views/xm/core/xmTestPlan/rpt/CompsCard.vue b/src/views/xm/core/xmTestPlan/rpt/CompsCard.vue
new file mode 100644
index 00000000..c88f7e7b
--- /dev/null
+++ b/src/views/xm/core/xmTestPlan/rpt/CompsCard.vue
@@ -0,0 +1,186 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/views/xm/core/xmTestPlan/rpt/CompsSet.vue b/src/views/xm/core/xmTestPlan/rpt/CompsSet.vue
new file mode 100644
index 00000000..1f7fdd53
--- /dev/null
+++ b/src/views/xm/core/xmTestPlan/rpt/CompsSet.vue
@@ -0,0 +1,269 @@
+
+
+
+
+
+
+
![]()
+
+
{{item.menuname}}
+
+ {{item.menudesc}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/xm/core/xmTestPlan/rpt/common.scss b/src/views/xm/core/xmTestPlan/rpt/common.scss
new file mode 100644
index 00000000..0f8c598f
--- /dev/null
+++ b/src/views/xm/core/xmTestPlan/rpt/common.scss
@@ -0,0 +1,10 @@
+.m_container {
+ width: 100%;
+ height: 100%;
+ background: rgb(238, 238, 238);
+ .m_content {
+ padding:30px 18px 18px 18px;
+ overflow: hidden;
+ position: relative;
+ }
+}
\ No newline at end of file
diff --git a/src/views/xm/core/xmTestPlan/rpt/index.scss b/src/views/xm/core/xmTestPlan/rpt/index.scss
new file mode 100644
index 00000000..6af3f521
--- /dev/null
+++ b/src/views/xm/core/xmTestPlan/rpt/index.scss
@@ -0,0 +1,98 @@
+.m_top {
+ background: #fff;
+ display: flex;
+ flex-direction: row;
+ height: 100px;
+ align-items: center;
+ border: 1px solid #ebeef5;
+ margin: 0 10px;
+ .m_avatar {
+ width: 52px;
+ height: 52px;
+ margin-left: 34px;
+ }
+ .m_msg {
+ margin-left: 22px;
+ p:nth-child(1) {
+ font-size: 20px;
+ font-weight: bold;
+ color: #7D7D7D;
+ opacity: 0.92;
+ }
+ p:nth-child(2) {
+ margin-top: 12px;
+ font-size: 14px;
+ font-weight: bold;
+ color: #7D7D7D;
+ opacity: 0.53;
+ }
+ }
+ .m_btn {
+ margin-left: auto;
+ margin-right: 20px;
+ }
+}
+
+
+.m_middle {
+ display: flex;
+ flex-direction: row;
+ margin-top: 20px;
+ height: 280px;
+ .m_left, .m_right {
+ flex: 1;
+ padding: 30px;
+ background: #fff;
+ border: 1px solid #ebeef5;
+ }
+ .m_left {
+ display: flex;
+ flex-direction: row;
+ margin-right: 10px;
+ margin-left: 10px;
+ .m_left_1 {
+ flex: 1.5;
+ p {
+ font-size: 18px;
+ margin-bottom: 20px;
+ }
+ span {
+ font-size: 15px;
+ line-height: 42px;
+ color: #7D7D7D;
+ }
+ }
+ .m_left_2 {
+ flex: 1;
+ img {
+ width: 100%;
+ margin-left: 20px;
+ margin-top: 10px;
+ }
+ }
+ }
+
+ .m_right {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: wrap;
+ margin-right: 10px;
+ .m_right_menu {
+ display: flex;
+ width: 33.3%;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ font-size: 16px;
+ cursor: pointer;
+ img {
+ width: 58px;
+ height: 58px;
+ }
+ span {
+ margin-top: 12px;
+ }
+ }
+ }
+}
+