|  |  |  | 
|---|
|  |  |  | <template> | 
|---|
|  |  |  | <view v-if="showPopup"> | 
|---|
|  |  |  | <uni-transition key="1" mode-class="fade" :styles="maskClass" :show="show" @click="onTop"/> | 
|---|
|  |  |  | <uni-transition key="2" :mode-class="ani" name="content" :styles="transClass" :duration="duration" :show="showTrans" > | 
|---|
|  |  |  | qqq<view style="width: 500rpx;height: 300rpx;background-color: aliceblue;position: absolute;top: 0; | 
|---|
|  |  |  | left: 0;"><slot /></view> | 
|---|
|  |  |  | <view v-if="!showPopup" class="y-popup-mask"> | 
|---|
|  |  |  | <uni-transition key="1" mode-class="fade" :styles="maskClass" :show="show" @click="onTap"/> | 
|---|
|  |  |  | <uni-transition key="2" :styles="transClass" :show="showTrans" mode-class="fade" :duration="duration"> | 
|---|
|  |  |  | <view style="height: 70rpx;background-color: aliceblue;">{{titleText}}</view> | 
|---|
|  |  |  | <scroll-view scroll-y class="scroll-Y"> | 
|---|
|  |  |  | <slot> | 
|---|
|  |  |  | <input type="text"> | 
|---|
|  |  |  | </slot> | 
|---|
|  |  |  | </scroll-view> | 
|---|
|  |  |  | <view> | 
|---|
|  |  |  | <button size="mini" @click="close">按钮</button> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </uni-transition> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <script> | 
|---|
|  |  |  | export default { | 
|---|
|  |  |  | name: 'y-popup', | 
|---|
|  |  |  | props: { | 
|---|
|  |  |  | title: { | 
|---|
|  |  |  | type: String, | 
|---|
|  |  |  | default: '' | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | computed: { | 
|---|
|  |  |  | titleText() { | 
|---|
|  |  |  | return this.title || t("uni-popup.title") | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | data() { | 
|---|
|  |  |  | return { | 
|---|
|  |  |  | show:false, | 
|---|
|  |  |  | showPopup:false, | 
|---|
|  |  |  | showTrans: false, | 
|---|
|  |  |  | duration: 300, | 
|---|
|  |  |  | duration: 500, | 
|---|
|  |  |  | ani: [], | 
|---|
|  |  |  | maskClass: { | 
|---|
|  |  |  | position: 'fixed', | 
|---|
|  |  |  | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | transClass: { | 
|---|
|  |  |  | position: 'fixed', | 
|---|
|  |  |  | left: 0, | 
|---|
|  |  |  | right: 0 | 
|---|
|  |  |  | // left: 0, | 
|---|
|  |  |  | // right: 0, | 
|---|
|  |  |  | minWidth:'300rpx', | 
|---|
|  |  |  | minHeight: '400rpx', | 
|---|
|  |  |  | display: 'flex', | 
|---|
|  |  |  | flexDirection: 'column', | 
|---|
|  |  |  | alignItems: 'center', | 
|---|
|  |  |  | borderRadius: '20rpx', | 
|---|
|  |  |  | justifyContent: 'center', | 
|---|
|  |  |  | backgroundColor: 'rgba(0, 255, 0, 0.4)' | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | close() { | 
|---|
|  |  |  | this.showPopup = false | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | onTop() { | 
|---|
|  |  |  | onTap() { | 
|---|
|  |  |  | this.showPopup = false | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | bottom: 0; | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | height: 100vh; | 
|---|
|  |  |  | background-color: rgba(0, 0, 0, 0.4); | 
|---|
|  |  |  | /* background-color: rgba(0, 0, 0, 0.4); */ | 
|---|
|  |  |  | z-index: 999; | 
|---|
|  |  |  | border-radius: 20rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .center { | 
|---|
|  |  |  | display: flex; | 
|---|