-
17api/setting/share.js
-
190components/SharePopup.vue
-
9manifest.json
-
228pages/setting/share.vue
-
BINstatic/my/share/KakaoTalk.png
-
BINstatic/my/share/Line.png
-
BINstatic/my/share/WeChat.png
-
BINstatic/my/share/WhatsApp.png
-
BINstatic/my/share/share.png
-
BINstatic/my/share/success.png
@ -0,0 +1,17 @@ |
|||
import { http } from '../utils/http' |
|||
|
|||
|
|||
/** |
|||
* 分享接口 |
|||
* @param data |
|||
* @returns {*} |
|||
*/ |
|||
export const getUserInfo = (data) => { |
|||
return http({ |
|||
method: 'POST', |
|||
url: '/api/my/share', |
|||
data: |
|||
data |
|||
, |
|||
}) |
|||
} |
|||
@ -0,0 +1,190 @@ |
|||
<!--自定义分享弹窗 使用uni的更改--> |
|||
<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_modules/uni-popup/components/uni-popup/popup.js' |
|||
// import popup from '../uni-popup/popup.js' |
|||
import {initVueI18n} from '@dcloudio/uni-i18n' |
|||
import messages from '../uni_modules/uni-popup/components/uni-popup/i18n/index.js' |
|||
|
|||
const {t} = initVueI18n(messages) |
|||
export default { |
|||
name: 'SharePopup', |
|||
mixins: [popup], |
|||
emits: ['select'], |
|||
props: { |
|||
title: { |
|||
type: String, |
|||
default: '' |
|||
}, |
|||
beforeClose: { |
|||
type: Boolean, |
|||
default: false |
|||
} |
|||
}, |
|||
data() { |
|||
return { |
|||
bottomData: [{ |
|||
text: 'WhatsApp', |
|||
icon: '/static/my/share/WhatsApp.png', |
|||
name: 'WhatsApp' |
|||
}, |
|||
{ |
|||
text: 'Line', |
|||
icon: '/static/my/share/Line.png', |
|||
name: 'Line' |
|||
}, |
|||
{ |
|||
text: 'KakaoTalk', |
|||
icon: '/static/my/share/KakaoTalk.png', |
|||
name: 'KakaoTalk' |
|||
}, |
|||
{ |
|||
text: 'WeChat', |
|||
icon: '/static/my/share/WeChat.png', |
|||
name: 'WeChat' |
|||
}, |
|||
{ |
|||
text: '复制链接', |
|||
icon: '/static/my/share/share.png', |
|||
name: '复制链接' |
|||
}, |
|||
] |
|||
} |
|||
}, |
|||
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"> |
|||
.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: 72px; |
|||
/* #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: 42px; |
|||
height: 42px; |
|||
} |
|||
|
|||
.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> |
|||
|
After Width: 42 | Height: 42 | Size: 2.5 KiB |
|
After Width: 42 | Height: 42 | Size: 2.2 KiB |
|
After Width: 42 | Height: 42 | Size: 2.4 KiB |
|
After Width: 42 | Height: 42 | Size: 3.6 KiB |
|
After Width: 42 | Height: 42 | Size: 1.3 KiB |
|
After Width: 32 | Height: 32 | Size: 1.6 KiB |