diff --git a/examples/sites/demos/mobile/app/tag/style.vue b/examples/sites/demos/mobile/app/tag/style.vue new file mode 100644 index 000000000..fd96dea92 --- /dev/null +++ b/examples/sites/demos/mobile/app/tag/style.vue @@ -0,0 +1,30 @@ + + + + + diff --git a/examples/sites/demos/mobile/app/tag/webdoc/tag.js b/examples/sites/demos/mobile/app/tag/webdoc/tag.js index 248b692a8..7d1a49d81 100644 --- a/examples/sites/demos/mobile/app/tag/webdoc/tag.js +++ b/examples/sites/demos/mobile/app/tag/webdoc/tag.js @@ -49,6 +49,18 @@ export default { 'en-US': 'Mini' }, codeFiles: ['mini.vue'] + }, + { + demoId: 'style', + name: { + 'zh-CN': '样式', + 'en-US': 'style' + }, + desc: { + 'zh-CN': '样式', + 'en-US': 'style' + }, + codeFiles: ['style.vue'] } ] } diff --git a/packages/renderless/src/tag/vue.ts b/packages/renderless/src/tag/vue.ts index d2627110f..9c55936ad 100644 --- a/packages/renderless/src/tag/vue.ts +++ b/packages/renderless/src/tag/vue.ts @@ -26,7 +26,8 @@ export const renderless = ( mini: props.mini, color: props.color, text: props.text, - maxWidth: props.maxWidth + maxWidth: props.maxWidth, + cycleColor: props.cycleColor }) const api: ITagApi = { diff --git a/packages/renderless/types/tag.type.ts b/packages/renderless/types/tag.type.ts index 08d70582b..a85b63ce7 100644 --- a/packages/renderless/types/tag.type.ts +++ b/packages/renderless/types/tag.type.ts @@ -10,6 +10,7 @@ export interface ITagState { color: string mini: boolean maxWidth: string | number + cycleColor: string } export interface ITagApi { diff --git a/packages/theme-mobile/src/tag/index.less b/packages/theme-mobile/src/tag/index.less index 94246e348..33ae8f3fe 100644 --- a/packages/theme-mobile/src/tag/index.less +++ b/packages/theme-mobile/src/tag/index.less @@ -30,6 +30,20 @@ overflow: hidden; text-overflow: ellipsis; + &-round { + background-color: white !important; + + &-cycle { + display: inline-block; + line-height: 100%; + background-color: var(--ti-mobile-tag-color-default); + border-radius: 4px; + width: 8px; + height: 8px; + margin-right: 4px; + } + } + &-mini { line-height: var(--ti-mobile-tag-height-mini); padding: 0 var(--ti-mobile-tag-padding-mini); diff --git a/packages/vue/src/tag/src/index.ts b/packages/vue/src/tag/src/index.ts index 89169679c..5cd6a535b 100644 --- a/packages/vue/src/tag/src/index.ts +++ b/packages/vue/src/tag/src/index.ts @@ -44,7 +44,8 @@ export const tagProps = { maxWidth: { type: [String, Number], default: null - } + }, + cycleColor: String } export default defineComponent({ diff --git a/packages/vue/src/tag/src/mobile.vue b/packages/vue/src/tag/src/mobile.vue index 937459cea..16fd3793e 100644 --- a/packages/vue/src/tag/src/mobile.vue +++ b/packages/vue/src/tag/src/mobile.vue @@ -12,9 +12,19 @@ @@ -27,7 +37,7 @@ import '@opentiny/vue-theme-mobile/tag/index.less' export default defineComponent({ emits: ['click', 'close'], - props: [...props, 'text', 'color', 'width', 'mini', 'maxWidth'], + props: [...props, 'text', 'color', 'width', 'mini', 'maxWidth', 'type', 'cycleColor'], setup(props, context) { return setup({ props, context, renderless, api, h }) as unknown as ITagApi }