From 53cfc53ba8b38ad4e04a89136b156bd74b57c9e1 Mon Sep 17 00:00:00 2001 From: dengxin <2390584170@qq.com> Date: Tue, 19 Mar 2024 17:21:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- store/models/news_recruit.js | 674 +++++++++++++++++------------------ 1 file changed, 319 insertions(+), 355 deletions(-) diff --git a/store/models/news_recruit.js b/store/models/news_recruit.js index 984b3cc..c710d6e 100644 --- a/store/models/news_recruit.js +++ b/store/models/news_recruit.js @@ -1,373 +1,337 @@ import { - inviteCount, - inviteList, - inviteRead, - inviteRemove, - noticeCount, - noticeList, - noticeRead, - noticeRemove -} from '@/api/news.js' -import website from '@/config/website.js' -const size = 20 + inviteCount, + inviteList, + inviteRead, + inviteRemove, + noticeCount, + noticeList, + noticeRead, + noticeRemove, +} from "@/api/news.js"; +import website from "@/config/website.js"; +const size = 20; const handler = { - '0': { - count: noticeCount, - getList: noticeList, - read: noticeRead, - remove: noticeRemove - }, - '1': { - count: inviteCount, - getList: inviteList, - read: inviteRead, - remove: inviteRemove - } -} + 0: { + count: noticeCount, + getList: noticeList, + read: noticeRead, + remove: noticeRemove, + }, + 1: { + count: inviteCount, + getList: inviteList, + read: inviteRead, + remove: inviteRemove, + }, +}; function getCount(data) { - let sum = 0 - for (let key in data) { - sum += data[key] - } - return sum + let sum = 0; + for (let key in data) { + sum += data[key]; + } + return sum; } let refreshTimer = null; function startRefreshToken(dispatch) { - refreshTimer = setInterval(() => { - dispatch("newsInit"); - }, website.newsRefreshTime); + refreshTimer = setInterval(() => { + dispatch("newsInit"); + }, website.newsRefreshTime); } function stopRefreshToken() { - clearInterval(refreshTimer) + clearInterval(refreshTimer); } const news = { - state: { - count: 0, - data: { - "0": { - id: "0", - title: "消息通知", - icon: "../../../static/img/notice.svg", - page: { - current: 0, - size, - total: size - }, - data: [], - prop: { - title: 'title', - desc: (value) => { - if (value.data[0]) - return value.data[0][0]['desc'] - }, - time: 'createTime', - isRead: 'isRead', - listDesc: 'desc', - }, - navigateTo(item) { - uni.$once('getNewsDetail', (cb) => { - cb(item) - }) - uni.navigateTo({ - url: "/pages/news/newsDetail?type=0" - }) - } - }, - "1": { - id: "1", - title: "任务申请", - icon: "../../../static/img/renwu.png", - page: { - current: 0, - size, - total: size - }, - data: [], - prop: { - title: 'missionTitle', - desc: (value) => { - if (value.data[0]) - return `您收到${value.data[0][0]['companyName']}的任务` - }, - time: 'createTime', - isRead: 'status', - listDesc: 'companyName', - }, - navigateTo(item, dispatch) { - dispatch('readNew', { - key: '1', - id: item.id - }) - uni.navigateTo({ - url: `/pages/projectInfo/projectInfo?type=1&missionNo=${encodeURIComponent(item.missionNo)}&id=${encodeURIComponent(item.id)}` - }) - } - }, - "2": { - id: "1", - title: "岗位申请", - icon: "../../../static/img/job_recruit.svg", - page: { - current: 0, - size, - total: size - }, - data: [], - prop: { - title: 'missionTitle', - desc: (value) => { - if (value.data[0]) - return `您收到${value.data[0][0]['companyName']}的任务` - }, - time: 'createTime', - isRead: 'status', - listDesc: 'companyName', - }, - navigateTo(item, dispatch) { - dispatch('readNew', { - key: '1', - id: item.id - }) - uni.navigateTo({ - url: `/pages/projectInfo/projectInfo?type=1&missionNo=${encodeURIComponent(item.missionNo)}&id=${encodeURIComponent(item.id)}` - }) - } - }, - // "3": { - // id: "1", - // title: "技能推送", - // icon: "../../../static/img/jineng.svg", - // page: { - // current: 0, - // size, - // total: size - // }, - // data: [], - // prop: { - // title: 'missionTitle', - // desc: (value) => { - // if (value.data[0]) - // return `您收到${value.data[0][0]['companyName']}的任务` - // }, - // time: 'createTime', - // isRead: 'status', - // listDesc: 'companyName', - // }, - // navigateTo(item, dispatch) { - // dispatch('readNew', { - // key: '1', - // id: item.id - // }) - // uni.navigateTo({ - // url: `/pages/projectInfo/projectInfo?type=1&missionNo=${encodeURIComponent(item.missionNo)}&id=${encodeURIComponent(item.id)}` - // }) - // } - // }, - "4": { - id: "1", - title: "个人户申请", - icon: "../../../static/img/own_recruit.svg", - page: { - current: 0, - size, - total: size - }, - data: [], - prop: { - title: 'missionTitle', - desc: (value) => { - if (value.data[0]) - return `您收到${value.data[0][0]['companyName']}的任务` - }, - time: 'createTime', - isRead: 'status', - listDesc: 'companyName', - }, - navigateTo(item, dispatch) { - dispatch('readNew', { - key: '1', - id: item.id - }) - uni.navigateTo({ - url: `/pages/projectInfo/projectInfo?type=1&missionNo=${encodeURIComponent(item.missionNo)}&id=${encodeURIComponent(item.id)}` - }) - } - } - }, - unread: { - "0": 0, - "1": 0 - }, - allUnread: 0, - dic: {} - }, - actions: { - newsInit({ - dispatch - }) { - const ps = [] - ps.push(dispatch('getUnreadNum')) + state: { + count: 0, + data: { + 0: { + id: "0", + title: "消息通知", + icon: "../../../static/img/notice.svg", + page: { + current: 0, + size, + total: size, + }, + data: [], + prop: { + title: "title", + desc: (value) => { + if (value.data[0]) return value.data[0][0]["desc"]; + }, + time: "createTime", + isRead: "isRead", + listDesc: "desc", + }, + navigateTo(item) { + uni.$once("getNewsDetail", (cb) => { + cb(item); + }); + uni.navigateTo({ + url: "/pages/news/newsDetail?type=0", + }); + }, + }, + 1: { + id: "1", + title: "任务申请", + icon: "../../../static/img/renwu.png", + page: { + current: 0, + size, + total: size, + }, + data: [], + prop: { + title: "missionTitle", + desc: (value) => { + if (value.data[0]) + return `您收到${value.data[0][0]["companyName"]}的任务`; + }, + time: "createTime", + isRead: "status", + listDesc: "companyName", + }, + navigateTo(item, dispatch) { + dispatch("readNew", { + key: "1", + id: item.id, + }); + uni.navigateTo({ + url: `/pages/projectInfo/projectInfo?type=1&missionNo=${encodeURIComponent( + item.missionNo + )}&id=${encodeURIComponent(item.id)}`, + }); + }, + }, + 2: { + id: "1", + title: "岗位申请", + icon: "../../../static/img/job_recruit.svg", + page: { + current: 0, + size, + total: size, + }, + data: [], + prop: { + title: "missionTitle", + desc: (value) => { + if (value.data[0]) + return `您收到${value.data[0][0]["companyName"]}的任务`; + }, + time: "createTime", + isRead: "status", + listDesc: "companyName", + }, + navigateTo(item, dispatch) { + dispatch("readNew", { + key: "1", + id: item.id, + }); + uni.navigateTo({ + url: `/pages/projectInfo/projectInfo?type=1&missionNo=${encodeURIComponent( + item.missionNo + )}&id=${encodeURIComponent(item.id)}`, + }); + }, + }, + // "3": { + // id: "1", + // title: "技能推送", + // icon: "../../../static/img/jineng.svg", + // page: { + // current: 0, + // size, + // total: size + // }, + // data: [], + // prop: { + // title: 'missionTitle', + // desc: (value) => { + // if (value.data[0]) + // return `您收到${value.data[0][0]['companyName']}的任务` + // }, + // time: 'createTime', + // isRead: 'status', + // listDesc: 'companyName', + // }, + // navigateTo(item, dispatch) { + // dispatch('readNew', { + // key: '1', + // id: item.id + // }) + // uni.navigateTo({ + // url: `/pages/projectInfo/projectInfo?type=1&missionNo=${encodeURIComponent(item.missionNo)}&id=${encodeURIComponent(item.id)}` + // }) + // } + // }, + 4: { + id: "1", + title: "个人户申请", + icon: "../../../static/img/own_recruit.svg", + page: { + current: 0, + size, + total: size, + }, + data: [], + prop: { + title: "missionTitle", + desc: (value) => { + if (value.data[0]) + return `您收到${value.data[0][0]["companyName"]}的任务`; + }, + time: "createTime", + isRead: "status", + listDesc: "companyName", + }, + navigateTo(item, dispatch) { + dispatch("readNew", { + key: "1", + id: item.id, + }); + uni.navigateTo({ + url: `/pages/projectInfo/projectInfo?type=1&missionNo=${encodeURIComponent( + item.missionNo + )}&id=${encodeURIComponent(item.id)}`, + }); + }, + }, + }, + unread: { + 0: 0, + 1: 0, + }, + allUnread: 0, + dic: {}, + }, + actions: { + newsInit({ dispatch }) { + const ps = []; + ps.push(dispatch("getUnreadNum")); - for (let key in handler) { - ps.push(dispatch('newsReload', key)) - } - return Promise.all(ps) - }, - newsReload({ - dispatch, - commit - }, id) { - commit('CLEAR_NEWS_DATA', id) - return dispatch('newsGetNextPage', id) - }, - getUnreadNum({ - commit - }) { - for (let key in handler) { - handler[key].count().then((result) => { - commit('SET_UNREADNUM', { - id: key, - count: result - }) - }) - } - }, - newsGetNextPage({ - state, - commit - }, id) { - const item = state.data[id] - const page = item.page - const current = page.current + 1 - return new Promise((resolve, reject) => { - if (parseInt(page.total / page.size) + 1 < current) { - resolve() - return - } - handler[id].getList(current, page.size).then(res => { - const data = res.data.data; - commit('ADD_NEWS_DATA', { - id, - data: data.records, - current, - total: data.total - }) - resolve(res) - }).catch(reject) - }) - }, - removeNew({ - commit - }, { - id, - key, - group, - index - }) { - return new Promise((resolve, reject) => { - commit('REMOVE_NEWS', { - id, - key, - group, - index - }) - handler[key].remove(id).then(resolve, reject) - }) - }, - readNew({ - commit - }, { - key, - id - }) { - return new Promise((resolve, reject) => { - commit('READ_NEWS', { - key, - id - }) - handler[key].read(id).then(resolve, reject) - }) - }, - endRefreshNewsTimer(){ - stopRefreshToken() - }, - startRefreshNewsTimer({ - state, - commit, - dispatch - }) { - dispatch('newsInit').then(() => { - startRefreshToken(dispatch); - }) - } - }, - mutations: { - SET_UNREADNUM: (state, { - id, - count - }) => { - state.unread[id] = count - state.allUnread = getCount(state.unread) - }, - CLEAR_NEWS_DATA: (state, id) => { - state.data[id]?.page = { - current: 0, - size - } - state.data[id].data = [] - }, - ADD_NEWS_DATA: (state, { - id, - data, - current, - total - }) => { - data.forEach(item => { - state.dic[item.id] = item - }) - state.data[id].page.total = total - state.data[id].page.current = current - if (data.length > 0) { - state.data[id].data.push(data) - } - }, - REMOVE_NEWS: (state, { - id, - key, - group, - index - }) => { - const readProp = state.data[key].prop['isRead'] - if (state.dic[id][readProp] === 0) { - state.unread[key]-- - state.allUnread-- - } - state.dic[id] = undefined - const data = state.data[key].data - data[group].splice(index, 1) - if (data[group].length === 0) { - data.splice(group, 1) - } - }, - READ_NEWS: (state, { - key, - id - }) => { - const readProp = state.data[key].prop['isRead'] - if (state.dic[id][readProp] === 0) { - state.dic[id][readProp] = 1 - state.unread[key]-- - state.allUnread-- - } - } - }, - getters: { - - } + for (let key in handler) { + ps.push(dispatch("newsReload", key)); + } + return Promise.all(ps); + }, + newsReload({ dispatch, commit }, id) { + commit("CLEAR_NEWS_DATA", id); + return dispatch("newsGetNextPage", id); + }, + getUnreadNum({ commit }) { + for (let key in handler) { + handler[key].count().then((result) => { + commit("SET_UNREADNUM", { + id: key, + count: result, + }); + }); + } + }, + newsGetNextPage({ state, commit }, id) { + const item = state.data[id]; + const page = item.page; + const current = page.current + 1; + return new Promise((resolve, reject) => { + if (parseInt(page.total / page.size) + 1 < current) { + resolve(); + return; + } + handler[id] + .getList(current, page.size) + .then((res) => { + const data = res.data.data; + commit("ADD_NEWS_DATA", { + id, + data: data.records, + current, + total: data.total, + }); + resolve(res); + }) + .catch(reject); + }); + }, + removeNew({ commit }, { id, key, group, index }) { + return new Promise((resolve, reject) => { + commit("REMOVE_NEWS", { + id, + key, + group, + index, + }); + handler[key].remove(id).then(resolve, reject); + }); + }, + readNew({ commit }, { key, id }) { + return new Promise((resolve, reject) => { + commit("READ_NEWS", { + key, + id, + }); + handler[key].read(id).then(resolve, reject); + }); + }, + endRefreshNewsTimer() { + stopRefreshToken(); + }, + startRefreshNewsTimer({ state, commit, dispatch }) { + dispatch("newsInit").then(() => { + startRefreshToken(dispatch); + }); + }, + }, + mutations: { + SET_UNREADNUM: (state, { id, count }) => { + state.unread[id] = count; + state.allUnread = getCount(state.unread); + }, + CLEAR_NEWS_DATA: (state, id) => { + state.data[id].page = { + current: 0, + size, + }; + state.data[id].data = []; + }, + ADD_NEWS_DATA: (state, { id, data, current, total }) => { + data.forEach((item) => { + state.dic[item.id] = item; + }); + state.data[id].page.total = total; + state.data[id].page.current = current; + if (data.length > 0) { + state.data[id].data.push(data); + } + }, + REMOVE_NEWS: (state, { id, key, group, index }) => { + const readProp = state.data[key].prop["isRead"]; + if (state.dic[id][readProp] === 0) { + state.unread[key]--; + state.allUnread--; + } + state.dic[id] = undefined; + const data = state.data[key].data; + data[group].splice(index, 1); + if (data[group].length === 0) { + data.splice(group, 1); + } + }, + READ_NEWS: (state, { key, id }) => { + const readProp = state.data[key].prop["isRead"]; + if (state.dic[id][readProp] === 0) { + state.dic[id][readProp] = 1; + state.unread[key]--; + state.allUnread--; + } + }, + }, + getters: {}, }; export default news;