更新若干功能
This commit is contained in:
1 parent
892ba5886d
commit
79d5ae6b66
45 files changed
+6755
-38
No files matched your search
@@ -0,0 +1,140 @@
|
||||
import { request } from '@/api/request.js'
|
||||
import { getBaseURL } from '@/api/config.js'
|
||||
import { getToken } from '@/utils/auth.js'
|
||||
|
||||
/**
|
||||
* OA 工作日报接口封装,对应后端 /api/oa/dailyreport/*。
|
||||
* 与后台 PC 端 /backend/oa/dailyreport/* 共用同一套数据与权限:
|
||||
* 本人 / 部门主管 / 管理员三级可见,已提交日报支持评论与回复。
|
||||
*/
|
||||
|
||||
/** 当前用户身份与可见范围 */
|
||||
export function fetchDailyReportProfile() {
|
||||
return request({ url: '/api/oa/dailyreport/profile' })
|
||||
}
|
||||
|
||||
/**
|
||||
* 我的日报列表
|
||||
* @param {{page?:number,pageSize?:number,startDate?:string,endDate?:string}} params
|
||||
* @returns {{list:Array,total:number,summary:Object}}
|
||||
*/
|
||||
export function fetchMyDailyReports(params = {}) {
|
||||
return request({
|
||||
url: '/api/oa/dailyreport/mine/list',
|
||||
data: {
|
||||
page: params.page || 1,
|
||||
pageSize: params.pageSize || 20,
|
||||
start_date: params.startDate || '',
|
||||
end_date: params.endDate || ''
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/** 日报详情:{ report, comments, can_edit, can_delete, can_comment } */
|
||||
export function fetchDailyReportDetail(id) {
|
||||
return request({ url: `/api/oa/dailyreport/detail/${id}` })
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存日报
|
||||
* @param {{date:string,todayDone:string,tomorrowPlan:string,issues:string,attachments:Array,submit:boolean}} payload
|
||||
*/
|
||||
export function saveDailyReport(payload) {
|
||||
return request({
|
||||
url: '/api/oa/dailyreport/save',
|
||||
method: 'POST',
|
||||
data: {
|
||||
date: payload.date,
|
||||
today_done: payload.todayDone || '',
|
||||
tomorrow_plan: payload.tomorrowPlan || '',
|
||||
issues: payload.issues || '',
|
||||
attachments: JSON.stringify(payload.attachments || []),
|
||||
submit: Boolean(payload.submit)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
export function deleteDailyReport(id) {
|
||||
return request({ url: `/api/oa/dailyreport/delete/${id}`, method: 'DELETE' })
|
||||
}
|
||||
|
||||
/**
|
||||
* 团队日报汇总
|
||||
* @param {{date?:string,orgId?:number,keyword?:string,page?:number,pageSize?:number}} params
|
||||
* @returns {{date:string,list:Array,total:number,stats:Object}}
|
||||
*/
|
||||
export function fetchTeamDailyReports(params = {}) {
|
||||
return request({
|
||||
url: '/api/oa/dailyreport/team/status',
|
||||
data: {
|
||||
date: params.date || '',
|
||||
org_id: params.orgId || 0,
|
||||
keyword: params.keyword || '',
|
||||
page: params.page || 1,
|
||||
pageSize: params.pageSize || 20
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/** 团队筛选部门:{ list: [{id,parent_id,name,member_count}] } */
|
||||
export function fetchTeamDailyReportOrgs() {
|
||||
return request({ url: '/api/oa/dailyreport/team/orgs' })
|
||||
}
|
||||
|
||||
/** 评论 / 回复:replyToId=0 表示直接评论 */
|
||||
export function addDailyReportComment(reportId, content, replyToId = 0) {
|
||||
return request({
|
||||
url: '/api/oa/dailyreport/comment',
|
||||
method: 'POST',
|
||||
data: {
|
||||
report_id: Number(reportId),
|
||||
content,
|
||||
reply_to_id: Number(replyToId) || 0
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
export function deleteDailyReportComment(id) {
|
||||
return request({ url: `/api/oa/dailyreport/comment/${id}`, method: 'DELETE' })
|
||||
}
|
||||
|
||||
/**
|
||||
* 上传日报附件(multipart,字段名 file,单文件 ≤10MB)
|
||||
* 返回 { id, url, name },与 Web 端上传结果结构一致。
|
||||
*/
|
||||
export function uploadDailyReportFile(filePath) {
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.uploadFile({
|
||||
url: `${getBaseURL().replace(/\/$/, '')}/api/oa/dailyreport/upload`,
|
||||
filePath,
|
||||
name: 'file',
|
||||
header: { Authorization: `Bearer ${getToken()}` },
|
||||
success(res) {
|
||||
let body = {}
|
||||
try {
|
||||
body = JSON.parse(res.data || '{}')
|
||||
} catch (e) {
|
||||
// 非 JSON 响应按失败处理
|
||||
}
|
||||
if (res.statusCode >= 200 && res.statusCode < 300 && body.code === 200 && body.data) {
|
||||
resolve(body.data)
|
||||
} else {
|
||||
const msg = body.msg || `上传失败(${res.statusCode})`
|
||||
uni.showToast({ title: msg, icon: 'none' })
|
||||
reject(new Error(msg))
|
||||
}
|
||||
},
|
||||
fail(err) {
|
||||
uni.showToast({ title: '网络异常,上传失败', icon: 'none' })
|
||||
reject(err)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
/** 今日 "YYYY-MM-DD"(与后端本地日期口径一致) */
|
||||
export function todayString() {
|
||||
const now = new Date()
|
||||
const pad = (n) => String(n).padStart(2, '0')
|
||||
return `${now.getFullYear()}-${pad(now.getMonth() + 1)}-${pad(now.getDate())}`
|
||||
}
|
||||
Reference in new issue
Block a user