demo.vue 4.0 KB
Newer Older
Z
zhangyufei1 已提交
1 2
<template>
  <div class="demo-list demo">
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
    <h2>基本用法(选择类)</h2>
    <nut-cell
      :showIcon="true"
      :isLink="true"
      @click="switchActionSheet('isVisible1')"
    >
      <span><label>基础用法</label></span>
      <div class="selected-option">{{ state.val1 }}</div>
    </nut-cell>
    <nut-cell
      :showIcon="true"
      :isLink="true"
      @click="switchActionSheet('isVisible2')"
    >
      <span><label>展示取消按钮</label></span>
      <div class="selected-option">{{ state.val2 }}</div>
    </nut-cell>
    <nut-cell :isLink="true" @click="switchActionSheet('isVisible3')">
      <span><label>展示描述信息</label></span>
      <div class="selected-option">{{ state.val3 }}</div>
    </nut-cell>
    <h2>选项状态</h2>
Z
zhangyufei1 已提交
25

26 27 28 29 30
    <nut-cell :isLink="true" @click="switchActionSheet('isVisible4')">
      <span><label>选项状态</label></span>
      <!-- <div class="selected-option">打开</div> -->
    </nut-cell>
    <h2>自定义面板</h2>
Z
zhangyufei1 已提交
31

32 33 34 35 36 37 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 63 64 65 66 67
    <nut-cell :isLink="true" @click="switchActionSheet('isVisible5')">
      <span><label>自定义内容</label></span>
      <!-- <div class="selected-option">打开</div> -->
    </nut-cell>
    <!-- demo 基础用法 -->
    <nut-actionsheet
      :is-visible="state.isVisible1"
      :menu-items="menuItemsOne"
      @choose="chooseItem"
    ></nut-actionsheet>
    <!-- demo(带取消按钮) -->
    <nut-actionsheet
      :is-visible="state.isVisible2"
      cancelTxt="取消"
      :menu-items="menuItemsOne"
      @choose="chooseItemTwo"
    ></nut-actionsheet>
    <!-- 展示描述信息 -->
    <nut-actionsheet
      :is-visible="state.isVisible3"
      :description="state.desc"
      :menu-items="menuItemsTwo"
      @choose="chooseItemThree"
      cancelTxt="取消"
    >
    </nut-actionsheet>
    <!-- demo 选项状态-->
    <nut-actionsheet
      :is-visible="state.isVisible4"
      cancelTxt="取消"
      :menu-items="menuItemsThree"
    ></nut-actionsheet>
    <!-- demo 自定义 -->
    <nut-actionsheet :is-visible="state.isVisible5" title="标题">
      <div class="myContent">内容</div>
    </nut-actionsheet>
Z
zhangyufei1 已提交
68 69 70
  </div>
</template>

Z
zhangyufei1 已提交
71
<script lang="ts">
Z
zhangyufei1 已提交
72 73 74 75 76 77 78 79 80 81 82 83 84 85
import { reactive } from 'vue';
import { createComponent } from '@/utils/create';
const { createDemo } = createComponent('actionsheet');
export default createDemo({
  props: {},
  setup() {
    const state = reactive({
      isVisible1: false,
      isVisible2: false,
      isVisible3: false,
      isVisible4: false,
      isVisible5: false,
      val1: '',
      val2: '',
Z
zhangyufei1 已提交
86 87
      val3: '',
      desc: '这是一段描述信息'
Z
zhangyufei1 已提交
88
    });
Z
zhangyufei1 已提交
89
    const menuItemsOne = [
Z
zhangyufei1 已提交
90 91 92 93 94 95 96 97 98 99 100 101 102
      {
        name: '选项一',
        value: 0
      },
      {
        name: '选项二',
        value: 1
      },
      {
        name: '选项三',
        value: 2
      }
    ];
Z
zhangyufei1 已提交
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
    const menuItemsTwo = [
      {
        name: '选项一',
        value: 0
      },
      {
        name: '选项二',
        value: 1
      },
      {
        name: '选项三',
        subname: '描述信息',
        value: 2
      }
    ];
    const menuItemsThree = [
      {
        name: '着色选项',
        color: '#ee0a24',
        value: 0
      },
      {
        name: '禁用选项',
        disable: true,
        value: 1
      }
    ];
Z
zhangyufei1 已提交
130
    const switchActionSheet = param => {
D
Drjingfubo 已提交
131
      state[param] = !state[param];
Z
zhangyufei1 已提交
132
      //   console.log(state[`${param}`], '2');
Z
zhangyufei1 已提交
133 134 135 136 137 138 139 140 141 142
    };

    const chooseItem = itemParams => {
      console.log(itemParams, 'itemParams');
      state.val1 = itemParams.name;
    };

    function chooseItemTwo(itemParams) {
      state.val2 = itemParams.name;
    }
D
Drjingfubo 已提交
143 144 145
    function chooseItemThree(itemParams) {
      state.val3 = itemParams.name;
    }
Z
zhangyufei1 已提交
146 147 148

    return {
      state,
Z
zhangyufei1 已提交
149 150 151
      menuItemsOne,
      menuItemsTwo,
      menuItemsThree,
Z
zhangyufei1 已提交
152 153
      chooseItem,
      chooseItemTwo,
D
Drjingfubo 已提交
154
      chooseItemThree,
Z
zhangyufei1 已提交
155 156 157 158 159 160 161 162 163 164 165
      switchActionSheet
    };
  }
});
</script>

<style lang="scss" scoped>
.custom-wrap {
  padding: 110px 0;
  text-align: center;
}
Z
zhangyufei1 已提交
166 167 168
.nut-cell {
  justify-content: space-between;
}
D
Drjingfubo 已提交
169 170 171
.myContent {
  padding: 10px 10px 160px;
}
Z
zhangyufei1 已提交
172
</style>