This commit is contained in:
Vinjor 2025-04-07 15:40:11 +08:00
commit b1e17aea7f
5 changed files with 314 additions and 150 deletions

View File

@ -10,6 +10,24 @@ export function getNoticeList(params) {
}) })
} }
// 订阅查询通告列表
export function getSubscribeList(params) {
return request({
url: '/busi/notice/subscribeList',
method: 'get',
params: params
})
}
// 关注查询通告列表
export function getLoveList(params) {
return request({
url: '/busi/notice/loveList',
method: 'get',
params: params
})
}
// 查通告详情 // 查通告详情
export function getNoticeDetail(params) { export function getNoticeDetail(params) {
return request({ return request({

View File

@ -70,10 +70,6 @@
<scroll-view style="height: 100%;" scroll-y="true" @scrolltolower="onReachBottomCus" refresher-enabled <scroll-view style="height: 100%;" scroll-y="true" @scrolltolower="onReachBottomCus" refresher-enabled
@refresherrefresh="onRefresherrefresh" :refresher-triggered="isTriggered"> @refresherrefresh="onRefresherrefresh" :refresher-triggered="isTriggered">
<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>
@ -427,6 +423,7 @@
} else { } else {
this.dataList = this.dataList.concat(res.data.records) this.dataList = this.dataList.concat(res.data.records)
} }
this.total = res.data.total
} }
}).catch((e) => { }).catch((e) => {
this.isTriggered = false this.isTriggered = false

View File

@ -32,6 +32,18 @@
<script> <script>
import noticeItem from '@/pages/components/notice-item.vue' import noticeItem from '@/pages/components/notice-item.vue'
import rightsCode from '@/utils/rightsCode'
import {
getCatgByCode
} from '@/api/system/config.js'
import {
toast,
hasRights
} from '@/utils/common.js'
import {
getSubscribeList,
getLoveList
} from '@/api/business/notice.js'
export default { export default {
components: { components: {
noticeItem noticeItem
@ -40,14 +52,104 @@
return { return {
menus: ['订阅', '关注'], menus: ['订阅', '关注'],
menuIndex: 0, menuIndex: 0,
dataList: ['', '', '', ''], dataList: [],
isTriggered: false,
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
} },
//
showSearch: false,
//
chooseCondition: 9,
total: 0,
//
isTriggered: false,
//
platformList: [],
//
bloggerTypeList: [],
} }
}, },
mounted() {
this.initData("dl_platform", "platformList")
this.initData("dl_blogger_type", "bloggerTypeList")
this.selectDataList()
},
methods: { methods: {
/**
* 查看通告详情
* @param {Object} item
*/
goDetail(item) {
this.$tab.navigateTo(`/pages/notice/detail?id=${item.id}`)
},
/**
* 初始化数据
* @param {Object} code
* @param {Object} dataObj
*/
initData(code, dataObj) {
let that = this
getCatgByCode({
code: code
}).then(res => {
if (res.code == 200) {
this[dataObj] = res.data
}
}).catch((e) => {
uni.showToast({
icon: 'error',
duration: 2000,
title: e
});
})
},
/**
* 查询数据
*/
selectDataList() {
if (this.menuIndex == 0) {
getSubscribeList(this.queryParams).then(res => {
this.isTriggered = false
if (res.code == 200) {
if (this.queryParams.pageNum == 1) {
this.dataList = res.data.records
} else {
this.dataList = this.dataList.concat(res.data.records)
}
this.total = res.data.total
}
}).catch((e) => {
this.isTriggered = false
uni.showToast({
icon: 'error',
duration: 2000,
title: e
});
})
} else {
getLoveList(this.queryParams).then(res => {
this.isTriggered = false
if (res.code == 200) {
if (this.queryParams.pageNum == 1) {
this.dataList = res.data.records
} else {
this.dataList = this.dataList.concat(res.data.records)
}
this.total = res.data.total
}
}).catch((e) => {
this.isTriggered = false
uni.showToast({
icon: 'error',
duration: 2000,
title: e
});
})
}
},
/** /**
* 菜单点击 * 菜单点击
* @param {Object} index * @param {Object} index
@ -59,8 +161,15 @@
} else if ('关注' == item) { } else if ('关注' == item) {
// //
} }
this.queryParams = {
pageNum: 1,
pageSize: 10,
}
this.menuIndex = index this.menuIndex = index
this.selectDataList()
}, },
/** /**
* 上滑加载数据 * 上滑加载数据
*/ */
@ -72,6 +181,7 @@
} }
//+1, //+1,
this.queryParams.pageNum++ this.queryParams.pageNum++
this.selectDataList()
}, },
/** /**
* 下拉刷新数据 * 下拉刷新数据
@ -80,6 +190,8 @@
this.isTriggered = true this.isTriggered = true
this.queryParams.pageNum = 1 this.queryParams.pageNum = 1
this.total = 0 this.total = 0
this.selectDataList()
}, },
/** /**
* 去订阅设置页面 * 去订阅设置页面

View File

@ -8,8 +8,8 @@
<image class="image" :src="userDetail.avatar?imageUrl+userDetail.avatar :'/static/images/profile.jpg'" <image class="image" :src="userDetail.avatar?imageUrl+userDetail.avatar :'/static/images/profile.jpg'"
mode="aspectFit"></image> mode="aspectFit"></image>
<view class="name-info"> <view class="name-info">
<view class="name">{{userDetail.nickName}}</view> <view class="name">{{userDetail.nickName||''}}</view>
<view class="text">{{userDetail.identityType}}</view> <view class="text">{{userDetail.identityType||''}}</view>
</view> </view>
<view class="fork-info"> <view class="fork-info">
<view class="up-box"> <view class="up-box">
@ -25,9 +25,9 @@
<view class="dl-notice-title"> <view class="dl-notice-title">
<image class="dl-image" :src="'/static/platform/'+noticeDetail.platformCode+'.png'" <image class="dl-image" :src="'/static/platform/'+noticeDetail.platformCode+'.png'"
mode="aspectFit"></image> mode="aspectFit"></image>
<view class="dl-text">{{noticeDetail.title}}</view> <view class="dl-text">{{noticeDetail.title||''}}</view>
</view> </view>
<view class="end-time">截止日期{{noticeDetail.endDate}}</view> <view class="end-time">截止日期{{noticeDetail.endDate||''}}</view>
<view class="field-box"> <view class="field-box">
<view class="dl-item"> <view class="dl-item">
<view class="dl-label"> <view class="dl-label">
@ -35,45 +35,45 @@
</view> </view>
<view class="dl-value"> <view class="dl-value">
<text v-if="null==noticeDetail.feeUp">无稿费</text> <text v-if="null==noticeDetail.feeUp">无稿费</text>
<text v-else>¥{{noticeDetail.feeDown}}-{{noticeDetail.feeUp}}</text> <text v-else>¥{{noticeDetail.feeDown||''}}-{{noticeDetail.feeUp||''}}</text>
</view> </view>
</view> </view>
<view class="dl-item"> <view class="dl-item">
<view class="dl-label"> <view class="dl-label">
招募名额 招募名额
</view> </view>
<view class="dl-value">{{noticeDetail.needNum}} </view> <view class="dl-value">{{noticeDetail.needNum||''}} </view>
</view> </view>
<view class="dl-item"> <view class="dl-item">
<view class="dl-label"> <view class="dl-label">
产品品牌 产品品牌
</view> </view>
<view class="dl-value">{{noticeDetail.brand}} </view> <view class="dl-value">{{noticeDetail.brand||''}} </view>
</view> </view>
<view class="dl-item"> <view class="dl-item">
<view class="dl-label"> <view class="dl-label">
粉丝要求 粉丝要求
</view> </view>
<view class="dl-value"> <view class="dl-value">
{{formatNumberWithUnits(noticeDetail.fansDown)}}-{{formatNumberWithUnits(noticeDetail.fansUp)}} {{formatNumberWithUnits(noticeDetail.fansDown)||''}}-{{formatNumberWithUnits(noticeDetail.fansUp)||''}}
</view> </view>
</view> </view>
<view class="dl-item"> <view class="dl-item">
<view class="dl-label"> <view class="dl-label">
地区要求 地区要求
</view> </view>
<view class="dl-value">{{noticeDetail.city}} </view> <view class="dl-value">{{noticeDetail.city||''}} </view>
</view> </view>
<view class="dl-item"> <view class="dl-item">
<view class="dl-label"> <view class="dl-label">
博主类型 博主类型
</view> </view>
<view class="dl-value">{{noticeDetail.bloggerTypes}}</view> <view class="dl-value">{{noticeDetail.bloggerTypes||''}}</view>
</view> </view>
</view> </view>
<view class="bottom-box"> <view class="bottom-box">
<text class="update-text">{{calculateTimeDifference(noticeDetail.updateTime)}}更新</text> <text class="update-text">{{calculateTimeDifference(noticeDetail.updateTime)||''}}更新</text>
<text class="view-text">{{noticeDetail.viewNum}} 阅读</text> <text class="view-text">{{noticeDetail.viewNum||''}} 阅读</text>
</view> </view>
</view> </view>
<!-- 通告详情 --> <!-- 通告详情 -->
@ -83,7 +83,8 @@
<rich-text style="width: 100%" :nodes="noticeDetail.detail" /> <rich-text style="width: 100%" :nodes="noticeDetail.detail" />
</view> </view>
<view class="detail-images"> <view class="detail-images">
<image v-for="(item,index) in noticeDetail.imageArray" :src="imageUrl+item" mode="widthFix"></image> <image v-for="(item,index) in noticeDetail.imageArray" @click="preview(noticeDetail.imageArray)"
:src="imageUrl+item" mode="widthFix"></image>
</view> </view>
</view> </view>
<!-- 联系方式 --> <!-- 联系方式 -->
@ -118,7 +119,7 @@
</view> </view>
<!-- 报名列表 --> <!-- 报名列表 -->
<view class="info-box notice-detail"> <view class="info-box notice-detail">
<view class="detail-title">收到报名{{imageArray.length}}</view> <view class="detail-title">报名{{imageArray.length||0}}</view>
<view class="image-box" v-if="imageArray.length>0" <view class="image-box" v-if="imageArray.length>0"
:style="{height:(imageArray.length*(imageWidth+10)+20)+'rpx'}"> :style="{height:(imageArray.length*(imageWidth+10)+20)+'rpx'}">
<view class="image-row" v-for="(row,rowIndex) in imageArray"> <view class="image-row" v-for="(row,rowIndex) in imageArray">
@ -132,7 +133,7 @@
<!-- 去报名始终浮动下方 --> <!-- 去报名始终浮动下方 -->
<view class="dl-bottom-box" v-show="showBottom"> <view class="dl-bottom-box" v-show="showBottom">
<!-- 报名 --> <!-- 报名 -->
<view class="report-box" v-if="null==userInfo || noticeDetail.userId!=userInfo.userId"> <view class="report-box">
<view @click="goHome()"> <view @click="goHome()">
<image src="@/static/detail/home.png" mode="aspectFit"></image> <image src="@/static/detail/home.png" mode="aspectFit"></image>
</view> </view>
@ -144,7 +145,7 @@
<view v-else class="join-report" @click="changeUserType()">切换博主后报名</view> <view v-else class="join-report" @click="changeUserType()">切换博主后报名</view>
</view> </view>
<!-- 通告发布人能操作的 --> <!-- 通告发布人能操作的 -->
<view class="report-box" v-if="null!=userInfo && userInfo.userId==noticeDetail.userId"> <view class="report-box" v-if="null!=userInfo && userInfo.userId==noticeDetail.userId&&ifBz==false">
<view v-if="'0'==noticeDetail.approvalStatus" class="close-notice">关闭</view> <view v-if="'0'==noticeDetail.approvalStatus" class="close-notice">关闭</view>
<view v-if="'0'==noticeDetail.approvalStatus" class="waiting-approval"> <view v-if="'0'==noticeDetail.approvalStatus" class="waiting-approval">
<view>审核中</view> <view>审核中</view>
@ -195,6 +196,9 @@
postForkUser postForkUser
} from '@/api/business/base.js' } from '@/api/business/base.js'
import config from '@/config' import config from '@/config'
import {
getSignCard
} from '@/api/business/signCard.js'
export default { export default {
components: { components: {
shareImages, shareImages,
@ -277,6 +281,16 @@
this.viewNotice() this.viewNotice()
}, },
methods: { methods: {
preview(imageArray) {
let previewImages = []
imageArray.forEach(it => {
previewImages.push(this.imageUrl + it)
})
uni.previewImage({
urls: previewImages, //
});
},
/** /**
* 转换时间单位 * 转换时间单位
* @param {Object} time * @param {Object} time
@ -435,7 +449,25 @@
* 报名 * 报名
*/ */
goReport() { goReport() {
getSignCard({
noticeId: this.noticeId
}).then(res => {
if (res.code == 200) {
if (res.data.canUserNum > 0) {
this.$tab.navigateTo('/pages/notice/report') this.$tab.navigateTo('/pages/notice/report')
} else {
this.$refs.alertDialog.open()
}
console.log(res);
}
}).catch((e) => {
uni.showToast({
icon: 'error',
duration: 2000,
title: e
});
})
}, },
/** /**
* 分享 * 分享

View File

@ -32,10 +32,10 @@
<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" v-for="(item,index) in settleTypeList">
<view v-for="(t,i) in item" <view v-for="(t,i) in item"
:class="dataObj.noticeTypeCode.indexOf(t.code)>-1?'line-item click':'line-item'" :class="dataObj.settleTypeCode==t.code?'line-item click':'line-item'"
@click="changeChooseValue(t,'noticeTypeCode')"> @click="changeChooseValue(t,'settleTypeCode')">
{{t.title}} {{t.title}}
</view> </view>
<view style="clear: both;"></view> <view style="clear: both;"></view>
@ -73,7 +73,7 @@
</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 rewardTypeList"> <view class="line-row" v-for="(item,index) in rewardTypeList">
@ -85,7 +85,7 @@
<view style="clear: both;"></view> <view style="clear: both;"></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">
@ -113,8 +113,8 @@
@change="switchChange($event,'newNotice')" /> @change="switchChange($event,'newNotice')" />
</view> </view>
<view class="seting-view"><text>订阅通告主新通告</text> <view class="seting-view"><text>订阅通告主新通告</text>
<switch v-if="dataObj.forkNotice" style="float: right;display: flex;" checked color="#FC1F3E" <switch v-if="dataObj.forkNotice" style="float: right;display: flex;" checked
@change="switchChange($event,'forkNotice')" /> color="#FC1F3E" @change="switchChange($event,'forkNotice')" />
<switch v-else style="float: right;display: flex;" color="#FC1F3E" <switch v-else style="float: right;display: flex;" color="#FC1F3E"
@change="switchChange($event,'forkNotice')" /> @change="switchChange($event,'forkNotice')" />
</view> </view>
@ -155,16 +155,16 @@
// //
bloggerTypeList: [], bloggerTypeList: [],
//-- //--
noticeTypeList: [ settleTypeList: [
[{ [{
code: "-1", code: "-1",
title: "不限" title: "不限"
}, { }, {
code: "money", code: "0",
title: "高奖励" title: "普通结算"
}, { }, {
code: "gift", code: "1",
title: "品牌置换" title: "平台结算"
}] }]
], ],
//-- //--
@ -184,7 +184,7 @@
dataObj: { dataObj: {
bloggerTypeCode: [], bloggerTypeCode: [],
platformCode: [], platformCode: [],
noticeTypeCode: [], settleTypeCode: '',
// //
keywordsList: [], keywordsList: [],
rewardTypeCode: [], rewardTypeCode: [],
@ -324,7 +324,12 @@
* @param {Object} key * @param {Object} key
*/ */
changeChooseValue(item, key) { changeChooseValue(item, key) {
console.log(item, 320);
if (key == 'settleTypeCode') {
this.dataObj[key] = item.code
console.log(this.dataObj[key], 320);
return
}
if (item.code == '-1') { if (item.code == '-1') {
this.dataObj[key] = [] this.dataObj[key] = []
this.dataObj[key].push(item.code) this.dataObj[key].push(item.code)