diff --git a/components-diy/diy-card-entry.vue b/components-diy/diy-card-entry.vue
new file mode 100644
index 0000000..f245386
--- /dev/null
+++ b/components-diy/diy-card-entry.vue
@@ -0,0 +1,118 @@
+
+
+
+ {{ value.title || '扫名片 · 谈合作' }}
+ {{ value.subtitle }}
+
+
+ {{ value.btnText }}
+
+
+
+
+
+
+
diff --git a/components-diy/diy-card-list.vue b/components-diy/diy-card-list.vue
new file mode 100644
index 0000000..c0bdafc
--- /dev/null
+++ b/components-diy/diy-card-list.vue
@@ -0,0 +1,230 @@
+
+
+
+ {{ value.title }}
+
+
+
+
+
+ {{ (item.name || '名').substring(0, 1) }}
+
+
+ {{ item.name || '未命名名片' }}
+ {{ infoLine(item) }}
+
+ ›
+
+
+
+
+ {{ emptyTip }}
+
+
+
+
+
+
+
+
diff --git a/components-diy/diy-card-self.vue b/components-diy/diy-card-self.vue
new file mode 100644
index 0000000..65e842b
--- /dev/null
+++ b/components-diy/diy-card-self.vue
@@ -0,0 +1,335 @@
+
+
+
+
+ {{ value.loginTip || '登录后这里展示我的名片' }}
+
+ {{ value.loginBtnText || '去登录' }}
+
+
+
+
+
+
+ 我的名片
+
+
+
+
+
+ {{ (card.name || '名').substring(0, 1) }}
+
+
+ {{ card.name || '未命名名片' }}
+ {{ subLine }}
+
+
+
+
+
+ {{ act.label }}
+
+
+
+
+ {{ value.detailBtnText || '查看完整名片' }}
+
+
+
+
+
+ 登录后即可展示我的名片
+
+
+
+
+
+
+
diff --git a/components-diy/diy-card-show.vue b/components-diy/diy-card-show.vue
new file mode 100644
index 0000000..a1daaa7
--- /dev/null
+++ b/components-diy/diy-card-show.vue
@@ -0,0 +1,301 @@
+
+
+
+
+
+
+ {{ (card.name || '名').substring(0, 1) }}
+
+
+ {{ card.name || '未命名名片' }}
+ {{ subLine }}
+
+
+
+
+
+ {{ row.label }}
+ {{ row.value }}
+
+
+
+
+
+ {{ act.label }}
+
+
+
+
+ {{ value.detailBtnText || '查看完整名片' }}
+
+
+
+
+ {{ emptyTip }}
+
+
+
+
+
+
+
diff --git a/components-diy/diy-group.vue b/components-diy/diy-group.vue
index b7ad12e..45ec870 100644
--- a/components-diy/diy-group.vue
+++ b/components-diy/diy-group.vue
@@ -170,6 +170,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+