You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
141 lines
2.4 KiB
141 lines
2.4 KiB
<template> |
|
<view class="uni-popup-share"> |
|
<view class="uni-share-title"><text class="uni-share-title-text">{{title}}</text></view> |
|
<view class="uni-share-content"> |
|
<view class="uni-share-content-box"> |
|
<view class="uni-share-content-item" v-for="(item,index) in menus" :key="index" @click.stop="select(item,index)"> |
|
<uni-icons :type="item.icon" :color="item.iconColor" :size="item.iconSize"/> |
|
<text class="uni-share-text">{{item.text}}</text> |
|
</view> |
|
</view> |
|
</view> |
|
<view class="uni-share-button-box"> |
|
<button class="uni-share-button" @click="close">取消</button> |
|
</view> |
|
</view> |
|
</template> |
|
|
|
<script> |
|
import uniIcons from "@/components/uni-icons/uni-icons.vue"; |
|
export default { |
|
name: 'UniPopupMenu', |
|
props: { |
|
title: { |
|
type: String, |
|
default: '菜单项' |
|
}, |
|
menus:{ |
|
type:Array |
|
} |
|
}, |
|
inject: ['popup'], |
|
data() { |
|
return { |
|
|
|
} |
|
}, |
|
created() {}, |
|
methods: { |
|
/** |
|
* 选择内容 |
|
*/ |
|
select(item, index) { |
|
this.$emit('select', { |
|
item, |
|
index |
|
}, () => { |
|
this.popup.close() |
|
}) |
|
}, |
|
/** |
|
* 关闭窗口 |
|
*/ |
|
close() { |
|
this.popup.close() |
|
} |
|
} |
|
} |
|
</script> |
|
<style scoped> |
|
.uni-popup-share { |
|
background-color: #fff; |
|
} |
|
|
|
.uni-share-title { |
|
/* #ifndef APP-NVUE */ |
|
display: flex; |
|
/* #endif */ |
|
flex-direction: row; |
|
align-items: center; |
|
justify-content: center; |
|
height: 40px; |
|
} |
|
|
|
.uni-share-title-text { |
|
font-size: 14px; |
|
color: #666; |
|
} |
|
|
|
.uni-share-content { |
|
/* #ifndef APP-NVUE */ |
|
display: flex; |
|
/* #endif */ |
|
flex-direction: row; |
|
justify-content: center; |
|
padding-top: 10px; |
|
} |
|
|
|
.uni-share-content-box { |
|
/* #ifndef APP-NVUE */ |
|
display: flex; |
|
/* #endif */ |
|
flex-direction: row; |
|
flex-wrap: wrap; |
|
width: 360px; |
|
} |
|
|
|
.uni-share-content-item { |
|
width: 90px; |
|
/* #ifndef APP-NVUE */ |
|
display: flex; |
|
/* #endif */ |
|
flex-direction: column; |
|
justify-content: center; |
|
padding: 10px 0; |
|
align-items: center; |
|
} |
|
|
|
.uni-share-content-item:active { |
|
background-color: #f5f5f5; |
|
} |
|
|
|
.uni-share-image { |
|
width: 30px; |
|
height: 30px; |
|
} |
|
|
|
.uni-share-text { |
|
margin-top: 10px; |
|
font-size: 14px; |
|
color: #3B4144; |
|
} |
|
|
|
.uni-share-button-box { |
|
/* #ifndef APP-NVUE */ |
|
display: flex; |
|
/* #endif */ |
|
flex-direction: row; |
|
padding: 10px 15px; |
|
} |
|
|
|
.uni-share-button { |
|
flex: 1; |
|
border-radius: 50px; |
|
color: #666; |
|
font-size: 16px; |
|
} |
|
|
|
.uni-share-button::after { |
|
border-radius: 50px; |
|
} |
|
</style> |