| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- <template>
- <view class="select">
- <view class="title p-30 row-justify-sb">
- <view class="icon"></view>
- <text class="size-30 sys-weight-600">{{title}}</text>
- <view class="icon">
- <uni-icons :animation="animationData" class="dropdown-icon" type="closeempty" size="16"
- color="#666"></uni-icons>
- </view>
- </view>
- <view class="select">
- <scroll-view scroll-y="true" class="scroll-Y select">
- <view id="demo1" class="scroll-view-item" :class="item.id === current?'':'active'"
- v-for="(item,index) in localData" @click="onSelect(index)">
- <text class="size-28">{{item[itemText]}}</text>
- </view>
- </scroll-view>
- </view>
- <EnButton :is_fixed="false"></EnButton>
- </view>
- </template>
- <script>
- import EnButton from "@/components/en-utils/en-button/en-button.vue";
- export default {
- name: 'peak_chart',
- props: {
- title: {
- type: String,
- default: '选择'
- },
- localData: {
- default: []
- },
- itemKey: {
- type: String,
- default: 'id'
- },
- itemText: {
- type: String,
- default: 'name'
- },
- value: {
- default: ''
- }
- },
- components: {
- EnButton
- },
- data() {
- return {
- current: 3,
- };
- },
- watch: {
- 'value': function() {
- if (this.current !== this.value) {
- this.current = this.value
- }
- }
- },
- methods: {
- onSelect(index) {
- this.$emit('onChange', index)
- this.$emit('input', this.localData[index][this.itemKey])
- }
- }
- }
- </script>
- <style lang="scss">
- .select {
- height: 800rpx;
- }
- .icon {
- width: 40rpx;
- text-align: right;
- }
- .scroll-view-item {
- height: 90rpx;
- line-height: 90rpx;
- text-align: center;
- background: rgba(15, 177, 96, 0.1);
- border-radius: 10rpx;
- color: #0FB160;
- border: 1rpx solid #0FB160;
- margin: 16rpx 30rpx;
- }
- .active {
- border: none;
- color: #333333;
- background: #F7F9FE;
- }
- </style>
|