123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401 |
- <!--双标签组件:标签属性+标签内容-->
- <!--slots-->
- <!--default-->
- <template>
- <div class="lj-tag" :class="setTagCls" @click.stop="handleClickTag">
- <span class="tag-value">
- <slot name="default">
- {{value}}
- </slot>
- </span>
- <template v-if="doubleValue">
- <span class="tag-double-value">
- <slot name="double">
- {{ doubleValue }}
- </slot>
- </span>
- </template>
- </div>
- </template>
- <script>
- export default {
- name: "lj-tag",
- props: {
- // 标签类型=> default: 默认;
- type: {
- type: String,
- default: "default"
- },
- // 标签文本
- value: {
- type: String/Number,
- default: ""
- },
- // 标签副文本,值
- doubleValue: {
- type: String/Number,
- default: ""
- },
- // 是否为圆角
- round: {
- type: Boolean,
- default: false
- },
- // 是否为空心样式
- plain: {
- type: Boolean,
- default: false
- },
- // 是否为浅色模式
- light: {
- type: Boolean,
- default: false
- },
- // 标签尺寸=> large 16px 28px; medium 14px 24px; small:12px 16px; mini:10px 14px;
- size: {
- type: String,
- default: "small"
- },
- // 双标签,值颜色
- valueColor: {
- type: String,
- default: ""
- },
- // 文本颜色
- textColor: {
- type: String,
- default: ""
- },
- // 标签颜色
- color: {
- type: String,
- default: ""
- }
- },
- computed: {
- setTagCls() {
- let cls = ""
- cls += " lj-tab-" + this.type;
- if (this.round) {
- cls += " lj-tag-round"
- }
- if (this.light) {
- cls += " lj-tag-light"
- }
- if (this.plain) {
- cls += " lj-tag-plain"
- }
- if (this.doubleValue) {
- cls += " lj-tag-double"
- }
- cls += " lj-tab-" + this.size
- return cls
- }
- },
- methods: {
- handleClickTag() {
- this.$emit('tagclick')
- }
- }
- }
- </script>
- <style lang="less" scoped>
- .lj-tag {
- display: inline-flex;
- border: 1px solid transparent;
- box-sizing: content-box;
- border-radius: 2px;
- .tag-value {
- flex-shrink: 0;
- }
- .tag-double-value {
- word-break:break-all;
- border-radius: 2px;
- background-color: #fff;
- }
- }
- .lj-tag-plain {
- background-color: unset!important;
- }
- .lj-tab-default {
- background-color: @light-system-gray6;
- border-color: @light-system-gray6;
- .tag-value, .tag-double-value {
- color: @light-label-secondary;
- }
- }
- .lj-tab-primary {
- background-color: @light-system-blue;
- border-color: @light-system-blue;
- // border-color: @musePrimary;
- .tag-value, .tag-double-value {
- color: @light-system-blue;
- }
- &:not(.lj-tag-plain) {
- .tag-value, .tag-double-value {
- color: @light-barkground-elevated-primary;
- }
- }
- &.lj-tag-light {
- background-color: rgba(33, 150, 243, 0.2);
- border-color: rgba(33, 150, 243, 0.2);
- .tag-value, .tag-double-value {
- color: @light-system-blue;
- }
- }
- &.lj-tag-double {
- background-color: @light-system-blue;
- border-color: @light-system-blue;
- .tag-value {
- // color: @musePrimary;
- // color: @light-system-blue;
- color: @light-barkground-elevated-primary;
- }
- .tag-double-value {
- border-radius: 2px;
- background-color: #fff;
- color: @light-system-blue;
- }
- }
- }
- .lj-tab-success {
- background-color: @light-system-green2;
- border-color: @light-system-green2;
- &.lj-tag-light {
- background-color: rgba(52, 199, 89, 0.2);
- border-color: rgba(52, 199, 89, 0.2);
- }
- .tag-value, .tag-double-value {
- color: @light-system-green2;
- // color: #fff;
- }
- &:not(.lj-tag-plain) {
- .tag-value, .tag-double-value {
- color: @light-barkground-elevated-primary;
- }
- }
- &.lj-tag-light {
- background-color: rgba(0, 122, 255, 0.18);
- border-color: transparent;
- .tag-value {
- // color: @musePrimary;
- color: @light-system-green2;
- // color: @light-barkground-elevated-primary;
- }
- }
- &.lj-tag-double {
- background-color: @light-system-green2;
- border-color: @light-system-green2;
- .tag-value {
- // color: @musePrimary;
- // color: @light-system-green2;
- color: @light-barkground-elevated-primary;
- }
- .tag-double-value {
- border-radius: 2px;
- background-color: #fff;
- color: @light-system-green2;
- }
- }
- }
- .lj-tab-danger {
- background-color: @light-system-red;
- border-color: @light-system-red;
- .tag-value, .tag-double-value {
- color: @light-system-red;
- }
- &:not(.lj-tag-plain) {
- .tag-value, .tag-double-value {
- color: @light-barkground-elevated-primary;
- }
- }
- &.lj-tag-light {
- background-color: rgb(255, 59, 48, 0.2)!important;
- border-color: rgb(255, 59, 48, 0.2)!important;
- .tag-value {
- // color: @musePrimary;
- // color: @light-system-red;
- color: @light-barkground-elevated-primary;
- }
- .tag-double-value {
- border-radius: 2px;
- background-color: #fff;
- color: @light-system-red;
- }
- }
- &.lj-tag-double {
- background-color: rgb(255, 59, 48, 0.18);
- border-color: transparent;
- .tag-value {
- // color: @musePrimary;
- color: @light-barkground-elevated-primary;
- // color: @light-barkground-elevated-primary;
- }
- .tag-double-value {
- border-radius: 2px;
- background-color: #fff;
- color: @light-system-red;
- }
- }
- }
- .lj-tab-warning {
- background-color: @light-system-orange;
- border-color: @light-system-orange;
- &.lj-tag-light {
- background-color: rgb(255, 149, 0, 0.2);
- border-color: rgba(255, 149, 0, 0.2);
- }
- // border-color: @musePrimary;
- .tag-value, .tag-double-value {
- color: @light-system-orange;
- }
- &:not(.lj-tag-plain) {
- .tag-value, .tag-double-value {
- color: @light-barkground-elevated-primary;
- }
- }
- &.lj-tag-double {
- background-color: @light-system-orange;
- border-color: @light-system-orange;
- .tag-value {
- // color: @musePrimary;
- // color: @light-system-blue;
- color: @light-barkground-elevated-primary;
- }
- .tag-double-value {
- border-radius: 2px;
- background-color: #fff;
- color: @light-system-orange;
- }
- }
- }
- .lj-tab-mini {
- font-size: 10px;
- line-height: 14px;
- .tag-value, .tag-double-value {
- padding: 0px 2px;
- }
- }
- .lj-tab-small {
- font-size: 12px;
- line-height: 16px;
- .tag-value, .tag-double-value {
- padding: 1px 4px;
- }
- &.lj-tag-round {
- .tag-value, .tag-double-value {
- padding: 1px 6px;
- }
- }
- }
- .lj-tab-medium {
- font-size: 13px;
- line-height: 24px;
- .tag-value, .tag-double-value {
- padding: 0px 8px;
- }
- }
- .lj-tab-large {
- font-size: 16px;
- line-height: 28px;
- .tag-value, .tag-double-value {
- padding: 0px 12px;
- }
- }
- .lj-tag-round {
- border-radius: 100px;
- }
- .lj-tab-purple {
- background-color: @light-system-indigo;
- border-color: @light-system-indigo;
- &.lj-tag-light {
- background-color: rgb(255, 149, 0, 0.2);
- border-color: rgba(255, 149, 0, 0.2);
- }
- // border-color: @musePrimary;
- .tag-value, .tag-double-value {
- color: @light-system-indigo;
- }
- &:not(.lj-tag-plain) {
- .tag-value, .tag-double-value {
- color: @light-barkground-elevated-primary;
- }
- }
- &.lj-tag-double {
- background-color: @light-system-indigo;
- border-color: @light-system-indigo;
- .tag-value {
- // color: @musePrimary;
- // color: @light-system-blue;
- color: @light-barkground-elevated-primary;
- }
- .tag-double-value {
- border-radius: 2px;
- background-color: #fff;
- color: @light-system-indigo;
- }
- }
- }
- .lj-tab-black {
- background-color: @light-system-gray1;
- border-color: @light-system-gray1;
- &.lj-tag-light {
- background-color: rgb(255, 149, 0, 0.2);
- border-color: rgba(255, 149, 0, 0.2);
- }
- // border-color: @musePrimary;
- .tag-value, .tag-double-value {
- color: @light-system-gray1;
- }
- &:not(.lj-tag-plain) {
- .tag-value, .tag-double-value {
- color: @light-barkground-elevated-primary;
- }
- }
- &.lj-tag-double {
- background-color: @light-system-gray1;
- border-color: @light-system-gray1;
- .tag-value {
- // color: @musePrimary;
- // color: @light-system-blue;
- color: @light-barkground-elevated-primary;
- }
- .tag-double-value {
- border-radius: 2px;
- background-color: #fff;
- color: @light-system-gray1;
- }
- }
- }
- </style>
|