260720
This commit is contained in:
187
pages/mine/service.js
Normal file
187
pages/mine/service.js
Normal file
@@ -0,0 +1,187 @@
|
||||
import {
|
||||
API_BASE_URL,
|
||||
apiRequest,
|
||||
getCurrentUser
|
||||
} from '../assistant/chat-service'
|
||||
import { clearAuthStorage, ensureLoggedIn, get, hasToken } from '../../utils/request'
|
||||
import { getModuleMeta } from '../../utils/gxmu/config'
|
||||
|
||||
const LOCAL_DECLARE_PREFIX = 'gxmu_form_draft_'
|
||||
const LOCAL_PROFILE_OVERRIDE_PREFIX = 'mine_profile_override_'
|
||||
|
||||
export { getCurrentUser }
|
||||
export { hasToken, ensureLoggedIn }
|
||||
|
||||
export function logout() {
|
||||
clearAuthStorage()
|
||||
}
|
||||
|
||||
function getProfileOverrideStorageKey(userId) {
|
||||
const normalizedUserId = String(userId || '').trim()
|
||||
return `${LOCAL_PROFILE_OVERRIDE_PREFIX}${normalizedUserId || 'default'}`
|
||||
}
|
||||
|
||||
export function getLocalProfileOverride(userId) {
|
||||
try {
|
||||
return uni.getStorageSync(getProfileOverrideStorageKey(userId)) || {}
|
||||
} catch (error) {
|
||||
return {}
|
||||
}
|
||||
}
|
||||
|
||||
export function saveLocalProfileOverride(userId, payload) {
|
||||
const value = payload && typeof payload === 'object' ? payload : {}
|
||||
uni.setStorageSync(getProfileOverrideStorageKey(userId), value)
|
||||
return value
|
||||
}
|
||||
|
||||
export function getUserProfile() {
|
||||
return apiRequest({
|
||||
url: `${API_BASE_URL}/auth/user`,
|
||||
method: 'GET'
|
||||
})
|
||||
}
|
||||
|
||||
export function updateUserProfileData(data) {
|
||||
return apiRequest({
|
||||
url: `${API_BASE_URL}/system/user/update-data`,
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function listOrganizations(params) {
|
||||
return get('/system/organization', params)
|
||||
}
|
||||
|
||||
export function listManuscript(params) {
|
||||
return apiRequest({
|
||||
url: `${API_BASE_URL}/cms/manuscript`,
|
||||
method: 'GET',
|
||||
data: params
|
||||
})
|
||||
}
|
||||
|
||||
export function userPageQmgcForm(params) {
|
||||
return apiRequest({
|
||||
url: `${API_BASE_URL}/gxmu/qmgc-form/userPage`,
|
||||
method: 'GET',
|
||||
data: params
|
||||
})
|
||||
}
|
||||
|
||||
export function listAvailableDeclare(params) {
|
||||
return apiRequest({
|
||||
url: `${API_BASE_URL}/gxmu/declare`,
|
||||
method: 'GET',
|
||||
data: params
|
||||
})
|
||||
}
|
||||
|
||||
export function formatDateTime(value) {
|
||||
if (!value) {
|
||||
return '-'
|
||||
}
|
||||
const date = new Date(String(value).replace(/-/g, '/'))
|
||||
if (Number.isNaN(date.getTime())) {
|
||||
return value
|
||||
}
|
||||
const pad = (item) => String(item).padStart(2, '0')
|
||||
return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())} ${pad(date.getHours())}:${pad(date.getMinutes())}`
|
||||
}
|
||||
|
||||
export function getLatestReview(reviewList) {
|
||||
if (!Array.isArray(reviewList) || !reviewList.length) {
|
||||
return null
|
||||
}
|
||||
return reviewList[reviewList.length - 1] || null
|
||||
}
|
||||
|
||||
export function getReviewStatusMeta(reviewList) {
|
||||
const latest = getLatestReview(reviewList)
|
||||
if (!latest) {
|
||||
return {
|
||||
text: '未审核',
|
||||
tone: 'default'
|
||||
}
|
||||
}
|
||||
if (latest.status === 1) {
|
||||
return {
|
||||
text: '通过',
|
||||
tone: 'success'
|
||||
}
|
||||
}
|
||||
if (latest.status === 0 || latest.status === 2) {
|
||||
return {
|
||||
text: '不通过',
|
||||
tone: 'danger'
|
||||
}
|
||||
}
|
||||
return {
|
||||
text: '待审核',
|
||||
tone: 'warning'
|
||||
}
|
||||
}
|
||||
|
||||
export function getManuscriptStatusMeta(record) {
|
||||
const reviewMeta = getReviewStatusMeta(record && record.reviewList)
|
||||
if (reviewMeta.text !== '未审核') {
|
||||
return reviewMeta
|
||||
}
|
||||
if (record && Number(record.status) === 1) {
|
||||
return {
|
||||
text: '已发布',
|
||||
tone: 'success'
|
||||
}
|
||||
}
|
||||
if (record && Number(record.status) === 0) {
|
||||
return {
|
||||
text: '待审核',
|
||||
tone: 'warning'
|
||||
}
|
||||
}
|
||||
return {
|
||||
text: '未审核',
|
||||
tone: 'default'
|
||||
}
|
||||
}
|
||||
|
||||
export function getLocalDeclareRecords() {
|
||||
try {
|
||||
const storageInfo = uni.getStorageInfoSync()
|
||||
const keys = (storageInfo.keys || []).filter((key) => key.indexOf(LOCAL_DECLARE_PREFIX) === 0)
|
||||
return keys
|
||||
.map((key) => {
|
||||
const draft = uni.getStorageSync(key)
|
||||
if (!draft || !draft.formData) {
|
||||
return null
|
||||
}
|
||||
const moduleCode = draft.moduleCode || ''
|
||||
if (!moduleCode) {
|
||||
return null
|
||||
}
|
||||
const moduleMeta = getModuleMeta(moduleCode)
|
||||
const year = String((draft.formData && draft.formData.year) || '').trim()
|
||||
return {
|
||||
key,
|
||||
moduleCode,
|
||||
title: (moduleMeta && moduleMeta.title) || '未命名申报',
|
||||
group: (moduleMeta && moduleMeta.group) || '申报项目',
|
||||
icon: (moduleMeta && moduleMeta.icon) || '申',
|
||||
year,
|
||||
savedAt: draft.savedAt || '',
|
||||
status: draft.status === 'submitted' ? '已提交' : '草稿',
|
||||
formData: draft.formData,
|
||||
route: `/pages/gxmu/form?code=${encodeURIComponent(moduleCode)}&year=${encodeURIComponent(year)}&declareTitle=${encodeURIComponent((moduleMeta && moduleMeta.title) || '申报表')}`
|
||||
}
|
||||
})
|
||||
.filter(Boolean)
|
||||
.sort((left, right) => {
|
||||
const leftTime = new Date(String((left && left.savedAt) || '').replace(/-/g, '/')).getTime()
|
||||
const rightTime = new Date(String((right && right.savedAt) || '').replace(/-/g, '/')).getTime()
|
||||
return (Number.isNaN(rightTime) ? 0 : rightTime) - (Number.isNaN(leftTime) ? 0 : leftTime)
|
||||
})
|
||||
} catch (error) {
|
||||
return []
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user