button.uvue 3.6 KB
Newer Older
Y
yurj26 已提交
1
<script>
2 3 4 5 6 7 8 9 10 11 12 13 14
import { type ItemType } from '@/components/enum-data/enum-data.vue'
export default {
  data() {
    return {
      plain_boolean: false,
      disabled_boolean: false,
      default_style: false,
      size_enum: [{ "value": 0, "name": "default" }, { "value": 1, "name": "mini" }] as ItemType[],
      size_enum_current: 0,
      type_enum: [{ "value": 0, "name": "default" }, { "value": 1, "name": "primary" }, { "value": 2, "name": "warn" }] as ItemType[],
      type_enum_current: 0,
      count: 0,
      text: 'uni-app-x'
Y
yurj26 已提交
15
    }
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
  },
  methods: {
    button_click() {
      console.log("组件被点击时触发")
      this.count++
    },
    button_touchstart() { console.log("手指触摸动作开始") },
    button_touchmove() { console.log("手指触摸后移动") },
    button_touchcancel() { console.log("手指触摸动作被打断,如来电提醒,弹窗") },
    button_touchend() { console.log("手指触摸动作结束") },
    button_tap() { console.log("手指触摸后马上离开") },
    button_longpress() { console.log("如果一个组件被绑定了 longpress 事件,那么当用户长按这个组件时,该事件将会被触发。") },
    change_plain_boolean(checked : boolean) { this.plain_boolean = checked },
    change_disabled_boolean(checked : boolean) { this.disabled_boolean = checked },
    change_default_style(checked : boolean) { this.default_style = checked },
    radio_change_size_enum(checked : number) { this.size_enum_current = checked },
    radio_change_type_enum(checked : number) { this.type_enum_current = checked }
Y
yurj26 已提交
33
  }
34
}
Y
yurj26 已提交
35 36 37
</script>

<template>
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
  <view class="main">
    <button
      :disabled="disabled_boolean"
      :size="size_enum[size_enum_current].name"
      :type="type_enum[type_enum_current].name"
      :plain="plain_boolean"
      @click="button_click"
      @touchstart="button_touchstart"
      @touchmove="button_touchmove"
      @touchcancel="button_touchcancel"
      @touchend="button_touchend"
      @tap="button_tap"
      @longpress="button_longpress"
      class="btn"
      :style="
        default_style
          ? 'color:#ffffff;backgroundColor:#1AAD19;borderColor:#1AAD19;'
          : ''
      "
      :hover-class="default_style ? 'is-hover' : 'button-hover'"
    >
      {{ text }}
    </button>
  </view>

Y
yurj26 已提交
63
  <!-- #ifdef APP -->
64
  <scroll-view style="flex: 1">
Y
yurj26 已提交
65 66
    <!-- #endif -->
    <view class="content">
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
      <boolean-data
        :defaultValue="false"
        title="按钮是否镂空,背景色透明"
        @change="change_plain_boolean"
      ></boolean-data>
      <boolean-data
        :defaultValue="false"
        title="是否禁用"
        @change="change_disabled_boolean"
      ></boolean-data>
      <boolean-data
        :defaultValue="false"
        title="修改默认样式和点击效果(高优先)"
        @change="change_default_style"
      ></boolean-data>
      <enum-data
        :items="size_enum"
        title="按钮的大小"
        @change="radio_change_size_enum"
      ></enum-data>
      <enum-data
        :items="type_enum"
        title="按钮的类型"
        @change="radio_change_type_enum"
      ></enum-data>
Y
yurj26 已提交
92 93 94 95 96 97 98
    </view>
    <!-- #ifdef APP -->
  </scroll-view>
  <!-- #endif -->
</template>

<style>
99 100 101 102 103 104 105
.main {
  max-height: 500rpx;
  padding: 10rpx 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  flex-direction: row;
  justify-content: center;
}
Y
yurj26 已提交
106

107 108 109 110 111
.main .list-item {
  width: 100%;
  height: 200rpx;
  border: 1px solid #666;
}
Y
yurj26 已提交
112

113 114 115 116 117 118
.is-hover {
  color: rgba(255, 255, 255, 0.6);
  background-color: #179b16;
  border-color: #179b16;
}
</style>