123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286 |
- <template>
- <view class="pop-view">
- <view class="pop-maskView" :style="{
- 'background-color': maskBgColor,
- zIndex: zIndex - 1
- }" @tap.stop="handleMaskTap"
- @touchmove.stop.prevent="moveHandle" v-if='visible'>
- </view>
- <view class="buttons" :style="{zIndex: zIndex + 1}" v-if="type=='type1'">
- <view class="menu_btn" v-if='containerVisible && isshow1' @click="tapAction(1)">
- <text class="menu_btn_title">客户扫码到访</text>
- <image class="menu_btn_image" src="../../static/icons/icon_my_qrcode@2x.png" mode=""></image>
- </view>
- <view class="menu_btn" v-if='containerVisible && isshow2' @click="tapAction(2)">
- <text class="menu_btn_title">手动录入到访</text>
- <image class="menu_btn_image" src="../../static/icons/icon_edit_record@2x.png" mode=""></image>
- </view>
- <view class="menu_btn" v-if='containerVisible && isshow3' @click="tapAction(3)">
- <text class="menu_btn_title">隐号报备到访</text>
- <image class="menu_btn_image" src="../../static/icons/icon_saoyisao@2x.png" mode=""></image>
- </view>
- <view class="main_btn" :style="{'background-color':themeColor}" @click="tapAction(0)">
- <image class="main_btn_image" v-if='icon' :src="icon" mode=""></image>
- <text class="main_btn_title">{{title}}</text>
- </view>
- </view>
- <view class="buttons" :style="{zIndex: zIndex + 1}" v-if="type=='type2'">
- <view class="menu_btn" v-if='containerVisible && isshow1' @click="tapAction(1)">
- <text class="menu_btn_title">批量变更</text>
- <image class="menu_btn_image" src="../../static/icons/icon_genjin_piliangbiangeng@2x.png" mode=""></image>
- </view>
- <view class="menu_btn" v-if='containerVisible && isshow2' @click="tapAction(2)">
- <text class="menu_btn_title">批量回收</text>
- <image class="menu_btn_image" src="../../static/icons/icon_genjin_pilianghuishou@2x.png" mode=""></image>
- </view>
- <view class="main_btn mainBtn2" :style="{'background-color':themeColor}" @click="tapAction(0)">
- <text class="main_btn_title" >批量处理</text>
- </view>
- </view>
-
- <view class="buttons" :style="{zIndex: zIndex + 1}" v-if="type=='type3'">
- <view class="menu_btn" v-if='containerVisible && isshow1' @click="tapAction(1)">
- <text class="menu_btn_title">生成邀请图</text>
- <image class="menu_btn_image" src="../../static/icons/icon_my_qrcode@2x.png" mode=""></image>
- </view>
- <view class="menu_btn" v-if='containerVisible && isshow2' @click="tapAction(2)">
- <text class="menu_btn_title">分享二维码</text>
- <image class="menu_btn_image" src="../../static/icons/icon_edit_record@2x.png" mode=""></image>
- </view>
- <view class="main_btn" :style="{'background-color':themeColor}" @click="tapAction(0)">
- <text class="main_btn_title">{{title}}</text>
- </view>
- </view>
- </view>
- </template>
- <script>
- export default {
- props: {
- title: String,
- maskColor: {
- type: String,
- default: 'rgba(0, 0, 0, 0.3)'
- },
- zIndex: {
- type: Number,
- default: 899
- },
- maskTapHide: {
- type: Boolean,
- default: true
- },
- title: {
- type: String,
- default: '到访'
- },
- icon: {
- type: String,
- default: '../../static/icons/icon_visit_edit@2x.png',
- },
- isshow1:{
- type:Boolean,
- default:false
- },
- isshow2:{
- type:Boolean,
- default:false
- },
- isshow3:{
- type:Boolean,
- default:false
- },
- menus: {
- style: Array,
- default () {
- return [{
- title: '客户扫码到访',
- icon: '../../static/icons/icon_my_qrcode@2x.png',
- show:true
- },
- {
- title: '手动录入到访',
- icon: '../../static/icons/icon_edit_record@2x.png',
- show:true
- },
- {
- title: '隐号报备到访',
- icon: '../../static/icons/icon_saoyisao@2x.png',
- show:true
- }
- ]
- }
- },
- type: {
- type: String,
- default: 'type1'
- }
- },
- data() {
- return {
- visible: false,
- containerVisible: false,
- maskBgColor: 'rgba(0, 0, 0, 0.3)',
- selectValue: [0],
- selIdx: 0,
- themeColor: '',
- }
- },
- mounted() {
- let app = getApp();
- this.globalData = app.globalData;
- this.themeColor = this.globalData.themeColor;
- },
- methods: {
- tapAction(val) {
- // if (this.type == 'pop') {
- if (val == 0) {
- this.visible = !this.visible
- } else {
- this.visible = false
- }
- if (this.visible) {
- setTimeout(() => {
- this.maskBgColor = this.maskColor
- this.containerVisible = true
- }, 20)
- } else {
- this.maskBgColor = ''
- this.containerVisible = false
- setTimeout(() => {
- this.visible = false
- }, 200)
- }
- this.$emit('tapMenu', val)
- // }
- },
- show() {
- this.visible = true
- setTimeout(() => {
- this.maskBgColor = this.maskColor
- this.containerVisible = true
- }, 20)
- },
- hide() {
- this.maskBgColor = ''
- this.containerVisible = false
- setTimeout(() => {
- this.visible = false
- }, 200)
- this.$emit('close')
- },
- handleCancel() {
- this.hide()
- },
- handleConfirm() {
- this.hide()
- this.$emit('confirm')
- },
- handleMaskTap() {
- if (this.maskTapHide) {
- this.hide()
- }
- },
- moveHandle() {},
- }
- }
- </script>
- <style scoped lang="scss">
- .pop-view {
- position: relative;
- padding-bottom: 0;
- padding-bottom: constant(safe-area-inset-bottom);
- padding-bottom: env(safe-area-inset-bottom);
- box-sizing: border-box;
- .pop-maskView {
- position: fixed;
- top: 0;
- right: 0;
- left: 0;
- bottom: 0;
- transition-property: background-color;
- transition-duration: 0.3s;
- }
- .buttons {
- position: fixed;
- right: 40rpx;
- bottom: 15%;
- display: flex;
- flex-direction: column;
- align-items: flex-end;
- .menu_btn {
- margin-top: 20rpx;
- padding: 0 10rpx 0 40rpx;
- box-sizing: border-box;
- display: flex;
- height: 100rpx;
- border-radius: 50rpx;
- background: #ffffff;
- border: 4rpx solid rgba(255, 255, 255, 0.64);
- box-shadow: 0px 6px 20px 0px rgba(20, 85, 85, 0.05);
- align-items: center;
- .menu_btn_title {
- font-size: 28rpx;
- font-family: Verdana, Verdana-Regular;
- font-weight: 400;
- color: #333333;
- }
- .menu_btn_image {
- margin-left: 20rpx;
- width: 80rpx;
- height: 80rpx;
- }
- }
- .main_btn {
- margin-top: 30rpx;
- padding: 0 25rpx;
- box-sizing: border-box;
- display: flex;
- height: 100rpx;
- border: 4rpx solid rgba(255, 255, 255, 0.64);
- border-radius: 50rpx;
- align-items: center;
- .main_btn_image {
- width: 54rpx;
- height: 54rpx;
- }
- .main_btn_title {
- font-size: 32rpx;
- font-family: Verdana, Verdana-Regular;
- font-weight: 400;
- color: #ffffff;
- }
- }
-
- .mainBtn2{
- margin-top: 30rpx;
- padding: 0;
- box-sizing: border-box;
- display: flex;
- height: 100rpx;
- border: 4rpx solid rgba(255, 255, 255, 0.64);
- border-radius: 50rpx;
- align-items: center;
- width: 170rpx;
- .main_btn_title {
- width: 100%;
- font-size: 32rpx;
- font-family: Verdana, Verdana-Regular;
- font-weight: 400;
- text-align: center;
- color: #ffffff;
- }
- }
- }
- }
- </style>
|