127 lines
3.3 KiB
JavaScript
127 lines
3.3 KiB
JavaScript
import request from "@/utils/request.js";
|
|
/**
|
|
* 获取工单列表
|
|
* @param {Object} params 查询参数
|
|
* @returns {Promise}
|
|
*/
|
|
|
|
export function getTickerList(count, page, status, orderBy, order, userId, keyword) {
|
|
const params = { count, page }
|
|
if (status !== undefined && status !== '') params.status = status
|
|
if (orderBy) params.orderBy = orderBy
|
|
if (order) params.order = order
|
|
if (userId) params.user_id = userId
|
|
if (keyword) params.keyword = keyword
|
|
console.log('工单列表请求参数:', params) // 调试日志
|
|
return request.get('/api/v1/admin/work_order/list', params)
|
|
}
|
|
|
|
// 待处理
|
|
export function getPendingTicketList(count, page) {
|
|
return getTickerList(count,page,0)
|
|
}
|
|
|
|
// 进行中
|
|
export function getProcessingTicketList(count, page) {
|
|
return getTickerList(count,page,1)
|
|
}
|
|
|
|
//已回复
|
|
export function getRepliedTicketList(count, page) {
|
|
return getTickerList(count,page,2)
|
|
}
|
|
|
|
// 已解决
|
|
export function getCompletedTicketList(count, page) {
|
|
return getTickerList(count,page,3)
|
|
}
|
|
|
|
// 获取工单详情
|
|
export function getTicketDetail(work_id) {
|
|
return request.get('/api/v1/admin/work_order/detail', { work_id })
|
|
}
|
|
|
|
// 回复工单
|
|
export function replyTicket(work_id, content, files) {
|
|
return request.post('/api/v1/admin/work_order/reply', { work_id, content, files })
|
|
}
|
|
|
|
// 关闭工单
|
|
export function closeTicket(work_id) {
|
|
return request.post('/api/v1/admin/work_order/close', { work_id })
|
|
}
|
|
|
|
export function getFile(file_id) {
|
|
return request.get('/api/v1/tool/file/down', { file_id })
|
|
}
|
|
|
|
// 获取用户头像
|
|
export function getUserAvatar(user_id) {
|
|
// TODO: 实现获取用户头像的逻辑
|
|
return `https://avatar.example.com/${user_id}`
|
|
}
|
|
|
|
// 获取文件图片
|
|
export async function getFileImage(file_id) {
|
|
let resp = await getFile(file_id)
|
|
console.log(resp.data.content)
|
|
return resp.data.content
|
|
}
|
|
|
|
// 解析多个文件ID为图片URL数组
|
|
export async function parseFilesToImages(files) {
|
|
if (!files || files === '') return []
|
|
|
|
const fileIds = files.split(',')
|
|
return await Promise.all(fileIds.map(async (id) => await getFileImage(id.trim())))
|
|
}
|
|
|
|
/**获取工单数量 */
|
|
export function getTicketCount() {
|
|
return request.get('/api/v1/admin/work_order/count')
|
|
}
|
|
/**修改工单信息 */
|
|
export function updateTicketInfo(data) {
|
|
return request.post('/api/v1/admin/work_order/update', data,{
|
|
headers:{
|
|
'Content-Type':'multipart/form-data'
|
|
}
|
|
})
|
|
}
|
|
/**添加工单类型 */
|
|
export function addTicketType(data) {
|
|
return request.post('/api/v1/admin/work_order/add_type', data,{
|
|
headers:{
|
|
'Content-Type':'multipart/form-data'
|
|
}
|
|
})
|
|
}
|
|
/**修改工单类型 */
|
|
export function updateTicketType(data) {
|
|
return request.post('/api/v1/admin/work_order/update_type', data,{
|
|
headers:{
|
|
'Content-Type':'multipart/form-data'
|
|
}
|
|
})
|
|
}
|
|
/**删除工单类型 */
|
|
export function deleteTicketType(data) {
|
|
return request.delete('/api/v1/admin/work_order/delete_type', data,{
|
|
headers:{
|
|
'Content-Type':'multipart/form-data'
|
|
}
|
|
})
|
|
}
|
|
/**获取工单类型列表 */
|
|
export function getTicketTypeList(data) {
|
|
return request.get('/api/v1/admin/work_order/type_list', data)
|
|
}
|
|
/**修改工单回复信息 */
|
|
export function updateTicketReplayInfo(data){
|
|
return request.post('/api/v1/admin/work_order/update_reply',data,{
|
|
headers:{
|
|
'Content-Type':'multipart/form-data'
|
|
}
|
|
})
|
|
}
|