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

View File

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

View File

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

View File

@ -39,6 +39,47 @@
<image class="right-image" :src="imageUrl+item.mainImage" mode="aspectFit"></image> <image class="right-image" :src="imageUrl+item.mainImage" mode="aspectFit"></image>
</view> </view>
</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> </view>
</template> </template>
@ -52,6 +93,10 @@
dataList: { dataList: {
type: Array, type: Array,
default: [] default: []
},
dataObj: {
type: Object,
default: null
} }
}, },
data() { data() {
@ -80,6 +125,15 @@
<style lang="scss"> <style lang="scss">
.dl-components { .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 { .dl-notice-box {
font-size: 29rpx; font-size: 29rpx;

View File

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

View File

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

View File

@ -1,6 +1,7 @@
<template> <template>
<view class="member-card-box"> <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="main-body">
<!-- 会员卡展示区 --> <!-- 会员卡展示区 -->
<view class="vip-box"> <view class="vip-box">
@ -61,6 +62,66 @@
</view> </view>
</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" 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="rights-item item-bg">
<view class="title-left">每日报名上限</view> <view class="title-left">每日报名上限</view>
<view class="value-item">20</view> <view class="value-item">20</view>
@ -191,6 +252,7 @@
<style lang="scss"> <style lang="scss">
.member-card-box { .member-card-box {
width: 100%; width: 100%;
padding-top: calc(90rpx + var(--status-bar-height));
color: #363636; color: #363636;
font-size: 29rpx; font-size: 29rpx;
background-color: #262626; background-color: #262626;
@ -203,7 +265,8 @@
.main-body { .main-body {
width: 100%; 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; padding: 20rpx;
display: flex; display: flex;
flex-direction: column; flex-direction: column;

View File

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

View File

@ -1,173 +1,178 @@
<template> <template>
<view class="dl-detail-box"> <view class="dl-detail-box">
<!-- 博主信息 --> <navigation-bar-vue title="会员中心" style="width: 100%;" background-color="#ffffff"
<view class="info-box"> title-color="#000000"></navigation-bar-vue>
<image class="image" :src="userDetail.avatar?imageUrl+userDetail.avatar :'/static/images/profile.jpg'" <view class="notice-detail-last-box">
mode="aspectFit"></image> <!-- 博主信息 -->
<view class="name-info"> <view class="info-box">
<view class="name">{{userDetail.nickName}}</view> <image class="image" :src="userDetail.avatar?imageUrl+userDetail.avatar :'/static/images/profile.jpg'"
<view class="text">{{userDetail.identityType}}</view> mode="aspectFit"></image>
</view> <view class="name-info">
<view class="fork-info"> <view class="name">{{userDetail.nickName}}</view>
<view class="up-box"> <view class="text">{{userDetail.identityType}}</view>
<view class="item-dom-guanzhu" v-if="!isLove" @click="forkUser('1')">关注</view> </view>
<view class="item-dom-yiguanzhu" v-if="isLove" @click="forkUser('0')">已关注</view> <view class="fork-info">
<view class="item-dom-zhuye">主页</view> <view class="up-box">
<view class="item-dom-guanzhu" v-if="!isLove" @click="forkUser('1')">关注</view>
<view class="item-dom-yiguanzhu" v-if="isLove" @click="forkUser('0')">已关注</view>
<view class="item-dom-zhuye">主页</view>
</view>
<view class="down-box">举报</view>
</view> </view>
<view class="down-box">举报</view>
</view> </view>
<!-- 通告信息 -->
<view class="info-box notice-main">
<view class="dl-notice-title">
<image class="dl-image" :src="'/static/platform/'+platformCode+'.png'" mode="aspectFit"></image>
<view class="dl-text">{{noticeDetail.title}}</view>
</view>
<view class="end-time">截止日期{{noticeDetail.endDate}}</view>
<view class="field-box">
<view class="dl-item">
<view class="dl-label">
奖励
</view>
<view class="dl-value">
<text v-if="null==noticeDetail.feeUp">无稿费</text>
<text v-else>¥{{noticeDetail.feeDown}}-{{noticeDetail.feeUp}}</text>
</view>
</view>
<view class="dl-item">
<view class="dl-label">
招募名额
</view>
<view class="dl-value">{{noticeDetail.needNum}} </view>
</view>
<view class="dl-item">
<view class="dl-label">
产品品牌
</view>
<view class="dl-value">{{noticeDetail.brand}} </view>
</view>
<view class="dl-item">
<view class="dl-label">
粉丝要求
</view>
<view class="dl-value">
{{formatNumberWithUnits(noticeDetail.fansDown)}}-{{formatNumberWithUnits(noticeDetail.fansUp)}}
</view>
</view>
<view class="dl-item">
<view class="dl-label">
地区要求
</view>
<view class="dl-value">{{noticeDetail.city}} </view>
</view>
<view class="dl-item">
<view class="dl-label">
博主类型
</view>
<view class="dl-value">{{noticeDetail.bloggerTypes}}</view>
</view>
</view>
<view class="bottom-box">
<text class="update-text">{{calculateTimeDifference(noticeDetail.updateTime)}}更新</text>
<text class="view-text">{{noticeDetail.viewNum}} 阅读</text>
</view>
</view>
<!-- 通告详情 -->
<view class="info-box notice-detail">
<view class="detail-title">通告详情</view>
<view class="detail-content">
<rich-text style="width: 100%" :nodes="noticeDetail.detail" />
</view>
<view class="detail-images">
<image v-for="(item,index) in noticeDetail.imageArray" :src="imageUrl+item" mode="widthFix"></image>
</view>
</view>
<!-- 联系方式 -->
<view class="info-box notice-detail">
<view class="detail-title">联系方式</view>
<view class="field-box">
<view class="dl-item">
<view class="dl-label">
联系人
</view>
<view class="dl-value">报名后可查看 </view>
</view>
<view class="dl-item">
<view class="dl-label">
微信号
</view>
<view class="dl-value">报名后可查看 </view>
</view>
<view class="dl-item">
<view class="dl-label">
微信二维码
</view>
<view class="dl-value">报名后可查看 </view>
</view>
<view class="dl-item">
<view class="dl-label">
加入通告二维码
</view>
<view class="dl-value">报名后可查看 </view>
</view>
</view>
</view>
<!-- 报名列表 -->
<view class="info-box notice-detail">
<view class="detail-title">收到报名{{imageArray.length}}</view>
<view class="image-box" v-if="imageArray.length>0"
:style="{height:(imageArray.length*(imageWidth+10)+20)+'rpx'}">
<view class="image-row" v-for="(row,rowIndex) in imageArray">
<image v-for="(item,i) in row"
:style="{ top:(imageWidth+10)*rowIndex+'rpx',left:imageWidth*i+'rpx'}"
src="@/static/images/profile.jpg" mode="aspectFit">
</image>
</view>
</view>
</view>
<!-- 去报名始终浮动下方 -->
<view class="dl-bottom-box" v-show="showBottom">
<!-- 报名 -->
<view class="report-box" v-if="null==userInfo || noticeDetail.userId!=userInfo.userId">
<view @click="goHome()">
<image src="@/static/detail/home.png" mode="aspectFit"></image>
</view>
<view @click="shareFun()">
<image src="@/static/detail/share.png" mode="aspectFit"></image>
</view>
<view v-if="null==userInfo" 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>
<!-- 通告发布人能操作的 -->
<view class="report-box" v-if="null!=userInfo && userInfo.userId==noticeDetail.userId">
<view v-if="'0'==noticeDetail.approvalStatus" class="close-notice">关闭</view>
<view v-if="'0'==noticeDetail.approvalStatus" class="waiting-approval">
<view>审核中</view>
<image @click="useCoupon()" src="@/static/detail/approval.png" mode="aspectFit"></image>
</view>
<view v-if="'2'==noticeDetail.approvalStatus" class="waiting-approval">已关闭</view>
<view v-if="'1'==noticeDetail.approvalStatus" class="waiting-approval" @click="closeNotice('2')">关闭
</view>
</view>
</view>
<!-- 提示窗示例 -->
<uni-popup ref="alertDialog" type="dialog">
<uni-popup-dialog cancelText="取消" confirmText="创建" iconPath="/static/detail/card.png"
content="没有符合粉丝要求的名片,无法报名" @confirm="dialogConfirm" @close="dialogClose"></uni-popup-dialog>
</uni-popup>
<!-- 分享示例 -->
<uni-popup ref="share" type="share" safeArea backgroundColor="#fff">
<uni-popup-share @select="selectShare()"></uni-popup-share>
</uni-popup>
<!-- 海报 -->
<shareImages ref="canvas" :canvasWidth="canvasWidth" :canvasHeight="canvasHeight" :shareTitle="shareTitle"
:goodsTitle="goodsTitle" :shareImage="shareImage" :qrSize="qrSize" :qrUrl="qrUrl"
@success="shareSuccess()" />
</view> </view>
<!-- 通告信息 -->
<view class="info-box notice-main">
<view class="dl-notice-title">
<image class="dl-image" :src="'/static/platform/'+platformCode+'.png'" mode="aspectFit"></image>
<view class="dl-text">{{noticeDetail.title}}</view>
</view>
<view class="end-time">截止日期{{noticeDetail.endDate}}</view>
<view class="field-box">
<view class="dl-item">
<view class="dl-label">
奖励
</view>
<view class="dl-value">
<text v-if="null==noticeDetail.feeUp">无稿费</text>
<text v-else>¥{{noticeDetail.feeDown}}-{{noticeDetail.feeUp}}</text>
</view>
</view>
<view class="dl-item">
<view class="dl-label">
招募名额
</view>
<view class="dl-value">{{noticeDetail.needNum}} </view>
</view>
<view class="dl-item">
<view class="dl-label">
产品品牌
</view>
<view class="dl-value">{{noticeDetail.brand}} </view>
</view>
<view class="dl-item">
<view class="dl-label">
粉丝要求
</view>
<view class="dl-value">
{{formatNumberWithUnits(noticeDetail.fansDown)}}-{{formatNumberWithUnits(noticeDetail.fansUp)}}
</view>
</view>
<view class="dl-item">
<view class="dl-label">
地区要求
</view>
<view class="dl-value">{{noticeDetail.city}} </view>
</view>
<view class="dl-item">
<view class="dl-label">
博主类型
</view>
<view class="dl-value">{{noticeDetail.bloggerTypes}}</view>
</view>
</view>
<view class="bottom-box">
<text class="update-text">{{calculateTimeDifference(noticeDetail.updateTime)}}更新</text>
<text class="view-text">{{noticeDetail.viewNum}} 阅读</text>
</view>
</view>
<!-- 通告详情 -->
<view class="info-box notice-detail">
<view class="detail-title">通告详情</view>
<view class="detail-content">
<rich-text style="width: 100%" :nodes="noticeDetail.detail" />
</view>
<view class="detail-images">
<image v-for="(item,index) in noticeDetail.imageArray" :src="imageUrl+item" mode="widthFix"></image>
</view>
</view>
<!-- 联系方式 -->
<view class="info-box notice-detail">
<view class="detail-title">联系方式</view>
<view class="field-box">
<view class="dl-item">
<view class="dl-label">
联系人
</view>
<view class="dl-value">报名后可查看 </view>
</view>
<view class="dl-item">
<view class="dl-label">
微信号
</view>
<view class="dl-value">报名后可查看 </view>
</view>
<view class="dl-item">
<view class="dl-label">
微信二维码
</view>
<view class="dl-value">报名后可查看 </view>
</view>
<view class="dl-item">
<view class="dl-label">
加入通告二维码
</view>
<view class="dl-value">报名后可查看 </view>
</view>
</view>
</view>
<!-- 报名列表 -->
<view class="info-box notice-detail">
<view class="detail-title">收到报名{{imageArray.length}}</view>
<view class="image-box" v-if="imageArray.length>0"
:style="{height:(imageArray.length*(imageWidth+10)+20)+'rpx'}">
<view class="image-row" v-for="(row,rowIndex) in imageArray">
<image v-for="(item,i) in row"
:style="{ top:(imageWidth+10)*rowIndex+'rpx',left:imageWidth*i+'rpx'}"
src="@/static/images/profile.jpg" mode="aspectFit">
</image>
</view>
</view>
</view>
<!-- 去报名始终浮动下方 -->
<view class="dl-bottom-box" v-show="showBottom">
<!-- 报名 -->
<view class="report-box" v-if="null==userInfo || noticeDetail.userId!=userInfo.userId">
<view @click="goHome()">
<image src="@/static/detail/home.png" mode="aspectFit"></image>
</view>
<view @click="shareFun()">
<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 class="join-report" @click="changeUserType()">切换博主后报名</view>
</view>
<!-- 通告发布人能操作的 -->
<view class="report-box" v-if="null!=userInfo && userInfo.userId==noticeDetail.userId">
<view v-if="'0'==noticeDetail.approvalStatus" class="close-notice">关闭</view>
<view v-if="'0'==noticeDetail.approvalStatus" class="waiting-approval">
<view>审核中</view>
<image @click="useCoupon()" src="@/static/detail/approval.png" mode="aspectFit"></image>
</view>
<view v-if="'2'==noticeDetail.approvalStatus" class="waiting-approval">已关闭</view>
<view v-if="'1'==noticeDetail.approvalStatus" class="waiting-approval" @click="closeNotice('2')">关闭
</view>
</view>
</view>
<!-- 提示窗示例 -->
<uni-popup ref="alertDialog" type="dialog">
<uni-popup-dialog cancelText="取消" confirmText="创建" iconPath="/static/detail/card.png"
content="没有符合粉丝要求的名片,无法报名" @confirm="dialogConfirm" @close="dialogClose"></uni-popup-dialog>
</uni-popup>
<!-- 分享示例 -->
<uni-popup ref="share" type="share" safeArea backgroundColor="#fff">
<uni-popup-share @select="selectShare()"></uni-popup-share>
</uni-popup>
<!-- 海报 -->
<shareImages ref="canvas" :canvasWidth="canvasWidth" :canvasHeight="canvasHeight" :shareTitle="shareTitle"
:goodsTitle="goodsTitle" :shareImage="shareImage" :qrSize="qrSize" :qrUrl="qrUrl"
@success="shareSuccess()" />
</view> </view>
</template> </template>
<script> <script>
import navigationBarVue from '@/components/navigation/navigationBar.vue';
import html2canvas from 'html2canvas'; import html2canvas from 'html2canvas';
import shareImages from '@/components/hj-placard/shareImages.vue' import shareImages from '@/components/hj-placard/shareImages.vue'
import constant from '@/utils/constant'; import constant from '@/utils/constant';
@ -191,7 +196,8 @@
import config from '@/config' import config from '@/config'
export default { export default {
components: { components: {
shareImages shareImages,
navigationBarVue
}, },
data() { data() {
return { return {
@ -424,6 +430,12 @@
goHome() { goHome() {
this.$tab.reLaunch('/pages/index') this.$tab.reLaunch('/pages/index')
}, },
/**
* 报名
*/
goReport() {
this.$tab.navigateTo('/pages/notice/report')
},
/** /**
* 分享 * 分享
*/ */
@ -482,8 +494,9 @@
<style lang="scss"> <style lang="scss">
.dl-detail-box { .dl-detail-box {
padding: 20rpx 25rpx 130rpx 25rpx;
width: 100%; width: 100%;
padding-top: calc(90rpx + var(--status-bar-height));
background-color: white;
color: #363636; color: #363636;
font-size: 30rpx; font-size: 30rpx;
height: 100%; height: 100%;
@ -493,307 +506,319 @@
justify-content: center; justify-content: center;
position: relative; position: relative;
.info-box { .notice-detail-last-box {
width: 100%; height: calc(100vh - var(--status-bar-height) - var(--window-bottom) - 90rpx);
padding: 28rpx; overflow-y: scroll;
padding: 30rpx 30rpx 115rpx 30rpx;
background-color: #F6F6F6;
display: flex; display: flex;
background-color: white; flex-direction: column;
border-radius: 30rpx; align-items: self-start;
align-items: center; justify-content: start;
justify-content: center; position: relative;
margin-bottom: 25rpx;
.image { .info-box {
flex: none; width: 100%;
width: 100rpx; padding: 28rpx;
height: 100rpx;
border-radius: 50%;
}
.name-info {
width: calc(100% - 350rpx);
flex: 1;
padding-left: 30rpx;
text-align: left;
display: flex; display: flex;
flex-direction: column; background-color: white;
align-items: flex-start; border-radius: 30rpx;
justify-content: center;
.name {
width: 100%;
font-weight: bold;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
padding-bottom: 10rpx;
}
.text {
font-size: 24rpx;
color: #929292;
}
}
.fork-info {
flex: none;
width: 270rpx;
display: flex;
flex-direction: column;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
margin-bottom: 25rpx;
.up-box { .image {
padding-bottom: 5rpx; flex: none;
width: 100rpx;
height: 100rpx;
border-radius: 50%;
}
.name-info {
width: calc(100% - 350rpx);
flex: 1;
padding-left: 30rpx;
text-align: left;
display: flex; display: flex;
font-size: 28rpx; flex-direction: column;
padding-left: 10rpx; align-items: flex-start;
justify-content: center;
.name {
width: 100%;
font-weight: bold;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
padding-bottom: 10rpx;
}
.text {
font-size: 24rpx;
color: #929292;
}
}
.fork-info {
flex: none;
width: 270rpx;
display: flex;
flex-direction: column;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
.item-dom-guanzhu { .up-box {
padding: 5rpx 22rpx; padding-bottom: 5rpx;
border-radius: 20rpx; display: flex;
color: white; font-size: 28rpx;
background-color: #FC1F3E; padding-left: 10rpx;
align-items: center;
justify-content: center;
.item-dom-guanzhu {
padding: 5rpx 22rpx;
border-radius: 20rpx;
color: white;
background-color: #FC1F3E;
}
.item-dom-yiguanzhu {
padding: 5rpx 22rpx;
border: 1rpx solid #FC1F3E;
border-radius: 20rpx;
color: #FC1F3E;
background-color: white;
}
.item-dom-zhuye {
margin-left: 15rpx;
padding: 5rpx 22rpx;
border-radius: 20rpx;
background-color: #F4F4F4;
}
} }
.item-dom-yiguanzhu { .down-box {
padding: 5rpx 22rpx; padding-top: 10rpx;
border: 1rpx solid #FC1F3E; font-size: 24rpx;
border-radius: 20rpx; color: #929292;
color: #FC1F3E;
background-color: white;
}
.item-dom-zhuye {
margin-left: 15rpx;
padding: 5rpx 22rpx;
border-radius: 20rpx;
background-color: #F4F4F4;
} }
} }
.down-box {
padding-top: 10rpx; }
font-size: 24rpx;
.notice-main {
align-items: flex-start;
flex-direction: column;
.dl-notice-title {
display: flex;
width: 100%;
padding-bottom: 10rpx;
align-items: center;
justify-content: center;
.dl-image {
flex: none;
width: 70rpx;
height: 70rpx;
}
.dl-text {
margin-left: 10rpx;
flex: 1;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
width: 100%;
font-weight: bold;
}
}
.end-time {
border-radius: 15rpx;
background-color: #FFF4F5;
padding: 8rpx 20rpx;
color: #FC1F3E;
}
.field-box {
margin: 20rpx 0;
padding: 25rpx 20rpx;
background-color: #FAFAFA;
border-radius: 15rpx;
width: 100%;
display: flex;
justify-content: center;
align-items: flex-start;
flex-direction: column;
.dl-item {
display: flex;
justify-content: center;
align-items: flex-start;
margin-bottom: 10rpx;
.dl-label {}
.dl-value {
flex: 1;
}
}
}
.bottom-box {
width: 100%;
border-top: 1rpx solid #F7F7F7;
padding: 25rpx 30rpx 5rpx 30rpx;
color: #929292; color: #929292;
font-size: 24rpx;
.update-text {
float: left;
}
.view-text {
float: right;
}
} }
} }
.notice-detail {
align-items: flex-start;
flex-direction: column;
} .detail-title {
border-left: 8rpx solid #FC1F3E;
.notice-main {
align-items: flex-start;
flex-direction: column;
.dl-notice-title {
display: flex;
width: 100%;
padding-bottom: 10rpx;
align-items: center;
justify-content: center;
.dl-image {
flex: none;
width: 70rpx;
height: 70rpx;
}
.dl-text {
margin-left: 10rpx;
flex: 1;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
width: 100%;
font-weight: bold; font-weight: bold;
padding-left: 20rpx;
} }
}
.end-time { .detail-content {
border-radius: 15rpx; width: 100%;
background-color: #FFF4F5; padding: 20rpx 0;
padding: 8rpx 20rpx; border-bottom: 1rpx solid #F7F7F7;
color: #FC1F3E; }
}
.field-box { .detail-images {
margin: 20rpx 0; width: 100%;
padding: 25rpx 20rpx;
background-color: #FAFAFA;
border-radius: 15rpx;
width: 100%;
display: flex;
justify-content: center;
align-items: flex-start;
flex-direction: column;
.dl-item { image {
display: flex; width: 100%;
justify-content: center; margin-top: 20rpx;
align-items: flex-start;
margin-bottom: 10rpx;
.dl-label {}
.dl-value {
flex: 1;
} }
} }
}
.bottom-box { .field-box {
width: 100%;
border-top: 1rpx solid #F7F7F7;
padding: 25rpx 30rpx 5rpx 30rpx;
color: #929292;
font-size: 24rpx;
.update-text {
float: left;
}
.view-text {
float: right;
}
}
}
.notice-detail {
align-items: flex-start;
flex-direction: column;
.detail-title {
border-left: 8rpx solid #FC1F3E;
font-weight: bold;
padding-left: 20rpx;
}
.detail-content {
width: 100%;
padding: 20rpx 0;
border-bottom: 1rpx solid #F7F7F7;
}
.detail-images {
width: 100%;
image {
width: 100%;
margin-top: 20rpx; margin-top: 20rpx;
} padding-top: 10rpx;
} border-radius: 15rpx;
width: 100%;
.field-box {
margin-top: 20rpx;
padding-top: 10rpx;
border-radius: 15rpx;
width: 100%;
display: flex;
justify-content: center;
align-items: flex-start;
flex-direction: column;
.dl-item {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: flex-start; align-items: flex-start;
margin-bottom: 10rpx; flex-direction: column;
.dl-label {} .dl-item {
display: flex;
justify-content: center;
align-items: flex-start;
margin-bottom: 10rpx;
.dl-value { .dl-label {}
flex: 1;
.dl-value {
flex: 1;
}
} }
} }
}
.image-box { .image-box {
width: 100%;
padding: 20rpx 0;
.image-row {
width: 100%; width: 100%;
position: relative; padding: 20rpx 0;
image { .image-row {
position: absolute; width: 100%;
border-radius: 50%; position: relative;
width: 90rpx;
height: 90rpx; image {
position: absolute;
border-radius: 50%;
width: 90rpx;
height: 90rpx;
}
} }
} }
} }
}
.dl-bottom-box { .dl-bottom-box {
border-top: 1rpx solid #F7F7F7; border-top: 1rpx solid #F7F7F7;
color: #363636; color: #363636;
position: fixed; position: fixed;
padding-bottom: 20rpx; padding-bottom: 20rpx;
padding-top: 20rpx; padding-top: 20rpx;
padding-left: 40rpx; padding-left: 40rpx;
padding-right: 40rpx; padding-right: 40rpx;
bottom: 0; bottom: 0;
background-color: #F7F7F7; background-color: #F7F7F7;
width: 100%; width: 100%;
.report-box { .report-box {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
.share-image { .share-image {
pointer-events: none; pointer-events: none;
background-color: #F7F7F7; background-color: #F7F7F7;
} }
image {
margin-right: 25rpx;
width: 80rpx;
height: 80rpx;
}
.join-report {
margin-left: 20rpx;
flex: 1;
padding: 15rpx;
text-align: center;
background-color: #FC1F3E;
border-radius: 14rpx;
color: white;
}
.close-notice {
padding: 15rpx 25rpx;
background-color: #F7F7F7;
border: 1rpx solid #E2E2E2;
border-radius: 10rpx;
margin-right: 20rpx;
}
.waiting-approval {
text-align: center;
padding: 15rpx 25rpx;
background-color: #E2E2E2;
border: 1rpx solid #D1D1D1;
border-radius: 10rpx;
position: relative;
flex: 1;
image { image {
position: absolute; margin-right: 25rpx;
top: -30px; width: 80rpx;
margin: auto; height: 80rpx;
left: 200rpx;
width: 150rpx;
} }
}
.join-report {
margin-left: 20rpx;
flex: 1;
padding: 15rpx;
text-align: center;
background-color: #FC1F3E;
border-radius: 14rpx;
color: white;
}
.close-notice {
padding: 15rpx 25rpx;
background-color: #F7F7F7;
border: 1rpx solid #E2E2E2;
border-radius: 10rpx;
margin-right: 20rpx;
}
.waiting-approval {
text-align: center;
padding: 15rpx 25rpx;
background-color: #E2E2E2;
border: 1rpx solid #D1D1D1;
border-radius: 10rpx;
position: relative;
flex: 1;
image {
position: absolute;
top: -30px;
margin: auto;
left: 200rpx;
width: 150rpx;
}
}
}
} }
} }
} }

View File

@ -1,122 +1,128 @@
<template> <template>
<view class="dingyue-box"> <view class="dingyue-box">
<navigation-bar-vue style="width: 100%;" title="报名" background-color="#FFFFFF"
<view class="line-box"> title-color="#3D3D3D"></navigation-bar-vue>
<view class="dl-title">领域</view> <view class="select-box-dom">
<view class="dl-content"> <view class="line-box">
<view class="line-row" v-for="(item,index) in bloggerTypeList"> <view class="dl-title">领域</view>
<view v-for="(t,i) in item" :class="t.code==dataObj.bloggerTypeCode?'line-item click':'line-item'" <view class="dl-content">
@click="changeChooseValue(t,'bloggerTypeCode')"> <view class="line-row" v-for="(item,index) in bloggerTypeList">
{{t.title}} <view v-for="(t,i) in item"
</view> :class="t.code==dataObj.bloggerTypeCode?'line-item click':'line-item'"
<view style="clear: both;"></view> @click="changeChooseValue(t,'bloggerTypeCode')">
</view> {{t.title}}
</view> </view>
</view> <view style="clear: both;"></view>
<view class="line-box">
<view class="dl-title">平台</view>
<view class="dl-content">
<view class="line-row" v-for="(item,index) in platformList">
<view v-for="(t,i) in item" :class="t.code==dataObj.platformCode?'line-item click':'line-item'"
@click="changeChooseValue(t,'platformCode')">
{{t.title}}
</view>
<view style="clear: both;"></view>
</view>
</view>
</view>
<view class="line-box">
<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'"
@click="changeChooseValue(t,'noticeTypeCode')">
{{t.title}}
</view>
<view style="clear: both;"></view>
</view>
</view>
</view>
<view class="line-box">
<view class="dl-title">关键词<text>包含以下关键词的通告将被收入订阅</text></view>
<view class="dl-content">
<view class="line-row">
<view class="keywords-item" v-for="(item,index) in dataObj.keywordsList">
{{checkKeywords(item)}} <uni-icons class="icon-text" type="closeempty" size="13"
@click="delKeywords(item)"></uni-icons>
</view>
<view class="keywords-item" @click="addNewKeys()">
<uni-icons type="plusempty" size="13"></uni-icons>
</view>
<view style="clear: both;"></view>
</view>
</view>
</view>
<view class="line-box">
<view class="dl-title">粉丝</view>
<view class="dl-content">
<view class="line-row">
<uni-data-select v-model="dataObj.fansLimit" :localdata="range" @change="change($event,'fans')"
:clear="false"></uni-data-select>
</view>
<view class="line-row" v-show="dataObj.fansLimit">
<view class="dl-drawer-item">
<input class="uni-input" v-model="dataObj.fansDown" type="digit" placeholder="最低" />
<view></view>
<input class="uni-input" v-model="dataObj.fansUp" type="digit" placeholder="最高" />
</view> </view>
</view> </view>
</view> </view>
</view> <view class="line-box">
<view class="line-box"> <view class="dl-title">平台</view>
<view class="dl-title">奖励</view> <view class="dl-content">
<view class="dl-content"> <view class="line-row" v-for="(item,index) in platformList">
<view class="line-row" v-for="(item,index) in rewardTypeList"> <view v-for="(t,i) in item" :class="t.code==dataObj.platformCode?'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,'platformCode')">
@click="changeChooseValue(t,'rewardTypeCode')"> {{t.title}}
{{t.title}} </view>
</view> <view style="clear: both;"></view>
<view style="clear: both;"></view>
</view>
</view>
</view>
<view class="line-box">
<view class="dl-title">稿费要求</view>
<view class="dl-content">
<view class="line-row">
<uni-data-select v-model="dataObj.feeLimit" :localdata="range" @change="change($event,'fee')"
:clear="false"></uni-data-select>
</view>
<view class="line-row" v-show="dataObj.feeLimit">
<view class="dl-drawer-item">
<input class="uni-input" v-model="dataObj.feeDown" type="digit" placeholder="最低" />
<view></view>
<input class="uni-input" v-model="dataObj.feeUp" type="digit" placeholder="最高" />
</view> </view>
</view> </view>
</view> </view>
</view> <view class="line-box">
<view class="line-box"> <view class="dl-title">通告类型</view>
<view class="dl-title">推送</view> <view class="dl-content">
<view class="dl-content"> <view class="line-row" v-for="(item,index) in noticeTypeList">
<view class="line-row"> <view v-for="(t,i) in item"
<view class="seting-view"><text>符合订阅设置的新通告</text> :class="t.code==dataObj.noticeTypeCode?'line-item click':'line-item'"
<switch v-if="dataObj.newNotice" style="float: right;display: flex;" checked color="#FC1F3E" @click="changeChooseValue(t,'noticeTypeCode')">
@change="switchChange($event,'newNotice')" /> {{t.title}}
<switch v-else style="float: right;display: flex;" color="#FC1F3E" </view>
@change="switchChange($event,'newNotice')" /> <view style="clear: both;"></view>
</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-else style="float: right;display: flex;" color="#FC1F3E"
@change="switchChange($event,'forkNotice')" />
</view> </view>
</view> </view>
</view> </view>
</view> <view class="line-box">
<view class="line-box" style="align-items: center;"> <view class="dl-title">关键词<text>包含以下关键词的通告将被收入订阅</text></view>
<view class="submit-box" @click="saveSet()">保存</view> <view class="dl-content">
<view class="line-row">
<view class="keywords-item" v-for="(item,index) in dataObj.keywordsList">
{{checkKeywords(item)}} <uni-icons class="icon-text" type="closeempty" size="13"
@click="delKeywords(item)"></uni-icons>
</view>
<view class="keywords-item" @click="addNewKeys()">
<uni-icons type="plusempty" size="13"></uni-icons>
</view>
<view style="clear: both;"></view>
</view>
</view>
</view>
<view class="line-box">
<view class="dl-title">粉丝</view>
<view class="dl-content">
<view class="line-row">
<uni-data-select v-model="dataObj.fansLimit" :localdata="range" @change="change($event,'fans')"
:clear="false"></uni-data-select>
</view>
<view class="line-row" v-show="dataObj.fansLimit">
<view class="dl-drawer-item">
<input class="uni-input" v-model="dataObj.fansDown" type="digit" placeholder="最低" />
<view></view>
<input class="uni-input" v-model="dataObj.fansUp" type="digit" placeholder="最高" />
</view>
</view>
</view>
</view>
<view class="line-box">
<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'"
@click="changeChooseValue(t,'rewardTypeCode')">
{{t.title}}
</view>
<view style="clear: both;"></view>
</view>
</view>
</view>
<view class="line-box">
<view class="dl-title">稿费要求</view>
<view class="dl-content">
<view class="line-row">
<uni-data-select v-model="dataObj.feeLimit" :localdata="range" @change="change($event,'fee')"
:clear="false"></uni-data-select>
</view>
<view class="line-row" v-show="dataObj.feeLimit">
<view class="dl-drawer-item">
<input class="uni-input" v-model="dataObj.feeDown" type="digit" placeholder="最低" />
<view></view>
<input class="uni-input" v-model="dataObj.feeUp" type="digit" placeholder="最高" />
</view>
</view>
</view>
</view>
<view class="line-box">
<view class="dl-title">推送</view>
<view class="dl-content">
<view class="line-row">
<view class="seting-view"><text>符合订阅设置的新通告</text>
<switch v-if="dataObj.newNotice" style="float: right;display: flex;" checked color="#FC1F3E"
@change="switchChange($event,'newNotice')" />
<switch v-else style="float: right;display: flex;" color="#FC1F3E"
@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-else style="float: right;display: flex;" color="#FC1F3E"
@change="switchChange($event,'forkNotice')" />
</view>
</view>
</view>
</view>
<view class="line-box" style="align-items: center;">
<view class="submit-box" @click="saveSet()">保存</view>
</view>
</view> </view>
<!-- 输入框示例 --> <!-- 输入框示例 -->
<uni-popup ref="inputDialog" type="dialog" :key="keywordsValue"> <uni-popup ref="inputDialog" type="dialog" :key="keywordsValue">
@ -134,7 +140,11 @@
getSubscribeSet, getSubscribeSet,
saveSubscribe saveSubscribe
} from '@/api/business/subscribeSet.js' } from '@/api/business/subscribeSet.js'
import navigationBarVue from '@/components/navigation/navigationBar.vue';
export default { export default {
components: {
navigationBarVue
},
data() { data() {
return { return {
// //
@ -327,6 +337,7 @@
<style lang="scss"> <style lang="scss">
.dingyue-box { .dingyue-box {
padding-top: calc(90rpx + var(--status-bar-height));
border-top: 1rpx solid #F4F4F4; border-top: 1rpx solid #F4F4F4;
width: 100%; width: 100%;
color: #363636; color: #363636;
@ -339,120 +350,126 @@
justify-content: center; justify-content: center;
position: relative; position: relative;
.line-box { .select-box-dom {
width: 100%; width: 100%;
padding: 30rpx 30rpx 20rpx 30rpx; height: calc(100vh - var(--status-bar-height) - var(--window-bottom) - 90rpx);
display: flex; overflow-y: scroll;
flex-direction: column;
align-items: self-start;
justify-content: inherit;
.submit-box { .line-box {
padding: 15rpx 0;
background-color: #FC1F3E;
color: white;
width: 70%;
margin-bottom: 30rpx;
border-radius: 10rpx;
text-align: center;
}
.dl-title {
font-weight: bold;
font-size: 38rpx;
text {
margin-left: 20rpx;
font-weight: normal !important;
font-size: 22rpx;
color: #929292;
}
}
.dl-content {
width: 100%; width: 100%;
font-size: 24rpx; padding: 30rpx 30rpx 20rpx 30rpx;
padding: 15rpx; display: flex;
border-bottom: 1rpx solid #F7F7F7; flex-direction: column;
align-items: self-start;
justify-content: flex-start;
.line-row { .submit-box {
width: 100%; padding: 15rpx 0;
background-color: #FC1F3E;
color: white;
width: 70%;
margin-bottom: 30rpx;
border-radius: 10rpx;
text-align: center;
}
.line-item { .dl-title {
width: calc(25% - 16rpx); font-weight: bold;
border: 1rpx solid #E9E9E9; font-size: 38rpx;
margin: 8rpx 8rpx;
float: left;
border-radius: 25rpx;
color: #363636;
text-align: center;
padding: 8rpx 15rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.keywords-item { text {
border: 1rpx solid #E9E9E9; margin-left: 20rpx;
margin: 8rpx 8rpx; font-weight: normal !important;
float: left; font-size: 22rpx;
border-radius: 25rpx;
color: #363636;
text-align: center;
padding: 8rpx 20rpx;
.icon-text {
margin-left: 8rpx;
}
}
.dl-drawer-item {
display: flex;
color: #929292; color: #929292;
align-items: center;
justify-content: center;
border-bottom: 1px solid #F4F4F4;
margin-bottom: 20rpx;
input {
width: 100%;
border: 1rpx solid #F4F4F4;
border-radius: 15rpx;
color: #929292;
padding: 5rpx 10rpx;
margin: 10rpx 0;
text-align: center;
height: 60rpx;
line-height: 60rpx;
}
.dl-reward-type {
flex: 1;
text-align: center;
border: 1rpx solid #F4F4F4;
color: #929292;
border-radius: 15rpx;
padding: 10rpx 25rpx;
margin: 10rpx;
}
}
.seting-view {
padding: 20rpx 0;
font-size: 30rpx;
display: flex;
align-items: center;
justify-content: flex-end;
text {
flex: 1;
}
} }
} }
.click { .dl-content {
color: #FC1F3E !important; width: 100%;
border: 1rpx solid #FC1F3E !important; font-size: 24rpx;
padding: 15rpx;
border-bottom: 1rpx solid #F7F7F7;
.line-row {
width: 100%;
.line-item {
width: calc(25% - 16rpx);
border: 1rpx solid #E9E9E9;
margin: 8rpx 8rpx;
float: left;
border-radius: 25rpx;
color: #363636;
text-align: center;
padding: 8rpx 15rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.keywords-item {
border: 1rpx solid #E9E9E9;
margin: 8rpx 8rpx;
float: left;
border-radius: 25rpx;
color: #363636;
text-align: center;
padding: 8rpx 20rpx;
.icon-text {
margin-left: 8rpx;
}
}
.dl-drawer-item {
display: flex;
color: #929292;
align-items: center;
justify-content: center;
border-bottom: 1px solid #F4F4F4;
margin-bottom: 20rpx;
input {
width: 100%;
border: 1rpx solid #F4F4F4;
border-radius: 15rpx;
color: #929292;
padding: 5rpx 10rpx;
margin: 10rpx 0;
text-align: center;
height: 60rpx;
line-height: 60rpx;
}
.dl-reward-type {
flex: 1;
text-align: center;
border: 1rpx solid #F4F4F4;
color: #929292;
border-radius: 15rpx;
padding: 10rpx 25rpx;
margin: 10rpx;
}
}
.seting-view {
padding: 20rpx 0;
font-size: 30rpx;
display: flex;
align-items: center;
justify-content: flex-end;
text {
flex: 1;
}
}
}
.click {
color: #FC1F3E !important;
border: 1rpx solid #FC1F3E !important;
}
} }
} }
} }

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; display: flex;
/* #ifdef APP-NVUE */ /* #ifdef APP-NVUE */
// nvue 使 margin-bottom error // nvue 使 margin-bottom error
padding-bottom: 22px; padding-bottom: 20rpx;
/* #endif */ /* #endif */
/* #ifndef APP-NVUE */ /* #ifndef APP-NVUE */
margin-bottom: 22px; margin-bottom: 20rpx;
/* #endif */ /* #endif */
flex-direction: row; flex-direction: row;