295 lines
6.5 KiB
Vue
295 lines
6.5 KiB
Vue
<template>
|
|
<view>
|
|
<view class="page-content">
|
|
<!-- 所有内容的容器 -->
|
|
<slot></slot>
|
|
</view>
|
|
|
|
<!-- <module-bar ref="moduleBar" :moduleBarInfos="moduleBarInfos" @getCurPageInfo="getCurPageInfo"></module-bar> -->
|
|
|
|
<m-tabbar fill fixed safeBottom
|
|
:tabbarHeight="140"
|
|
:current="current"
|
|
:tabbar="tabbar2"
|
|
:beforeChange="tabbarBeforeChange">
|
|
<template v-slot:tabbar_index_2>
|
|
<view class="custom_style" @click="switchToPublish">
|
|
<view class="action add-action">
|
|
<text class="cuIcon-add bg-main-color"></text>
|
|
</view>
|
|
<text class="title">发布</text>
|
|
</view>
|
|
</template>
|
|
</m-tabbar>
|
|
|
|
<!-- 发布 -->
|
|
<view class="cu-modal content-mask" :class="isShowPublish?'show':''">
|
|
<view class="cu-dialog bottom-dialog margin-bottom-with-bar">
|
|
<view class="padding-xl">
|
|
<view class="flex justify-start margin-tb-xl">
|
|
<view class="cu-avatar round middle-avatar first-avatar">
|
|
<view class="cuIcon-formfill"></view>
|
|
</view>
|
|
<view class="flex flex-column-around text-left margin-left-sm text-white"
|
|
@click="goRouter('/pages/publish/publish-task')">
|
|
<view class="text-xl">发布任务</view>
|
|
<view>公司、家居家政雇佣上门服务</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="cu-bar tabbar margin-bottom-xl fixed-bottom-bar">
|
|
<view class="action add-action" @click.stop="isShowPublish = false">
|
|
<button class="cu-btn bg-gray cuIcon-close"></button>
|
|
<text class="mask-close-text">关闭</text>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<!-- 登录校验弹窗 -->
|
|
<vertify-login ref="vertifyLogin" @reload="reloadForwardPage"></vertify-login>
|
|
<vertify-phone ref="vertifyPhone" @reload="reloadForwardPage"></vertify-phone>
|
|
|
|
<valid ref="validRef"></valid>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
|
|
import valid from '@/pages/index/components/valid.vue';
|
|
let that
|
|
export default {
|
|
name: "CTabbar",
|
|
components: {
|
|
valid
|
|
},
|
|
props: {
|
|
current: {
|
|
type: Number,
|
|
default: 0
|
|
}
|
|
},
|
|
data() {
|
|
return {
|
|
tabbar2: {
|
|
color: "#aaaaaa",
|
|
selectedColor: "#0081ff",
|
|
backgroundColor: "#FFFFFF",
|
|
list: [{
|
|
pagePath: "pages/index/home",
|
|
text: "首页",
|
|
cuIcon: 'homefill',
|
|
openType: 'switchTab'
|
|
},
|
|
{
|
|
pagePath: "pages/index/worker-home",
|
|
text: "师傅圈",
|
|
cuIcon: 'circle',
|
|
openType: 'switchTab'
|
|
},
|
|
{
|
|
cuIcon: 'plus'
|
|
},
|
|
{
|
|
pagePath: "pages/index/msg-home",
|
|
text: "消息",
|
|
cuIcon: 'message',
|
|
openType: 'switchTab'
|
|
},
|
|
{
|
|
pagePath: "pages/index/my-home",
|
|
text: "我的",
|
|
cuIcon: 'my',
|
|
openType: 'switchTab'
|
|
}
|
|
]
|
|
},
|
|
isShowPublish: false,
|
|
initParam: null
|
|
};
|
|
},
|
|
created() {
|
|
uni.hideTabBar();
|
|
that = this;
|
|
uni.$on('initValid', this.initValid)
|
|
},
|
|
mounted() {
|
|
this.authLogin()
|
|
// this.$refs.vertifyLogin.showModal();
|
|
},
|
|
methods: {
|
|
async initValid(initParam) {
|
|
this.initParam = initParam
|
|
if (initParam && initParam.distributor) {
|
|
const res = await this.authLogin()
|
|
this.$refs.validRef.loadData(initParam, res)
|
|
}
|
|
},
|
|
goRouter(path) {
|
|
uni.navigateTo({
|
|
url: path
|
|
})
|
|
},
|
|
async switchToPublish() {
|
|
const res = await this.authLogin()
|
|
if(res) {
|
|
this.isShowPublish = true
|
|
}
|
|
},
|
|
tabbarBeforeChange: async (next, index) => {
|
|
console.log('tabbarBeforeChange==', index);
|
|
if (index === 4) {
|
|
const res = await that.authLogin()
|
|
console.log(res);
|
|
if(res){
|
|
next()
|
|
}
|
|
} else {
|
|
next()
|
|
}
|
|
},
|
|
async authLogin() {
|
|
// 更新缓存中的userInfo
|
|
let res = await this.$request.storageExistUser();
|
|
// 获取缓存中的userInfo
|
|
let curUserInfo = this.$request.getCurUserInfo();
|
|
// 校验提示登录
|
|
if (!curUserInfo || !curUserInfo.openId) {
|
|
this.$refs.vertifyPhone.showModal();
|
|
return false;
|
|
} else {
|
|
this.$refs.vertifyPhone.hideModal();
|
|
}
|
|
// 校验提示获取手机号码
|
|
// if (!curUserInfo.phone) {
|
|
// this.$refs.vertifyPhone.showModal();
|
|
// return false;
|
|
// } else {
|
|
// this.$refs.vertifyPhone.hideModal();
|
|
// }
|
|
return true;
|
|
},
|
|
async reloadForwardPage() {
|
|
const res = await this.authLogin()
|
|
if(res) {
|
|
this.$refs.validRef.loadData(this.initParam, res)
|
|
}
|
|
// if(this.$refs.validRef.inByShare){
|
|
// this.$refs.validRef.loadData(this.initParam)
|
|
// } else {
|
|
// this.authLogin()
|
|
// }
|
|
},
|
|
},
|
|
destroyed() {
|
|
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.page-content {
|
|
width: 100vw;
|
|
// height: calc(100vh - env(safe-area-inset-bottom) - 100rpx);
|
|
background-color: #F7F8FA;
|
|
overflow-x: hidden;
|
|
}
|
|
|
|
.custom_style {
|
|
position: relative;
|
|
z-index: 2;
|
|
color: #aaaaaa;
|
|
margin-top: -22upx;
|
|
font-size: 24upx;
|
|
text-align: center;
|
|
}
|
|
|
|
.custom_style .action.add-action {
|
|
position: relative;
|
|
z-index: 2;
|
|
color: #aaaaaa;
|
|
margin-top: -22upx;
|
|
font-size: 24upx;
|
|
width: 70upx;
|
|
margin-bottom: 17rpx;
|
|
}
|
|
|
|
.custom_style .action.add-action [class*="cuIcon-"] {
|
|
position: relative;
|
|
display: inline-block;
|
|
width: 70upx;
|
|
height: 70upx;
|
|
border-radius: 50%;
|
|
line-height: 70upx;
|
|
font-size: 50upx;
|
|
text-align: center;
|
|
}
|
|
|
|
.custom_style .action.add-action .bg-main-color {
|
|
margin-bottom: 6upx;
|
|
}
|
|
|
|
.custom_style .action.add-action::after {
|
|
content: "";
|
|
position: absolute;
|
|
width: 100upx;
|
|
height: 100upx;
|
|
top: -14upx;
|
|
left: -14rpx;
|
|
right: 0;
|
|
margin: auto;
|
|
box-shadow: 0 -3upx 8upx rgba(0, 0, 0, 0.08);
|
|
border-radius: 50upx;
|
|
background-color: inherit;
|
|
z-index: -1;
|
|
border-bottom: transparent;
|
|
background-color: #FFFFFF;
|
|
}
|
|
|
|
.custom_style .title {
|
|
color: #aaaaaa;
|
|
font-size: 24upx;
|
|
}
|
|
.content-mask {
|
|
z-index: 9999;
|
|
background: rgba(0, 0, 0, 0.9);
|
|
}
|
|
|
|
.mask-close-text {
|
|
visibility: hidden;
|
|
}
|
|
|
|
.middle-avatar {
|
|
width: 120rpx;
|
|
height: 120rpx;
|
|
}
|
|
|
|
.middle-avatar [class*="cuIcon-"] {
|
|
font-size: 53rpx !important;
|
|
}
|
|
|
|
.cu-avatar.first-avatar {
|
|
background-color: #0081ff;
|
|
color: #ffffff;
|
|
}
|
|
|
|
.cu-avatar.second-avatar {
|
|
background-color: #fbbd08;
|
|
color: #ffffff;
|
|
}
|
|
|
|
.cu-avatar.third-avatar {
|
|
background-color: #f37b1d;
|
|
color: #ffffff;
|
|
}
|
|
|
|
.cu-avatar.fourth-avatar {
|
|
background-color: #1cbbb4;
|
|
color: #ffffff;
|
|
}
|
|
|
|
.cu-dialog.bottom-dialog {
|
|
background-color: unset;
|
|
vertical-align: bottom;
|
|
}
|
|
</style> |