This commit is contained in:
Vinjor 2025-04-03 16:46:51 +08:00
parent 783a6d8ab2
commit 70a543b4c7
14 changed files with 857 additions and 726 deletions

View File

@ -1,29 +1,16 @@
<template>
<!-- header -->
<view :style="{ backgroundColor, paddingTop: homeHeaderPaddingTop + 'px' }" class="navigationBar"
:class="{leftTitle: leftTitle}">
<template v-if="leftTitle">
<view class="navigationBarTitle" :style="{ color: titleColor }">
{{ title ? title : '' }}
</view>
</template>
<template v-else>
<view :style="{ backgroundColor:backgroundColor }" class="navigationBar">
<template>
<view class="navigationBarBack" @click="back">
<slot name="back">
<uni-icons size="24" type="left" :color="titleColor"></uni-icons>
</slot>
</view>
<view class="navigationBarTitle" :style="{ color: titleColor }">
{{ title }}
</view>
<view v-if="showClear" @click="clearNoReadFun" class="navigationBarIcon" :style="{ color: titleColor }">
<image src="@/static/images/clear.png" mode="" class="clear-icon"></image>
<view class="navigationBarIcon" :style="{ color: titleColor }">
</view>
</template>
<view class="navigationBarBackExtra">
<slot name="extra">
</slot>
</view>
</view>
</template>
@ -44,40 +31,10 @@
type: String,
default: '#fff'
},
leftTitle: {
type: Boolean,
default: false
},
showClear: {
type: Boolean,
default: false
}
},
mounted() {
// #ifdef MP
const {
barHeight,
barTop,
menuButtonLeft
} = getWXStatusHeight()
console.log('barHeight, barTop, menuButtonLeft: ', barHeight, barTop, menuButtonLeft);
this.homeHeaderPaddingTop = barTop || 0
this.homeHeaderMenuHeight = barHeight
this.homeHeaderMenuLeft = menuButtonLeft - 6
// #endif
},
data() {
return {
// #ifdef MP
homeHeaderPaddingTop: 0,
homeHeaderMenuHeight: 0,
homeHeaderMenuLeft: 0,
// #endif
// #ifdef APP || H5
homeHeaderPaddingTop: 20,
homeHeaderMenuHeight: 50,
homeHeaderMenuLeft: 0
// #endif
}
},
methods: {
@ -93,37 +50,27 @@
<style lang="scss" scoped>
.navigationBar {
position: absolute;
top: var(--status-bar-height);
height: 90rpx;
width: 100%;
display: flex;
align-items: center;
font-size: 30rpx;
justify-content: center;
&.leftTitle {
justify-content: start;
padding-left: 28rpx;
}
z-index: 999;
.navigationBarBack {
position: absolute;
left: 20rpx;
}
.navigationBarBackExtra {
position: absolute;
right: 20rpx;
width: 200rpx;
}
.navigationBarTitle {
font-size: 36rpx;
flex: 1;
text-align: center;
}
.navigationBarIcon {
display: flex;
}
.clear-icon {
width: 40rpx;
height: 40rpx;
border-radius: 50%;
width: 200rpx;
}
}
</style>

View File

@ -7,7 +7,8 @@
"componentPlaceholder": {
"mine-index": "view",
"notice-index": "view",
"subscribe": "view"
"subscribe": "view",
"my-notice": "view"
}
}
}, {
@ -47,6 +48,13 @@
"style": {
"navigationBarTitleText": "订阅设置"
}
},
{
"path": "report",
"style": {
"navigationBarTitleText": "报名",
"navigationStyle": "custom"
}
}
]
}, {
@ -66,7 +74,20 @@
"style": {
"navigationBarTitleText": "订阅"
}
}]
},
{
"path": "my-notice",
"style": {
"navigationBarTitleText": "我的通告"
}
},
{
"path": "my-notice-item",
"style": {
"navigationBarTitleText": "我的通告组件"
}
}
]
}, {
"root": "pages/mine",
"pages": [{
@ -110,6 +131,7 @@
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "多点通告",
"navigationBarBackgroundColor": "#FFFFFF"
"navigationBarBackgroundColor": "#FFFFFF",
"navigationStyle": "custom"
}
}

View File

@ -110,6 +110,7 @@
}
.dl-menu-box {
border-bottom: 1rpx solid #EEEEEE;
display: flex;
align-items: center;
justify-content: center;

View File

@ -74,9 +74,6 @@
<notice-item v-if="dataList.length>0" :dataList="dataList" @goDetail="goDetail()"></notice-item>
<notice-item v-if="dataList.length>0" :dataList="dataList" @goDetail="goDetail()"></notice-item>
<notice-item v-if="dataList.length>0" :dataList="dataList" @goDetail="goDetail()"></notice-item>
<notice-item v-if="dataList.length>0" :dataList="dataList" @goDetail="goDetail()"></notice-item>
<notice-item v-if="dataList.length>0" :dataList="dataList" @goDetail="goDetail()"></notice-item>
<notice-item v-if="dataList.length>0" :dataList="dataList" @goDetail="goDetail()"></notice-item>
<view style="text-align: center" v-if="dataList.length==0">
<image class="" src="@/static/images/nothing.png"></image>
</view>
@ -505,6 +502,7 @@
transition: 1s;
.dl-text {
font-size: 32rpx;
line-height: 78rpx;
font-weight: bold;
}
@ -577,10 +575,10 @@
align-items: center;
border-radius: 35rpx;
justify-content: center;
height: 120rpx;
height: 100rpx;
width: 100%;
background: url('/static/index/member-bg.png');
background-size: contain;
background-size: 100% 100%;
background-position: center;
/* 图片居中显示 */
background-repeat: no-repeat;
@ -612,10 +610,9 @@
}
.dl-item-box {
height: calc(100vh - var(--status-bar-height) - var(--window-bottom) - 607rpx);
height: calc(100vh - var(--status-bar-height) - var(--window-bottom) - 586rpx);
isplay: flex;
flex-direction: column;
padding-top: 15rpx;
}
}
}

View File

@ -39,6 +39,47 @@
<image class="right-image" :src="imageUrl+item.mainImage" mode="aspectFit"></image>
</view>
</view>
<!-- 单个数据 -->
<view v-if="null!=dataObj" class="dl-notice-box no-bg" @click="goDetail(item)">
<view class="dl-notice-title">
<image class="dl-image" :src="'/static/platform/'+dataObj.platformCode+'.png'" mode="aspectFit"></image>
<view class="dl-text">{{dataObj.title}}</view>
</view>
<view class="dl-notice-content">
<view class="left-text">
<view class="text-item">
<image class="dl-icon" src="@/static/index/money.png" mode="aspectFit"></image>
<view v-if="null==dataObj.feeUp" class="dl-content">奖励无稿费</view>
<view v-else class="dl-content">奖励¥{{dataObj.feeDown}}-{{dataObj.feeUp}}</view>
</view>
<view class="text-item">
<image class="dl-icon" src="@/static/index/my.png" mode="aspectFit"></image>
<view class="dl-content">
粉丝{{formatNumberWithUnits(dataObj.fansDown)}}-{{formatNumberWithUnits(dataObj.fansUp)}}
</view>
</view>
<view class="text-item" style="border-bottom: 1rpx solid #F4F4F4;padding-bottom: 10rpx;">
<image class="dl-icon" src="@/static/index/xing.png" mode="aspectFit"></image>
<view class="dl-content">类型{{dataObj.bloggerTypesText}}</view>
</view>
<view class="text-item" style="padding-top: 10rpx;">
<view class="item-box" style="width: 40%;">
<image class="dl-icon2" :src="imageUrl+dataObj.avatar" mode="aspectFit"></image>
<view class="dl-item-right">{{dataObj.userNickName}}</view>
</view>
<view class="item-box">
<image class="dl-icon3" src="@/static/index/person.png" mode="aspectFit"></image>
<view class="dl-item-right dl-number">{{dataObj.reportNum}}</view>
</view>
<view class="item-box">
<image class="dl-icon3" src="@/static/index/eye.png" mode="aspectFit"></image>
<view class="dl-item-right dl-number">{{dataObj.viewNum}}</view>
</view>
</view>
</view>
<image class="right-image" :src="imageUrl+dataObj.mainImage" mode="aspectFit"></image>
</view>
</view>
</view>
</template>
@ -52,6 +93,10 @@
dataList: {
type: Array,
default: []
},
dataObj: {
type: Object,
default: null
}
},
data() {
@ -80,6 +125,15 @@
<style lang="scss">
.dl-components {
.dl-notice-box:first-child {
margin-top: 20rpx;
}
.no-bg {
background: none !important;
margin-bottom: 0 !important;
padding-top: 0 !important;
}
.dl-notice-box {
font-size: 29rpx;

View File

@ -106,7 +106,7 @@
position: relative;
.dl-title {
font-size: 38rpx;
font-size: 32rpx;
width: 100%;
position: relative;
text-align: center;
@ -146,6 +146,7 @@
}
.seting {
font-size: 30rpx;
width: 180rpx;
display: flex;
align-items: center;

View File

@ -6,6 +6,7 @@
<notice-index v-show="'home'==menuCode"></notice-index>
<mine-index v-show="'my'==menuCode"></mine-index>
<subscribe v-show="'dingyue'==menuCode"></subscribe>
<my-notice v-show="'myNotice'==menuCode"></my-notice>
</view>
<tabBarVue :menuCode="menuCode" ref="tarBar" @changeMenu="changeMenu"></tabBarVue>
</view>
@ -16,12 +17,14 @@
import noticeIndex from '@/pages/components/notice-index.vue'
import subscribe from '@/pages/components/subscribe.vue'
import mineIndex from '@/pages/mine/mine-index.vue'
import myNotice from '@/pages/components/my-notice.vue'
export default {
components: {
tabBarVue,
noticeIndex,
subscribe,
mineIndex
mineIndex,
myNotice
},
data() {
return {

View File

@ -1,6 +1,7 @@
<template>
<view class="member-card-box">
<navigation-bar-vue title="会员中心" background-color="#262626" title-color="#FFFFFF"></navigation-bar-vue>
<navigation-bar-vue title="会员中心" style="width: 100%;" background-color="#262626"
title-color="#FFFFFF"></navigation-bar-vue>
<view class="main-body">
<!-- 会员卡展示区 -->
<view class="vip-box">
@ -61,6 +62,66 @@
</view>
</view>
</view>
<view class="rights-item item-bg" v-for="(item,index) in rightsList">
<view class="title-left">{{item.name}}</view>
<view :class="[i==cardList.length-1?'value-item yellow-bg':'value-item']"
v-for="(card,i) in cardList">
<view v-if="'02'==item.rightsType">
<!-- 数量限制 -->
<text v-if="0==item.cardRights[card.id]">无限</text>
<text v-else>{{item.cardRights[card.id]}}</text>
</view>
<view v-else-if="'01'==item.rightsType">
<!-- 是否支持 -->
<text v-if="0==item.cardRights[card.id]">-</text>
<view v-else>
<uni-icons v-if="i==cardList.length-1" color="#3A3A38" type="checkmarkempty"
size="18"></uni-icons>
<uni-icons v-else color="#E8CEAD" type="checkmarkempty" size="18"></uni-icons>
</view>
</view>
</view>
</view>
<view class="rights-item item-bg" v-for="(item,index) in rightsList">
<view class="title-left">{{item.name}}</view>
<view :class="[i==cardList.length-1?'value-item yellow-bg':'value-item']"
v-for="(card,i) in cardList">
<view v-if="'02'==item.rightsType">
<!-- 数量限制 -->
<text v-if="0==item.cardRights[card.id]">无限</text>
<text v-else>{{item.cardRights[card.id]}}</text>
</view>
<view v-else-if="'01'==item.rightsType">
<!-- 是否支持 -->
<text v-if="0==item.cardRights[card.id]">-</text>
<view v-else>
<uni-icons v-if="i==cardList.length-1" color="#3A3A38" type="checkmarkempty"
size="18"></uni-icons>
<uni-icons v-else color="#E8CEAD" type="checkmarkempty" size="18"></uni-icons>
</view>
</view>
</view>
</view>
<view class="rights-item item-bg" v-for="(item,index) in rightsList">
<view class="title-left">{{item.name}}</view>
<view :class="[i==cardList.length-1?'value-item yellow-bg':'value-item']"
v-for="(card,i) in cardList">
<view v-if="'02'==item.rightsType">
<!-- 数量限制 -->
<text v-if="0==item.cardRights[card.id]">无限</text>
<text v-else>{{item.cardRights[card.id]}}</text>
</view>
<view v-else-if="'01'==item.rightsType">
<!-- 是否支持 -->
<text v-if="0==item.cardRights[card.id]">-</text>
<view v-else>
<uni-icons v-if="i==cardList.length-1" color="#3A3A38" type="checkmarkempty"
size="18"></uni-icons>
<uni-icons v-else color="#E8CEAD" type="checkmarkempty" size="18"></uni-icons>
</view>
</view>
</view>
</view>
<view class="rights-item item-bg">
<view class="title-left">每日报名上限</view>
<view class="value-item">20</view>
@ -191,6 +252,7 @@
<style lang="scss">
.member-card-box {
width: 100%;
padding-top: calc(90rpx + var(--status-bar-height));
color: #363636;
font-size: 29rpx;
background-color: #262626;
@ -203,7 +265,8 @@
.main-body {
width: 100%;
min-height: calc(100vh - var(--status-bar-height) - var(--window-bottom) - 57rpx);
height: calc(100vh - var(--status-bar-height) - var(--window-bottom) - 90rpx);
overflow-y: scroll;
padding: 20rpx;
display: flex;
flex-direction: column;

View File

@ -310,10 +310,10 @@
margin-top: 10rpx;
border-radius: 35rpx;
justify-content: center;
height: 120rpx;
height: 100rpx;
width: 100%;
background: url('/static/index/member-bg.png');
background-size: contain;
background-size: 100% 100%;
background-position: center;
/* 图片居中显示 */
background-repeat: no-repeat;
@ -352,6 +352,7 @@
}
.points-box {
margin-top: 10rpx;
width: 100%;
display: flex;
align-items: center;

View File

@ -1,5 +1,8 @@
<template>
<view class="dl-detail-box">
<navigation-bar-vue title="会员中心" style="width: 100%;" background-color="#ffffff"
title-color="#000000"></navigation-bar-vue>
<view class="notice-detail-last-box">
<!-- 博主信息 -->
<view class="info-box">
<image class="image" :src="userDetail.avatar?imageUrl+userDetail.avatar :'/static/images/profile.jpg'"
@ -136,7 +139,7 @@
<image src="@/static/detail/share.png" mode="aspectFit"></image>
</view>
<view v-if="null==userInfo" class="join-report">请登录后报名</view>
<view v-else-if="ifBz" class="join-report">报名参加</view>
<view v-else-if="ifBz" @click="goReport()" class="join-report">报名参加</view>
<view v-else class="join-report" @click="changeUserType()">切换博主后报名</view>
</view>
<!-- 通告发布人能操作的 -->
@ -165,9 +168,11 @@
:goodsTitle="goodsTitle" :shareImage="shareImage" :qrSize="qrSize" :qrUrl="qrUrl"
@success="shareSuccess()" />
</view>
</view>
</template>
<script>
import navigationBarVue from '@/components/navigation/navigationBar.vue';
import html2canvas from 'html2canvas';
import shareImages from '@/components/hj-placard/shareImages.vue'
import constant from '@/utils/constant';
@ -191,7 +196,8 @@
import config from '@/config'
export default {
components: {
shareImages
shareImages,
navigationBarVue
},
data() {
return {
@ -424,6 +430,12 @@
goHome() {
this.$tab.reLaunch('/pages/index')
},
/**
* 报名
*/
goReport() {
this.$tab.navigateTo('/pages/notice/report')
},
/**
* 分享
*/
@ -482,8 +494,9 @@
<style lang="scss">
.dl-detail-box {
padding: 20rpx 25rpx 130rpx 25rpx;
width: 100%;
padding-top: calc(90rpx + var(--status-bar-height));
background-color: white;
color: #363636;
font-size: 30rpx;
height: 100%;
@ -493,6 +506,17 @@
justify-content: center;
position: relative;
.notice-detail-last-box {
height: calc(100vh - var(--status-bar-height) - var(--window-bottom) - 90rpx);
overflow-y: scroll;
padding: 30rpx 30rpx 115rpx 30rpx;
background-color: #F6F6F6;
display: flex;
flex-direction: column;
align-items: self-start;
justify-content: start;
position: relative;
.info-box {
width: 100%;
padding: 28rpx;
@ -797,4 +821,5 @@
}
}
}
}
</style>

View File

@ -1,11 +1,14 @@
<template>
<view class="dingyue-box">
<navigation-bar-vue style="width: 100%;" title="报名" background-color="#FFFFFF"
title-color="#3D3D3D"></navigation-bar-vue>
<view class="select-box-dom">
<view class="line-box">
<view class="dl-title">领域</view>
<view class="dl-content">
<view class="line-row" v-for="(item,index) in bloggerTypeList">
<view v-for="(t,i) in item" :class="t.code==dataObj.bloggerTypeCode?'line-item click':'line-item'"
<view v-for="(t,i) in item"
:class="t.code==dataObj.bloggerTypeCode?'line-item click':'line-item'"
@click="changeChooseValue(t,'bloggerTypeCode')">
{{t.title}}
</view>
@ -29,7 +32,8 @@
<view class="dl-title">通告类型</view>
<view class="dl-content">
<view class="line-row" v-for="(item,index) in noticeTypeList">
<view v-for="(t,i) in item" :class="t.code==dataObj.noticeTypeCode?'line-item click':'line-item'"
<view v-for="(t,i) in item"
:class="t.code==dataObj.noticeTypeCode?'line-item click':'line-item'"
@click="changeChooseValue(t,'noticeTypeCode')">
{{t.title}}
</view>
@ -72,7 +76,8 @@
<view class="dl-title">奖励</view>
<view class="dl-content">
<view class="line-row" v-for="(item,index) in rewardTypeList">
<view v-for="(t,i) in item" :class="t.code==dataObj.rewardTypeCode?'line-item click':'line-item'"
<view v-for="(t,i) in item"
:class="t.code==dataObj.rewardTypeCode?'line-item click':'line-item'"
@click="changeChooseValue(t,'rewardTypeCode')">
{{t.title}}
</view>
@ -107,8 +112,8 @@
@change="switchChange($event,'newNotice')" />
</view>
<view class="seting-view"><text>订阅通告主新通告</text>
<switch v-if="dataObj.forkNotice" style="float: right;display: flex;" checked color="#FC1F3E"
@change="switchChange($event,'forkNotice')" />
<switch v-if="dataObj.forkNotice" style="float: right;display: flex;" checked
color="#FC1F3E" @change="switchChange($event,'forkNotice')" />
<switch v-else style="float: right;display: flex;" color="#FC1F3E"
@change="switchChange($event,'forkNotice')" />
</view>
@ -118,6 +123,7 @@
<view class="line-box" style="align-items: center;">
<view class="submit-box" @click="saveSet()">保存</view>
</view>
</view>
<!-- 输入框示例 -->
<uni-popup ref="inputDialog" type="dialog" :key="keywordsValue">
<uni-popup-dialog ref="inputClose" mode="input" title="新增关键词" placeholder="请输入关键词"
@ -134,7 +140,11 @@
getSubscribeSet,
saveSubscribe
} from '@/api/business/subscribeSet.js'
import navigationBarVue from '@/components/navigation/navigationBar.vue';
export default {
components: {
navigationBarVue
},
data() {
return {
//
@ -327,6 +337,7 @@
<style lang="scss">
.dingyue-box {
padding-top: calc(90rpx + var(--status-bar-height));
border-top: 1rpx solid #F4F4F4;
width: 100%;
color: #363636;
@ -339,13 +350,18 @@
justify-content: center;
position: relative;
.select-box-dom {
width: 100%;
height: calc(100vh - var(--status-bar-height) - var(--window-bottom) - 90rpx);
overflow-y: scroll;
.line-box {
width: 100%;
padding: 30rpx 30rpx 20rpx 30rpx;
display: flex;
flex-direction: column;
align-items: self-start;
justify-content: inherit;
justify-content: flex-start;
.submit-box {
padding: 15rpx 0;
@ -457,4 +473,5 @@
}
}
}
}
</style>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 29 KiB

View File

@ -462,10 +462,10 @@
display: flex;
/* #ifdef APP-NVUE */
// nvue 使 margin-bottom error
padding-bottom: 22px;
padding-bottom: 20rpx;
/* #endif */
/* #ifndef APP-NVUE */
margin-bottom: 22px;
margin-bottom: 20rpx;
/* #endif */
flex-direction: row;