123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- <template>
- <view class="u-demo">
- <view class="u-demo-wrap">
- <view class="u-demo-title">演示效果</view>
- <view class="u-demo-area">
- <u-toast ref="uToast"></u-toast>
- <u-button @click="btnClick">唤起弹窗</u-button>
- <u-popup border-radius="10" v-model="show"
- @close="close" @open="open" :mode="mode"
- length="50%" :mask="mask"
- :closeable="closeable"
- :close-icon-pos="closeIconPos"
- >
- <view v-if="mode == 'center'" style="height: 400rpx">
- <view class="close-btn">
- <u-button @click="show = false;" size="medium">关闭弹窗</u-button>
- </view>
- </view>
- <view class="close-btn" v-if="mode != 'center'">
- <u-button size="medium" @click="show = false;">关闭弹窗</u-button>
- </view>
- </u-popup>
- </view>
- </view>
- <view class="u-config-wrap">
- <view class="u-config-title u-border-bottom">
- 参数配置
- </view>
- <view class="u-config-item">
- <view class="u-item-title">状态</view>
- <u-subsection :current="show == false ? 1 : 0" :list="['打开', '关闭']" @change="showChange"></u-subsection>
- </view>
- <view class="u-config-item">
- <view class="u-item-title">弹出方向</view>
- <u-subsection :current="2" :list="['上', '下', '左', '右', '中']" @change="modeChange"></u-subsection>
- </view>
- <view class="u-config-item">
- <view class="u-item-title">关闭按钮</view>
- <u-subsection :list="['显示', '隐藏']" @change="closeChange"></u-subsection>
- </view>
- <view class="u-config-item">
- <view class="u-item-title">关闭按钮位置</view>
- <u-subsection :current="1" :list="['左上角', '右上角', '左下角', '右下角']" @change="closePosChange"></u-subsection>
- </view>
- </view>
- </view>
- </template>
- <script>
- export default {
- data() {
- return {
- show: false,
- mode: 'left',
- mask: true, // 是否显示遮罩
- closeable: true,
- closeIconPos: 'top-right'
- }
- },
- watch: {
- show(n) {
- // console.log(n);
- }
- },
- methods: {
- modeChange(index) {
- this.mode = index == 0 ? 'top' : index == 1 ? 'bottom' : index == 2 ? 'left' : index == 3 ? 'right' : 'center';
- this.show = true;
- },
- showChange(index) {
- this.show = index == 0 ? true : false;
- },
- closeChange(index) {
- this.closeable = !index;
- },
- closePosChange(index) {
- this.closeIconPos = ['top-left', 'top-right', 'bottom-left', 'bottom-right'][index];
- },
- close() {
- // console.log('close');
- },
- open() {
- // console.log('open');
- },
- btnClick() {
- this.show = true;
- }
- }
- }
- </script>
- <style lang="scss" scoped>
- .wrap {
- padding: 24rpx;
- }
-
- .close-btn {
- height: 100%;
- display: flex;
- align-items: center;
- justify-content: center;
- }
- </style>
|