|
|
- <template>
- <view class="indicator flex">
- <view
- v-for="(item, index) in list"
- :key="index"
- :class="['indicator-dot', index === current ? 'is-active' : '']"
- @click="$emit('click', index)"
- ></view>
- </view>
- </template>
-
- <script>
- export default {
- props: {
- current: {
- type: Number,
- default: 0,
- },
- length: {
- type: Number,
- default: 0,
- },
- },
- computed: {
- list() {
- return new Array(this.length).fill(0)
- }
- },
- }
- </script>
-
- <style scoped lang="scss">
- .indicator {
- &-dot {
- width: 12rpx;
- height: 12rpx;
- border-radius: 6rpx;
- background: #D9D9D9;
-
- & + & {
- margin-left: 12rpx;
- }
-
- &.is-active {
- width: 56rpx;
- background-image: linear-gradient(to right, #4B348F, #845CFA);
- }
- }
- }
- </style>
|