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.
187 lines
3.8 KiB
187 lines
3.8 KiB
<template> |
|
<view class="uni-popup-share"> |
|
<view class="uni-share-title"><text class="uni-share-title-text">{{shareTitleText}}</text></view> |
|
<view class="uni-share-content"> |
|
<view class="uni-share-content-box"> |
|
<view class="uni-share-content-item" v-for="(item,index) in bottomData" :key="index" @click.stop="select(item,index)"> |
|
<image class="uni-share-image" :src="item.icon" mode="aspectFill"></image> |
|
<text class="uni-share-text">{{item.text}}</text> |
|
</view> |
|
|
|
</view> |
|
</view> |
|
<view class="uni-share-button-box"> |
|
<button class="uni-share-button" @click="close">{{cancelText}}</button> |
|
</view> |
|
</view> |
|
</template> |
|
|
|
<script> |
|
import popup from '../uni-popup/popup.js' |
|
import { |
|
initVueI18n |
|
} from '@dcloudio/uni-i18n' |
|
import messages from '../uni-popup/i18n/index.js' |
|
const { t } = initVueI18n(messages) |
|
export default { |
|
name: 'UniPopupShare', |
|
mixins:[popup], |
|
emits:['select'], |
|
props: { |
|
title: { |
|
type: String, |
|
default: '' |
|
}, |
|
beforeClose: { |
|
type: Boolean, |
|
default: false |
|
} |
|
}, |
|
data() { |
|
return { |
|
bottomData: [{ |
|
text: '微信', |
|
icon: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/c2b17470-50be-11eb-b680-7980c8a877b8.png', |
|
name: 'wx' |
|
}, |
|
{ |
|
text: '支付宝', |
|
icon: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/d684ae40-50be-11eb-8ff1-d5dcf8779628.png', |
|
name: 'wx' |
|
}, |
|
{ |
|
text: 'QQ', |
|
icon: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/e7a79520-50be-11eb-b997-9918a5dda011.png', |
|
name: 'qq' |
|
}, |
|
{ |
|
text: '新浪', |
|
icon: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/0dacdbe0-50bf-11eb-8ff1-d5dcf8779628.png', |
|
name: 'sina' |
|
}, |
|
// { |
|
// text: '百度', |
|
// icon: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/1ec6e920-50bf-11eb-8a36-ebb87efcf8c0.png', |
|
// name: 'copy' |
|
// }, |
|
// { |
|
// text: '其他', |
|
// icon: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/2e0fdfe0-50bf-11eb-b997-9918a5dda011.png', |
|
// name: 'more' |
|
// } |
|
] |
|
} |
|
}, |
|
created() {}, |
|
computed: { |
|
cancelText() { |
|
return t("uni-popup.cancel") |
|
}, |
|
shareTitleText() { |
|
return this.title || t("uni-popup.shareTitle") |
|
} |
|
}, |
|
methods: { |
|
/** |
|
* 选择内容 |
|
*/ |
|
select(item, index) { |
|
this.$emit('select', { |
|
item, |
|
index |
|
}) |
|
this.close() |
|
|
|
}, |
|
/** |
|
* 关闭窗口 |
|
*/ |
|
close() { |
|
if(this.beforeClose) return |
|
this.popup.close() |
|
} |
|
} |
|
} |
|
</script> |
|
<style lang="scss" scoped> |
|
.uni-popup-share { |
|
background-color: #fff; |
|
border-top-left-radius: 11px; |
|
border-top-right-radius: 11px; |
|
} |
|
.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>
|
|
|