102 lines
2.4 KiB
Vue
102 lines
2.4 KiB
Vue
<template>
|
|
<modal-inner class="modal__inner-1--sponsor" aria-label="Sponsor">
|
|
<div class="modal__content">
|
|
<p>Please choose a <b>PayPal</b> option:</p>
|
|
<a class="paypal-option button flex flex--row flex--center" v-for="button in buttons" :key="button.id" :href="button.link">
|
|
<div class="flex flex--column">
|
|
<div>{{button.price}}<div class="paypal-option__offer" v-if="button.offer">{{button.offer}}</div></div>
|
|
<span>{{button.description}}</span>
|
|
</div>
|
|
</a>
|
|
</div>
|
|
<div class="modal__button-bar">
|
|
<button class="button" @click="config.reject()">取消</button>
|
|
</div>
|
|
</modal-inner>
|
|
</template>
|
|
|
|
<script>
|
|
import { mapGetters } from 'vuex';
|
|
import ModalInner from './common/ModalInner';
|
|
import utils from '../../services/utils';
|
|
import store from '../../store';
|
|
|
|
export default {
|
|
components: {
|
|
ModalInner,
|
|
},
|
|
data() {
|
|
const sponsorToken = store.getters['workspace/sponsorToken'];
|
|
const makeButton = (id, price, description, offer) => {
|
|
const params = {
|
|
cmd: '_s-xclick',
|
|
hosted_button_id: id,
|
|
custom: sponsorToken.sub,
|
|
};
|
|
return {
|
|
id,
|
|
price,
|
|
description,
|
|
offer,
|
|
link: utils.addQueryParams('https://www.paypal.com/cgi-bin/webscr', params),
|
|
};
|
|
};
|
|
|
|
return {
|
|
buttons: sponsorToken ? [
|
|
makeButton('QD7SFZS79D2AL', '$5', '3 months sponsorship'),
|
|
makeButton('WG64NCFL9TQZJ', '$15', '1 year sponsorship', '-25%'),
|
|
makeButton('G2E7MN873EQ3U', '$25', '2 years sponsorship', '-37%'),
|
|
makeButton('JQJT7ARKYC7FC', '$50', '5 years sponsorship', '-50%'),
|
|
] : [],
|
|
};
|
|
},
|
|
computed: {
|
|
...mapGetters('modal', [
|
|
'config',
|
|
]),
|
|
},
|
|
methods: {
|
|
sponsor() {
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<style lang="scss">
|
|
@import '../../styles/variables.scss';
|
|
|
|
.modal__inner-1.modal__inner-1--sponsor {
|
|
max-width: 400px;
|
|
}
|
|
|
|
.paypal-option {
|
|
text-align: center;
|
|
padding: 10px;
|
|
height: auto;
|
|
font-size: 2.3em;
|
|
margin: 0.75rem 0;
|
|
line-height: 1.2;
|
|
text-transform: none;
|
|
|
|
span {
|
|
display: inline-block;
|
|
font-size: 0.75rem;
|
|
opacity: 0.6;
|
|
white-space: normal;
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.paypal-option__offer {
|
|
float: right;
|
|
font-size: 0.6rem;
|
|
font-weight: 600;
|
|
padding: 0.1em 0.2em;
|
|
background-color: darken($error-color, 10);
|
|
border-radius: 3px;
|
|
color: #fff;
|
|
margin-left: -0.5em;
|
|
}
|
|
}
|
|
</style>
|