agri-app/colorui/components/cu-custom/cu-custom.vue

130 lines
3.5 KiB
Vue

<template>
<!-- colorui/components/cu-custom.wxml -->
<view :class="'cu-custom ' + (isLucency == true ? 'lucency' : '')" :style="'height:' + (isLucency == true ? 0 : CustomBar) + 'px'">
<view
:class="'cu-bar ' + (noFixed ? '' : 'fixed') + ' ' + (bgImage != '' ? 'none-bg text-white bg-img' : '') + ' ' + bgColor"
:style="'height:' + CustomBar + 'px;padding-top:' + StatusBar + 'px;' + (bgImage ? 'background-image:url( + bgImage+)' : '')"
>
<view class="action" @tap="BackPage" v-if="isBack && mode != 'singlePage'">
<text class="cuIcon-back"></text>
<slot name="backText"></slot>
</view>
<view class="action" @tap="toHome" :data-url="homePage" v-if="isBack && mode == 'singlePage'">
<text class="cuIcon-home padding-left-sm"></text>
<slot name="homeText"></slot>
</view>
<view
class="action border-custom"
v-if="isCustom"
:style="'width:' + Custom.width + 'px;height:' + Custom.height + 'px;margin-left:calc(750rpx - ' + Custom.right + 'px)'"
>
<text class="cuIcon-back" @tap="BackPage"></text>
<text class="cuIcon-homefill" @tap="toHome" :data-url="homePage"></text>
</view>
<view class="content" :style="'top:' + StatusBar + 'px'">
<slot name="content"></slot>
</view>
<slot name="right"></slot>
</view>
</view>
</template>
<script>
// colorui/components/cu-custom.js
const app = getApp();
export default {
data() {
return {
StatusBar: app.globalData.StatusBar,
CustomBar: app.globalData.CustomBar,
Custom: app.globalData.Custom,
mode: 'default'
};
},
/**
* 组件的一些选项
*/
options: {
addGlobalClass: true,
multipleSlots: true
},
/**
* 组件的属性列表
*/
props: {
bgColor: {
type: String,
default: ''
},
isCustom: {
type: Boolean,
default: false
},
isBack: {
type: Boolean,
default: false
},
bgImage: {
type: String,
default: ''
},
isLucency: {
type: Boolean,
default: false
},
noFixed: {
type: Boolean,
default: false
},
homePage: {
type: String,
default: '/pages/index/index'
}
},
/**
* 组件的方法列表
*/
methods: {
handlePageShow() {
this.getInfo();
},
BackPage() {
uni.navigateBack({
delta: 1
});
},
toHome(e) {
if (e.currentTarget.dataset.url != '') {
uni.reLaunch({
url: e.currentTarget.dataset.url
});
} else {
uni.reLaunch({
url: '/pages/index/index'
});
}
},
getInfo() {
var that = this;
if (getCurrentPages().length === 1) {
that.setData({
mode: 'singlePage'
});
}
}
},
created: function () {}
};
</script>
<style>
/* colorui/components/cu-custom.wxss */
.lucency {
/* position: absolute;
z-index: 1; */
background-color: transparent !important;
}
</style>