-        
+    
   )
-}
\ No newline at end of file
+}
diff --git a/packages/devui-vue/devui/tag/index.ts b/packages/devui-vue/devui/tag/index.ts
index 43310285f5c37a45fdbee30011f4ca0b4bb64b92..d3b5f9167e0ce43c41936c8e1b44ab788ae50af9 100644
--- a/packages/devui-vue/devui/tag/index.ts
+++ b/packages/devui-vue/devui/tag/index.ts
@@ -10,7 +10,7 @@ export { Tag }
 export default {
   title: 'Tag 标签',
   category: '数据展示',
-  status: '20%', // TODO: 组件若开发完成则填入"已完成",并删除该注释
+  status: '70%', // TODO: 组件若开发完成则填入"已完成",并删除该注释
   install(app: App): void {
     app.use(Tag as any)
   }
diff --git a/packages/devui-vue/devui/tag/src/tag.scss b/packages/devui-vue/devui/tag/src/tag.scss
index b6b73434648457cfb7cb9e2baa2849b6aa692b4a..0ef0d58515fdb73d651df94f080a92170f70c73e 100644
--- a/packages/devui-vue/devui/tag/src/tag.scss
+++ b/packages/devui-vue/devui/tag/src/tag.scss
@@ -56,4 +56,18 @@ $devui-tag-normal-config: (
       }
     }
   }
+  .remove-button {
+    display: inline-block;
+    margin-left: 12px;
+    font-size: $devui-font-size-icon;
+    cursor: pointer;
+    width: 12px;
+    height: 12px;
+    line-height: 12px;
+    border-radius: 50%;
+    text-align: center;
+    position: relative;
+    top: -0.22em;
+    vertical-align: middle;
+  }
 }
diff --git a/packages/devui-vue/devui/tag/src/tag.tsx b/packages/devui-vue/devui/tag/src/tag.tsx
index 146046f2c0f21c7feccab9a956f51bc42639ea05..7d86daa1677c4e9cd47514ae1c462f15a038a69b 100644
--- a/packages/devui-vue/devui/tag/src/tag.tsx
+++ b/packages/devui-vue/devui/tag/src/tag.tsx
@@ -1,4 +1,4 @@
-import { defineComponent, ref, toRefs } from 'vue'
+import { defineComponent, toRefs, ref, watch, onUnmounted } from 'vue'
 import { tagProps, TagProps } from './tag-types'
 import { useClass, useColor } from './hooks'
 import './tag.scss'
@@ -7,36 +7,56 @@ import './tag.scss'
 export default defineComponent({
   name: 'DTag',
   props: tagProps,
-  emits: ['click'],
+  emits: ['click', 'tagDelete', 'checkedChange'],
   setup(props: TagProps, { slots, emit }) {
-    const { type, color, checked, titleContent } = toRefs(props)
+    const { type, color, checked, titleContent, deletable } = toRefs(props)
     const tagClass = useClass(props)
     const themeColor = useColor(props)
     const tagTitle = titleContent.value || ''
+    const isDefaultTag = () => !type.value && !color.value
+    const isShow = ref(true)
     // 子组件的点击事件
-    const Click = () => {
+    const handleClick = () => {
       emit('click')
     }
-    return () => (
-      
-        
-          {slots.default?.()}
-        
-      
-    )
+    const handleDelete = () => {
+      isShow.value = false
+      emit('tagDelete')
+    }
+    const closeIconEl = () => {
+      return deletable.value ? (
+        
+          {isDefaultTag() ? (
+            
+          ) : (
+            
+          )}
+        
+      ) : null
+    }
+    //tag 的 check 状态改变时触发的事件checkedChange
+    const unWatch = watch(checked, (newVal) => {
+      console.log('checkedChange')
+
+      emit('checkedChange', newVal)
+    })
+    onUnmounted(() => unWatch())
+    return () =>
+      isShow.value && (
+        
+          
+            {slots.default?.()}
+            {closeIconEl()}
+          
+        
+      )
   }
 })
diff --git a/packages/devui-vue/docs/components/tag/index.md b/packages/devui-vue/docs/components/tag/index.md
index 5357412c3924c7ee2bd5a44f029a3c788a5d4537..dfb22a07c749ff1670a5b9406fff66383132941a 100644
--- a/packages/devui-vue/docs/components/tag/index.md
+++ b/packages/devui-vue/docs/components/tag/index.md
@@ -58,7 +58,8 @@ export default defineComponent({
 ```vue
 
   
-    标签二
+    不要点我呀
+    不要点我呀
   
 
 
+
+
+```
+
+:::
+
 ### API
 
 #### Props
 
-|  参数   |   类型    |  默认值   |                    说明                     |              可选值              |    跳转至 Demo    |
-| :-----: | :-------: | :-------: | :-----------------------------------------: | :------------------------------: | :---------------: |
-|  type   | `string`  | 'defalut' | 可选,标签的类型,指定类型后则 color 不生效 | `success\|info\|warning\|danger` | [示例](#基本用法) |
-|  color  | `string`  |    ''     |             可选,标签的主题色              |                                  |                   |
-| checked | `boolean` |   false   |       可选,可选,标签选中的初始状态        |          `true\|false`           | [示例](#基本用法) |
+|     参数     |   类型    |  默认值   |                    说明                     |              可选值              |    跳转至 Demo    |
+| :----------: | :-------: | :-------: | :-----------------------------------------: | :------------------------------: | :---------------: |
+|     type     | `string`  | 'defalut' | 可选,标签的类型,指定类型后则 color 不生效 | `success\|info\|warning\|danger` | [示例](#基本用法) |
+|    color     | `string`  |    ''     |             可选,标签的主题色              |                -                 | [示例](#基本用法) |
+| titleContent | `string`  |    ''     |    可选,设置鼠标悬浮时 title 的显示内容    |                -                 | [示例](#基本用法) |
+|   checked    | `boolean` |   false   |          可选,标签选中的初始状态           |          `true\|false`           | [示例](#可被选中) |
+|  deletable   | `boolean` |   false   |          可选,设置标签是否可删除           |          `true\|false`           | [示例](#可关闭的) |
 
 #### Event
 
-| 名称          | 说明                              |
-| :------------ | --------------------------------- |
-| click         | 点击tag 的时候触发的事件          |
-| tagDelete     | 删除 tag 的时候触发的事件         |
-| checkedChange | tag 的 check 状态改变时触发的事件 |
+| 名称          | 说明                                                        |
+| :------------ | ----------------------------------------------------------- |
+| click         | 点击 tag 的时候触发的事件                                   |
+| tagDelete     | 删除 tag 的时候触发的事件                                   |
+| checkedChange | tag 的 check 状态改变时触发的事件,通过参数接收标签最新状态 |