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) {
return request({

View File

@ -70,10 +70,6 @@
<scroll-view style="height: 100%;" scroll-y="true" @scrolltolower="onReachBottomCus" refresher-enabled
@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>
<view style="text-align: center" v-if="dataList.length==0">
<image class="" src="@/static/images/nothing.png"></image>
</view>
@ -427,6 +423,7 @@
} else {
this.dataList = this.dataList.concat(res.data.records)
}
this.total = res.data.total
}
}).catch((e) => {
this.isTriggered = false

View File

@ -32,6 +32,18 @@
<script>
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 {
components: {
noticeItem
@ -40,14 +52,104 @@
return {
menus: ['订阅', '关注'],
menuIndex: 0,
dataList: ['', '', '', ''],
dataList: [],
isTriggered: false,
queryParams: {
pageNum: 1,
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: {
/**
* 查看通告详情
* @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
@ -59,8 +161,15 @@
} else if ('关注' == item) {
//
}
this.queryParams = {
pageNum: 1,
pageSize: 10,
}
this.menuIndex = index
this.selectDataList()
},
/**
* 上滑加载数据
*/
@ -72,6 +181,7 @@
}
//+1,
this.queryParams.pageNum++
this.selectDataList()
},
/**
* 下拉刷新数据
@ -80,6 +190,8 @@
this.isTriggered = true
this.queryParams.pageNum = 1
this.total = 0
this.selectDataList()
},
/**
* 去订阅设置页面

View File

@ -8,8 +8,8 @@
<image class="image" :src="userDetail.avatar?imageUrl+userDetail.avatar :'/static/images/profile.jpg'"
mode="aspectFit"></image>
<view class="name-info">
<view class="name">{{userDetail.nickName}}</view>
<view class="text">{{userDetail.identityType}}</view>
<view class="name">{{userDetail.nickName||''}}</view>
<view class="text">{{userDetail.identityType||''}}</view>
</view>
<view class="fork-info">
<view class="up-box">
@ -25,9 +25,9 @@
<view class="dl-notice-title">
<image class="dl-image" :src="'/static/platform/'+noticeDetail.platformCode+'.png'"
mode="aspectFit"></image>
<view class="dl-text">{{noticeDetail.title}}</view>
<view class="dl-text">{{noticeDetail.title||''}}</view>
</view>
<view class="end-time">截止日期{{noticeDetail.endDate}}</view>
<view class="end-time">截止日期{{noticeDetail.endDate||''}}</view>
<view class="field-box">
<view class="dl-item">
<view class="dl-label">
@ -35,45 +35,45 @@
</view>
<view class="dl-value">
<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 class="dl-item">
<view class="dl-label">
招募名额
</view>
<view class="dl-value">{{noticeDetail.needNum}} </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 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)}}
{{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 class="dl-value">{{noticeDetail.city||''}} </view>
</view>
<view class="dl-item">
<view class="dl-label">
博主类型
</view>
<view class="dl-value">{{noticeDetail.bloggerTypes}}</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>
<text class="update-text">{{calculateTimeDifference(noticeDetail.updateTime)||''}}更新</text>
<text class="view-text">{{noticeDetail.viewNum||''}} 阅读</text>
</view>
</view>
<!-- 通告详情 -->
@ -83,7 +83,8 @@
<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>
<image v-for="(item,index) in noticeDetail.imageArray" @click="preview(noticeDetail.imageArray)"
:src="imageUrl+item" mode="widthFix"></image>
</view>
</view>
<!-- 联系方式 -->
@ -118,7 +119,7 @@
</view>
<!-- 报名列表 -->
<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"
:style="{height:(imageArray.length*(imageWidth+10)+20)+'rpx'}">
<view class="image-row" v-for="(row,rowIndex) in imageArray">
@ -132,7 +133,7 @@
<!-- 去报名始终浮动下方 -->
<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()">
<image src="@/static/detail/home.png" mode="aspectFit"></image>
</view>
@ -144,7 +145,7 @@
<view v-else class="join-report" @click="changeUserType()">切换博主后报名</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="waiting-approval">
<view>审核中</view>
@ -195,6 +196,9 @@
postForkUser
} from '@/api/business/base.js'
import config from '@/config'
import {
getSignCard
} from '@/api/business/signCard.js'
export default {
components: {
shareImages,
@ -277,6 +281,16 @@
this.viewNotice()
},
methods: {
preview(imageArray) {
let previewImages = []
imageArray.forEach(it => {
previewImages.push(this.imageUrl + it)
})
uni.previewImage({
urls: previewImages, //
});
},
/**
* 转换时间单位
* @param {Object} time
@ -435,7 +449,25 @@
* 报名
*/
goReport() {
getSignCard({
noticeId: this.noticeId
}).then(res => {
if (res.code == 200) {
if (res.data.canUserNum > 0) {
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="dl-title">结算方式</view>
<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"
:class="dataObj.noticeTypeCode.indexOf(t.code)>-1?'line-item click':'line-item'"
@click="changeChooseValue(t,'noticeTypeCode')">
:class="dataObj.settleTypeCode==t.code?'line-item click':'line-item'"
@click="changeChooseValue(t,'settleTypeCode')">
{{t.title}}
</view>
<view style="clear: both;"></view>
@ -73,7 +73,7 @@
</view>
</view>
</view>
<view class="line-box">
<!-- <view class="line-box">
<view class="dl-title">奖励</view>
<view class="dl-content">
<view class="line-row" v-for="(item,index) in rewardTypeList">
@ -85,7 +85,7 @@
<view style="clear: both;"></view>
</view>
</view>
</view>
</view> -->
<view class="line-box">
<view class="dl-title">稿费要求</view>
<view class="dl-content">
@ -113,8 +113,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>
@ -155,16 +155,16 @@
//
bloggerTypeList: [],
//--
noticeTypeList: [
settleTypeList: [
[{
code: "-1",
title: "不限"
}, {
code: "money",
title: "高奖励"
code: "0",
title: "普通结算"
}, {
code: "gift",
title: "品牌置换"
code: "1",
title: "平台结算"
}]
],
//--
@ -184,7 +184,7 @@
dataObj: {
bloggerTypeCode: [],
platformCode: [],
noticeTypeCode: [],
settleTypeCode: '',
//
keywordsList: [],
rewardTypeCode: [],
@ -324,7 +324,12 @@
* @param {Object} 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') {
this.dataObj[key] = []
this.dataObj[key].push(item.code)