123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- <template>
- <view v-if="vip_card.permission == 1" v-bind:style="vipBoxStyle">
- <view v-if="!userInfo.is_vip_card_user" class="app-vip-card cross-center dir-left-nowrap" v-bind:style="noVipStyle">
- <image class="app-vip-logo" v-bind:src="svipImg.logo"></image>
- <view>
- <view class="buy-big-text" v-bind:style="[{'color': `${vip_card.setting.form.buy_big_color}`}]">{{vip_card.setting.form.buy_big}}</view>
- <view class="buy-small-text" v-bind:style="[{'color': `${vip_card.setting.form.buy_small_color}`}]">{{vip_card.setting.form.buy_small}}</view>
- </view>
- <view @click="router" class="app-vip-btn" v-bind:style="[{'color': `${vip_card.setting.form.buy_btn_color}`,'background':`${vip_card.setting.form.buy_btn_bg_color}`}]">{{vip_card.setting.form.buy_btn_text}}</view>
- </view>
- <view v-else-if="userInfo.is_vip_card_user" class="app-vip-card cross-center dir-left-nowrap" v-bind:style="isVipStyle">
- <image class="app-vip-logo" v-bind:src="svipImg.logo"></image>
- <view>
- <view class="buy-big-text" v-bind:style="[{'color': `${vip_card.setting.form.renew_text_color}`}]">{{vip_card.setting.form.renew_text}}</view>
- </view>
- <view @click="router" class="app-vip-btn app-renew-btn cross-center main-center" v-bind:style="[{'background':`${vip_card.setting.form.renew_btn_bg_color}`}]">
- <text>详情</text>
- <image class="right-icon" src="/static/image/icon/right.png"></image>
- </view>
- </view>
- </view>
- </template>
- <script>
- import { mapState } from 'vuex';
- export default {
- name: 'app-vip-card',
- data() {
- return {
- vip_card: {
- setting: {
- form: {}
- }
- }
- }
- },
- props: {
- background: {
- type: String,
- default() {
- return `#f7f7f7`;
- }
- },
- top: {
- type: String,
- default() {
- return `20rpx`;
- }
- },
- value: {
- type: Object
- }
- },
- computed: {
- ...mapState({
- userInfo: function(state) {
- return state.user.info;
- },
- svipImg: function(state) {
- return state.mallConfig.__wxapp_img.vip_card
- }
- }),
- vipBoxStyle: function() {
- return this.value ? `background-color: ${this.vip_card.setting.form.background};
- height:${this.vip_card.setting.form.top_bottom_padding*2 + 120 + 'rpx'};
- padding: ${this.vip_card.setting.form.top_bottom_padding + 'rpx 0'}` : '';
- },
- noVipStyle: function() {
- let buy_bg = this.vip_card.setting.form.buy_bg;
- return `background-image: url(${buy_bg !== 'statics/img/app/vip_card/buy_bg.png' ? buy_bg : this.svipImg.buy_bg});
- background-color: ${this.background};
- margin-top: ${this.top}`;
- },
- isVipStyle: function() {
- let renew_bg = this.vip_card.setting.form.renew_bg;
- return `background-image: url(${ renew_bg !== 'statics/img/app/vip_card/buy_bg.png' ? renew_bg : this.svipImg.buy_bg});
- background-color: ${this.background};
- margin-top: ${this.top}`;
- }
- },
- created() {
- this.getConfig();
- },
- methods: {
- router() {
- uni.navigateTo({
- url: '/plugins/vip_card/index/index'
- });
- },
- async getConfig() {
- const res = await this.$request({
- url: this.$api.index.config
- });
- if (res.code === 0) {
- this.vip_card = Object.assign(this.vip_card,res.data.plugin.vip_card);
- if(this.value) {
- this.vip_card.setting.form = this.value;
- }
- } else {
- uni.showToast({
- title: res.msg,
- icon: 'none'
- })
- }
- }
- }
- }
- </script>
- <style scoped lang="scss">
- .app-vip-card {
- height: #{120rpx};
- width: 100%;
- position: relative;
- background-size: 100% 100%;
- background-repeat:no-repeat;
- background-position: center bottom;
- }
- .app-vip-btn.app-renew-btn {
- width: #{89rpx};
- height: #{35rpx};
- line-height: #{35rpx};
- border-radius: #{18rpx};
- top: #{42.5rpx};
- }
- .app-vip-logo {
- height: #{54rpx};
- width: #{60rpx};
- margin: 0 #{30rpx} 0 #{25rpx};
- }
- .buy-big-text {
- font-size: #{28rpx};
- margin-bottom: #{4rpx};
- }
- .buy-small-text {
- font-size: #{22rpx};
- }
- .app-vip-btn {
- position: absolute;
- right: #{45rpx};
- top: #{36rpx};
- font-size: #{25rpx};
- width: #{140rpx};
- height: #{48rpx};
- line-height: #{48rpx};
- text-align: center;
- border-radius: #{24rpx};
- background: -webkit-linear-gradient(left, #fbdec7, #f3bf95);
- background: -o-linear-gradient(left, #fbdec7, #f3bf95);
- background: linear-gradient(to right, #fbdec7, #f3bf95);
- }
- .right-icon {
- height: #{22rpx};
- width: #{12rpx};
- margin-left: #{8rpx};
- }
- </style>
|