dl_uniapp/pages/notice/detail.vue

948 lines
23 KiB
Vue
Raw Normal View History

2025-03-31 15:40:36 +08:00
<template>
<view class="dl-detail-box">
2025-04-10 14:41:14 +08:00
<navigation-bar-vue title="通告详情" style="width: 100%;" background-color="#ffffff"
2025-04-03 16:46:51 +08:00
title-color="#000000"></navigation-bar-vue>
<view class="notice-detail-last-box">
2025-04-10 14:41:14 +08:00
<!-- 报名列表 -->
<view class="info-box notice-detail" v-if="viewMy">
<view class="detail-title">已报名{{imageArray.length||0}}</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 class="view-report-button" v-if="imageArray.length>0" @click="goReportList()">查看报名</view> -->
<view class="view-report-button" @click="goReportList()">查看报名</view>
</view>
2025-04-03 16:46:51 +08:00
<!-- 博主信息 -->
<view class="info-box">
<image class="image" :src="userDetail.avatar?imageUrl+userDetail.avatar :'/static/images/profile.jpg'"
mode="aspectFit"></image>
<view class="name-info">
2025-04-07 15:14:16 +08:00
<view class="name">{{userDetail.nickName||''}}</view>
<view class="text">{{userDetail.identityType||''}}</view>
2025-03-31 15:40:36 +08:00
</view>
2025-04-03 16:46:51 +08:00
<view class="fork-info">
<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>
2025-04-14 11:49:35 +08:00
<view class="item-dom-zhuye" @click="goMemberIndex()">主页</view>
2025-03-31 15:40:36 +08:00
</view>
2025-04-11 10:09:36 +08:00
<view class="down-box" @click="goReportForm()">
<image src="@/static/detail/jubao.png" mode="aspectFit"></image>举报
</view>
2025-03-31 15:40:36 +08:00
</view>
2025-04-03 16:46:51 +08:00
</view>
<!-- 通告信息 -->
<view class="info-box notice-main">
<view class="dl-notice-title">
2025-04-07 13:53:10 +08:00
<image class="dl-image" :src="'/static/platform/'+noticeDetail.platformCode+'.png'"
mode="aspectFit"></image>
2025-04-07 15:14:16 +08:00
<view class="dl-text">{{noticeDetail.title||''}}</view>
2025-03-31 15:40:36 +08:00
</view>
2025-04-07 15:14:16 +08:00
<view class="end-time">截止日期{{noticeDetail.endDate||''}}</view>
2025-04-03 16:46:51 +08:00
<view class="field-box">
<view class="dl-item">
<view class="dl-label">
奖励
</view>
<view class="dl-value">
<text v-if="null==noticeDetail.feeUp">无稿费</text>
2025-04-10 09:36:39 +08:00
<text v-else>¥{{noticeDetail.feeDown||'0'}}-{{noticeDetail.feeUp||''}}</text>
2025-04-03 16:46:51 +08:00
</view>
2025-03-31 15:40:36 +08:00
</view>
2025-04-03 16:46:51 +08:00
<view class="dl-item">
<view class="dl-label">
招募名额
</view>
2025-04-10 09:36:39 +08:00
<view class="dl-value">{{noticeDetail.needNum||'0'}} </view>
2025-03-31 15:40:36 +08:00
</view>
2025-04-03 16:46:51 +08:00
<view class="dl-item">
<view class="dl-label">
产品品牌
</view>
2025-04-07 15:14:16 +08:00
<view class="dl-value">{{noticeDetail.brand||''}} </view>
2025-03-31 15:40:36 +08:00
</view>
2025-04-03 16:46:51 +08:00
<view class="dl-item">
<view class="dl-label">
粉丝要求
</view>
<view class="dl-value">
2025-04-10 09:36:39 +08:00
{{formatNumberWithUnits(noticeDetail.fansDown)||'0'}}-{{formatNumberWithUnits(noticeDetail.fansUp)||''}}
2025-04-03 16:46:51 +08:00
</view>
2025-03-31 15:40:36 +08:00
</view>
2025-04-14 14:24:40 +08:00
<view class="dl-item" v-if='noticeDetail.province'>
2025-04-03 16:46:51 +08:00
<view class="dl-label">
地区要求
</view>
2025-04-14 14:24:40 +08:00
<view class="dl-value">{{noticeDetail.province+(noticeDetail.city?('-'+noticeDetail.city):'')}}
</view>
2025-04-03 16:46:51 +08:00
</view>
2025-04-14 14:24:40 +08:00
<view class="dl-item" v-if='noticeDetail.bloggerTypes'>
2025-04-03 16:46:51 +08:00
<view class="dl-label">
博主类型
</view>
2025-04-07 15:14:16 +08:00
<view class="dl-value">{{noticeDetail.bloggerTypes||''}}</view>
2025-03-31 15:40:36 +08:00
</view>
2025-04-03 16:46:51 +08:00
</view>
<view class="bottom-box">
2025-04-07 15:14:16 +08:00
<text class="update-text">{{calculateTimeDifference(noticeDetail.updateTime)||''}}更新</text>
<text class="view-text">{{noticeDetail.viewNum||''}} 阅读</text>
2025-03-31 15:40:36 +08:00
</view>
</view>
2025-04-03 16:46:51 +08:00
<!-- 通告详情 -->
<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">
2025-04-07 15:14:16 +08:00
<image v-for="(item,index) in noticeDetail.imageArray" @click="preview(noticeDetail.imageArray)"
:src="imageUrl+item" mode="widthFix"></image>
2025-04-03 16:46:51 +08:00
</view>
2025-03-31 15:40:36 +08:00
</view>
2025-04-03 16:46:51 +08:00
<!-- 联系方式 -->
<view class="info-box notice-detail">
<view class="detail-title">联系方式</view>
2025-04-14 14:24:40 +08:00
<view class="field-box" v-if="passSign">
2025-04-03 16:46:51 +08:00
<view class="dl-item">
<view class="dl-label">
2025-04-14 14:24:40 +08:00
微信群码图片
2025-04-03 16:46:51 +08:00
</view>
2025-04-14 14:24:40 +08:00
<view class="dl-value">
<image v-if="noticeDetail.groupImage" @click="preview([noticeDetail.groupImage])"
:src="imageUrl+noticeDetail.groupImage" mode="widthFix"></image>
<text v-else>未上传请等待通告主联系</text>
2025-04-03 16:46:51 +08:00
</view>
2025-03-31 15:40:36 +08:00
</view>
2025-04-14 14:24:40 +08:00
</view>
<view class="field-box" v-else>
2025-04-03 16:46:51 +08:00
<view class="dl-item">
<view class="dl-label">
2025-04-14 14:24:40 +08:00
微信群码图片
2025-04-03 16:46:51 +08:00
</view>
<view class="dl-value">报名后可查看 </view>
2025-03-31 15:40:36 +08:00
</view>
</view>
</view>
2025-04-03 16:46:51 +08:00
<!-- 报名列表 -->
2025-04-10 14:41:14 +08:00
<view class="info-box notice-detail" v-if="!viewMy">
2025-04-14 14:24:40 +08:00
<view class="detail-title">已报名{{allImgNum}}</view>
2025-04-03 16:46:51 +08:00
<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">
2025-04-14 14:24:40 +08:00
<span v-for=" (item,i) in row">
<image v-if="item" :style="{ top:(imageWidth+10)*rowIndex+'rpx',left:imageWidth*i+'rpx'}"
:src="item" mode="aspectFit">
</image>
<image v-else :style="{ top:(imageWidth+10)*rowIndex+'rpx',left:imageWidth*i+'rpx'}"
src="@/static/images/profile.jpg" mode="aspectFit">
</image>
</span>
2025-04-03 16:46:51 +08:00
</view>
2025-03-31 15:40:36 +08:00
</view>
</view>
2025-04-03 16:46:51 +08:00
<!-- 去报名始终浮动下方 -->
2025-04-14 14:24:40 +08:00
<view class="dl-bottom-box" v-show="showBottom&&type=='common'">
2025-04-03 16:46:51 +08:00
<!-- 报名 -->
2025-04-07 15:14:16 +08:00
<view class="report-box">
2025-04-03 16:46:51 +08:00
<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>
2025-04-14 14:24:40 +08:00
<view v-else-if="!isSign && ifBz" @click="goReport()" class="join-report">报名参加</view>
<view v-else-if="isSign && ifBz" class="join-report">已报名</view>
2025-04-03 16:46:51 +08:00
<view v-else class="join-report" @click="changeUserType()">切换博主后报名</view>
2025-03-31 15:40:36 +08:00
</view>
2025-04-03 16:46:51 +08:00
<!-- 通告发布人能操作的 -->
2025-04-07 15:14:16 +08:00
<view class="report-box" v-if="null!=userInfo && userInfo.userId==noticeDetail.userId&&ifBz==false">
2025-04-03 16:46:51 +08:00
<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>
2025-03-31 15:40:36 +08:00
</view>
</view>
2025-04-03 16:46:51 +08:00
<!-- 提示窗示例 -->
<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()" />
2025-03-31 15:40:36 +08:00
</view>
</view>
</template>
<script>
2025-04-03 16:46:51 +08:00
import navigationBarVue from '@/components/navigation/navigationBar.vue';
2025-03-31 15:40:36 +08:00
import html2canvas from 'html2canvas';
import shareImages from '@/components/hj-placard/shareImages.vue'
import constant from '@/utils/constant';
import {
changeUserType,
getUserType,
formatNumberWithUnits,
calculateTimeDifference
} from '@/utils/common.js'
import {
getJSONData
} from '@/utils/auth.js'
import {
getNoticeDetail,
addView,
closeNotice
} from '@/api/business/notice';
import {
postForkUser
} from '@/api/business/base.js'
import config from '@/config'
2025-04-07 15:14:16 +08:00
import {
getSignCard
} from '@/api/business/signCard.js'
2025-03-31 15:40:36 +08:00
export default {
components: {
2025-04-03 16:46:51 +08:00
shareImages,
navigationBarVue
2025-03-31 15:40:36 +08:00
},
data() {
return {
2025-04-10 14:41:14 +08:00
//是否是看自己的通告-通告主
viewMy: false,
2025-03-31 15:40:36 +08:00
//通告ID
noticeId: null,
imageUrl: config.baseUrl,
//是否显示下方操作按钮--刚开始不显示
showBottom: false,
//当前用户
userInfo: null,
//报名的头像数组
imageArray: [
],
2025-04-14 14:24:40 +08:00
//所有报名的数组
allImgNum: 0,
2025-03-31 15:40:36 +08:00
//每张图片的宽度rpx--堆叠后的宽度
imageWidth: 70,
//默认博主
ifBz: true,
//当前用户是否关注该博主
isLove: false,
//当前用户是否已报名该通告
2025-04-14 14:24:40 +08:00
passSign: false,
isSign: true,
2025-03-31 15:40:36 +08:00
//通告主详情
userDetail: {
avatar: '',
identityType: "未认证",
nickName: "",
userId: null
},
//通告详情
noticeDetail: {
id: "",
title: "",
endDate: null,
feeDown: null,
feeUp: null,
needNum: null,
userId: null,
brand: null,
fansDown: null,
fansUp: null,
city: null,
bloggerTypes: null,
updateTime: null,
approvalStatus: '0',
viewNum: 0,
detail: null,
platformCode: "",
platformName: "",
//通告产品图
imageArray: []
},
canvasImages: '',
canvasWidth: 375, // 宽度
canvasHeight: 500, // 高度
shareTitle: '我是这张图片的标题', // 分享标题
goodsTitle: '我是这张图片的标题我是这张图片的标题我是这张图片的标', // 商品宣传标题
shareImage: '/static/bg.jpg', // 背景图片
qrSize: 100, // 二维码大小
qrUrl: 'https://ext.dcloud.net.cn/plugin?id=5747', // 生成二维码的链接
2025-04-14 14:24:40 +08:00
type: 'common'
2025-03-31 15:40:36 +08:00
}
},
onReady() {
2025-04-14 14:24:40 +08:00
2025-03-31 15:40:36 +08:00
//通知
this.checkUserType()
this.showBottom = true
// this.$refs.alertDialog.open()
},
onLoad(params) {
2025-04-10 14:41:14 +08:00
if (params.viewMy) {
this.viewMy = true
}
2025-04-14 14:24:40 +08:00
if (params.type) {
this.type = params.type
}
2025-03-31 15:40:36 +08:00
this.noticeId = params.id
if (null != getJSONData(constant.userInfo)) {
this.userInfo = getJSONData(constant.userInfo)
}
2025-04-14 14:24:40 +08:00
},
onShow() {
2025-03-31 15:40:36 +08:00
this.getDetail()
this.viewNotice()
},
methods: {
2025-04-07 15:14:16 +08:00
preview(imageArray) {
let previewImages = []
imageArray.forEach(it => {
previewImages.push(this.imageUrl + it)
})
uni.previewImage({
urls: previewImages, // 需要预览的图片链接列表
});
},
2025-03-31 15:40:36 +08:00
/**
* 转换时间单位
* @param {Object} time
*/
calculateTimeDifference(time) {
return calculateTimeDifference(time)
},
/**
* 数值单位转换
* @param {Object} number
*/
formatNumberWithUnits(number) {
return formatNumberWithUnits(number)
},
/**
* 关闭通告
*/
closeNotice(status) {
closeNotice({
noticeId: this.noticeId,
publishTakeDown: status
}).then(res => {
if (res.code == 200) {
uni.showToast({
icon: 'success',
duration: 2000,
title: '操作成功'
});
this.getDetail(this.noticeId)
}
}).catch((e) => {
uni.showToast({
icon: 'error',
duration: 2000,
title: e
});
})
},
/**
* 关注取消关注
* @param {Object} isLove
*/
forkUser(isLove) {
postForkUser({
userId: this.noticeDetail.userId,
isLove: isLove
}).then(res => {
if (res.code == 200) {
uni.showToast({
icon: 'success',
duration: 2000,
title: '操作成功'
});
this.getDetail(this.noticeId)
}
}).catch((e) => {
uni.showToast({
icon: 'error',
duration: 2000,
title: e
});
})
},
2025-04-10 16:11:09 +08:00
goReportForm() {
2025-04-14 17:03:54 +08:00
this.$tab.navigateTo('/pages/mine/set/report-form?userId='+this.userDetail.userId+'&noticeId='+this.noticeId)
2025-04-10 16:11:09 +08:00
},
2025-04-14 11:49:35 +08:00
goMemberIndex() {
this.$tab.navigateTo('/pages/mine/member/member-index')
},
2025-04-10 14:41:14 +08:00
/**
* 去报名列表
*/
goReportList() {
this.$tab.navigateTo('/pages/notice/report-list')
},
2025-03-31 15:40:36 +08:00
/**
* 查通告详情
*/
getDetail() {
getNoticeDetail({
noticeId: this.noticeId
}).then(res => {
if (res.code == 200) {
this.noticeDetail = res.data.noticeDetail
this.userDetail = res.data.userDetail
this.isLove = res.data.isLove
2025-04-14 14:24:40 +08:00
this.passSign = res.data.passSign
2025-03-31 15:40:36 +08:00
this.isSign = res.data.isSign
if (this.noticeDetail.images) {
this.noticeDetail.imageArray = this.noticeDetail.images.split(",")
}
2025-04-14 14:24:40 +08:00
this.allImgNum = res.data.signUserAvatarList.length
this.calculateImagesPerRow(res.data.signUserAvatarList)
2025-03-31 15:40:36 +08:00
}
}).catch((e) => {
this.isTriggered = false
uni.showToast({
icon: 'error',
duration: 2000,
title: e
});
})
},
/**
* 浏览通告
*/
viewNotice() {
let userId = null
if (null != this.userInfo) {
userId = this.userInfo.userId
}
addView({
noticeId: this.noticeId,
userId: userId
}).then(res => {
}).catch((e) => {
uni.showToast({
icon: 'error',
duration: 2000,
title: e
});
})
},
// 回调图片地址
shareSuccess(e) {
// console.log('地址',e)
this.canvasImages = e
uni.previewImage({
urls: [this.canvasImages],
});
},
/**
* 分享点击事件
* @param {Object} item
* @param {Object} index
*/
selectShare(dataObj) {
if ('hb' == dataObj.item.name) {
//海报
this.$refs.canvas.canvasCreate();
2025-04-10 16:11:09 +08:00
} else if ('wx' == dataObj.item.name) {
this.onShareAppMessage()
2025-03-31 15:40:36 +08:00
}
},
/**
* 微信分享
* @param {Object} res
*/
onShareAppMessage(res) {
if (res.from === 'button') { // 来自页面内分享按钮
console.log(res.target)
}
return {
title: '【' + this.noticeDetail.platformName + '】' + this.noticeDetail.title,
path: '/pages/notice/detail?id=' + this.noticeDetail.id
}
},
dialogConfirm() {
console.log('点击确认')
2025-04-09 15:42:01 +08:00
this.$tab.navigateTo('/pages/mine/card/my-card')
2025-03-31 15:40:36 +08:00
},
dialogClose() {
console.log('点击关闭')
},
/**
* 去首页
*/
goHome() {
this.$tab.reLaunch('/pages/index')
},
2025-04-03 16:46:51 +08:00
/**
* 报名
*/
goReport() {
2025-04-07 15:14:16 +08:00
getSignCard({
noticeId: this.noticeId
}).then(res => {
if (res.code == 200) {
if (res.data.canUserNum > 0) {
2025-04-09 15:42:01 +08:00
this.$tab.navigateTo('/pages/notice/report?noticeId=' + this.noticeId)
2025-04-07 15:14:16 +08:00
} else {
this.$refs.alertDialog.open()
}
console.log(res);
}
}).catch((e) => {
uni.showToast({
icon: 'error',
duration: 2000,
title: e
});
})
2025-04-03 16:46:51 +08:00
},
2025-03-31 15:40:36 +08:00
/**
* 分享
*/
shareFun() {
this.$refs.share.open()
},
/**
* 使用通告券加速
*/
useCoupon() {
},
/**
* 计算头像显示区域高度
*/
2025-04-14 14:24:40 +08:00
calculateImagesPerRow(imgs) {
let tempImg = []
imgs.forEach(it => {
tempImg.push(this.imageUrl + it)
})
console.log(tempImg);
2025-03-31 15:40:36 +08:00
const systemInfo = uni.getSystemInfoSync();
//1rpx 转换px 的单位
let rpxUnit = (systemInfo.screenWidth / 750)
// 显示头像区域的宽度--去掉多余的空间-px
let screenWidth = systemInfo.screenWidth - (86 * rpxUnit)
// 每张图片的宽度px
let imageWidthPx = this.imageWidth * rpxUnit;
//每行可以显示多少张图片
let imagesPerRow = Math.floor(screenWidth / imageWidthPx);
//设置测试数据
2025-04-14 14:24:40 +08:00
let thisArray = tempImg
2025-03-31 15:40:36 +08:00
for (let i = 0; i < thisArray.length; i += imagesPerRow) {
this.imageArray.push(thisArray.slice(i, i + imagesPerRow));
}
console.log(this.imageArray, "imageArray")
},
/**
* 判断用户类型
*/
checkUserType() {
let userType = getUserType()
if (constant.bz != userType) {
//不是博主
this.ifBz = false
}
},
/**
* 切换当前用户类型为博主
*/
changeUserType() {
this.ifBz = true
changeUserType(constant.bz)
}
}
}
</script>
<style lang="scss">
.dl-detail-box {
width: 100%;
2025-04-03 16:46:51 +08:00
padding-top: calc(90rpx + var(--status-bar-height));
background-color: white;
2025-03-31 15:40:36 +08:00
color: #363636;
font-size: 30rpx;
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
position: relative;
2025-04-03 16:46:51 +08:00
.notice-detail-last-box {
2025-04-14 11:49:35 +08:00
width: 100%;
2025-04-03 16:46:51 +08:00
height: calc(100vh - var(--status-bar-height) - var(--window-bottom) - 90rpx);
overflow-y: scroll;
padding: 30rpx 30rpx 115rpx 30rpx;
background-color: #F6F6F6;
2025-03-31 15:40:36 +08:00
display: flex;
2025-04-03 16:46:51 +08:00
flex-direction: column;
align-items: self-start;
justify-content: start;
position: relative;
2025-03-31 15:40:36 +08:00
2025-04-03 16:46:51 +08:00
.info-box {
width: 100%;
padding: 28rpx;
2025-03-31 15:40:36 +08:00
display: flex;
2025-04-03 16:46:51 +08:00
background-color: white;
border-radius: 30rpx;
align-items: center;
2025-03-31 15:40:36 +08:00
justify-content: center;
2025-04-03 16:46:51 +08:00
margin-bottom: 25rpx;
2025-03-31 15:40:36 +08:00
2025-04-03 16:46:51 +08:00
.image {
flex: none;
width: 100rpx;
height: 100rpx;
border-radius: 50%;
2025-03-31 15:40:36 +08:00
}
2025-04-03 16:46:51 +08:00
.name-info {
width: calc(100% - 350rpx);
flex: 1;
padding-left: 30rpx;
text-align: left;
2025-03-31 15:40:36 +08:00
display: flex;
2025-04-03 16:46:51 +08:00
flex-direction: column;
align-items: flex-start;
2025-03-31 15:40:36 +08:00
justify-content: center;
2025-04-03 16:46:51 +08:00
.name {
width: 100%;
font-weight: bold;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
padding-bottom: 10rpx;
2025-03-31 15:40:36 +08:00
}
2025-04-03 16:46:51 +08:00
.text {
font-size: 24rpx;
color: #929292;
2025-03-31 15:40:36 +08:00
}
}
2025-04-03 16:46:51 +08:00
.fork-info {
flex: none;
width: 270rpx;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
2025-03-31 15:40:36 +08:00
2025-04-03 16:46:51 +08:00
.up-box {
padding-bottom: 5rpx;
display: flex;
font-size: 28rpx;
padding-left: 10rpx;
align-items: center;
justify-content: center;
.item-dom-guanzhu {
padding: 5rpx 22rpx;
border-radius: 20rpx;
color: white;
background-color: #FC1F3E;
}
2025-03-31 15:40:36 +08:00
2025-04-03 16:46:51 +08:00
.item-dom-yiguanzhu {
padding: 5rpx 22rpx;
border: 1rpx solid #FC1F3E;
border-radius: 20rpx;
color: #FC1F3E;
background-color: white;
}
2025-03-31 15:40:36 +08:00
2025-04-03 16:46:51 +08:00
.item-dom-zhuye {
margin-left: 15rpx;
padding: 5rpx 22rpx;
border-radius: 20rpx;
background-color: #F4F4F4;
}
}
2025-03-31 15:40:36 +08:00
2025-04-03 16:46:51 +08:00
.down-box {
2025-04-11 10:09:36 +08:00
display: flex;
align-items: center;
justify-content: center;
2025-04-03 16:46:51 +08:00
padding-top: 10rpx;
font-size: 24rpx;
color: #929292;
2025-04-11 10:09:36 +08:00
image {
width: 30rpx;
height: 30rpx;
margin-right: 5rpx;
}
2025-04-03 16:46:51 +08:00
}
2025-03-31 15:40:36 +08:00
}
}
2025-04-03 16:46:51 +08:00
.notice-main {
2025-03-31 15:40:36 +08:00
align-items: flex-start;
flex-direction: column;
2025-04-03 16:46:51 +08:00
.dl-notice-title {
2025-03-31 15:40:36 +08:00
display: flex;
2025-04-03 16:46:51 +08:00
width: 100%;
padding-bottom: 10rpx;
align-items: center;
2025-03-31 15:40:36 +08:00
justify-content: center;
2025-04-03 16:46:51 +08:00
.dl-image {
flex: none;
width: 70rpx;
height: 70rpx;
2025-03-31 15:40:36 +08:00
}
2025-04-03 16:46:51 +08:00
.dl-text {
margin-left: 10rpx;
flex: 1;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
width: 100%;
font-weight: bold;
2025-03-31 15:40:36 +08:00
2025-04-03 16:46:51 +08:00
}
2025-03-31 15:40:36 +08:00
}
2025-04-03 16:46:51 +08:00
.end-time {
border-radius: 15rpx;
background-color: #FFF4F5;
padding: 8rpx 20rpx;
color: #FC1F3E;
2025-03-31 15:40:36 +08:00
}
2025-04-03 16:46:51 +08:00
.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;
2025-03-31 15:40:36 +08:00
2025-04-03 16:46:51 +08:00
.dl-item {
display: flex;
justify-content: center;
align-items: flex-start;
margin-bottom: 10rpx;
2025-03-31 15:40:36 +08:00
2025-04-03 16:46:51 +08:00
.dl-label {}
2025-03-31 15:40:36 +08:00
2025-04-03 16:46:51 +08:00
.dl-value {
flex: 1;
}
}
}
2025-03-31 15:40:36 +08:00
2025-04-03 16:46:51 +08:00
.bottom-box {
2025-03-31 15:40:36 +08:00
width: 100%;
2025-04-03 16:46:51 +08:00
border-top: 1rpx solid #F7F7F7;
padding: 25rpx 30rpx 5rpx 30rpx;
color: #929292;
font-size: 24rpx;
.update-text {
float: left;
}
.view-text {
float: right;
}
2025-03-31 15:40:36 +08:00
}
}
2025-04-03 16:46:51 +08:00
.notice-detail {
2025-03-31 15:40:36 +08:00
align-items: flex-start;
flex-direction: column;
2025-04-03 16:46:51 +08:00
.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;
}
}
.field-box {
margin-top: 20rpx;
padding-top: 10rpx;
border-radius: 15rpx;
width: 100%;
2025-03-31 15:40:36 +08:00
display: flex;
justify-content: center;
align-items: flex-start;
2025-04-03 16:46:51 +08:00
flex-direction: column;
2025-03-31 15:40:36 +08:00
2025-04-03 16:46:51 +08:00
.dl-item {
display: flex;
2025-04-14 14:24:40 +08:00
justify-content: start;
align-items: center;
2025-04-03 16:46:51 +08:00
margin-bottom: 10rpx;
2025-03-31 15:40:36 +08:00
2025-04-14 14:24:40 +08:00
.dl-label {
width: 300rpx;
display: flex;
justify-content: start;
align-items: center;
}
2025-04-03 16:46:51 +08:00
.dl-value {
flex: 1;
2025-04-14 14:24:40 +08:00
display: flex;
justify-content: center;
align-items: center;
image {
width: 200rpx;
height: 80rpx;
}
2025-04-03 16:46:51 +08:00
}
2025-03-31 15:40:36 +08:00
}
}
2025-04-03 16:46:51 +08:00
.image-box {
2025-03-31 15:40:36 +08:00
width: 100%;
2025-04-03 16:46:51 +08:00
padding: 20rpx 0;
2025-03-31 15:40:36 +08:00
2025-04-03 16:46:51 +08:00
.image-row {
width: 100%;
position: relative;
image {
position: absolute;
border-radius: 50%;
width: 90rpx;
height: 90rpx;
}
2025-03-31 15:40:36 +08:00
}
}
2025-04-10 14:41:14 +08:00
.view-report-button {
text-align: center;
margin: auto;
border-radius: 40rpx;
width: 75%;
background-color: #FC1F3E;
color: white;
padding: 15rpx 0;
}
2025-03-31 15:40:36 +08:00
}
2025-04-03 16:46:51 +08:00
.dl-bottom-box {
border-top: 1rpx solid #F7F7F7;
color: #363636;
position: fixed;
padding-bottom: 20rpx;
padding-top: 20rpx;
padding-left: 40rpx;
padding-right: 40rpx;
bottom: 0;
background-color: #F7F7F7;
width: 100%;
2025-03-31 15:40:36 +08:00
2025-04-03 16:46:51 +08:00
.report-box {
display: flex;
justify-content: center;
align-items: center;
2025-03-31 15:40:36 +08:00
2025-04-03 16:46:51 +08:00
.share-image {
pointer-events: none;
background-color: #F7F7F7;
}
2025-03-31 15:40:36 +08:00
2025-04-03 16:46:51 +08:00
image {
margin-right: 25rpx;
width: 80rpx;
height: 80rpx;
}
2025-03-31 15:40:36 +08:00
2025-04-03 16:46:51 +08:00
.join-report {
margin-left: 20rpx;
flex: 1;
padding: 15rpx;
text-align: center;
background-color: #FC1F3E;
border-radius: 14rpx;
color: white;
}
2025-03-31 15:40:36 +08:00
2025-04-03 16:46:51 +08:00
.close-notice {
padding: 15rpx 25rpx;
background-color: #F7F7F7;
border: 1rpx solid #E2E2E2;
border-radius: 10rpx;
margin-right: 20rpx;
}
2025-03-31 15:40:36 +08:00
2025-04-03 16:46:51 +08:00
.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;
}
2025-03-31 15:40:36 +08:00
}
2025-04-03 16:46:51 +08:00
}
2025-03-31 15:40:36 +08:00
}
}
}
2025-04-14 14:24:40 +08:00
</style>