对接 投诉详情 投诉列表 选择处理人员 api

This commit is contained in:
Zy
2026-05-15 18:11:54 +08:00
parent 8324d096c0
commit 84a7a24288
13 changed files with 604 additions and 240 deletions

View File

@@ -0,0 +1,73 @@
/**
* @Description: (计划中)公共接口
* @Author: Zy
* @Date: 2026-05-15 11:37:01
* @LastEditor: Zy
* @LastEditTime: 2026-05-15 17:02:25
*/
import request, {
get,
post
} from "./request.js"
/**
* @typedef EmployeeItem 员工信息项
* @property {string} userId
* @property {string} tenantId
* @property {string} villageIds
* @property {string} roleName
* @property {string} userName
* @property {string} nickName
* @property {string} userType
* @property {string} email
* @property {string} phonenumber
* @property {string} sex
* @property {string} avatar
* @property {string} status
* @property {string} loginIp
* @property {string} loginDate
* @property {string} remark
* @property {string} createTime
* @property {string} roles
* @property {string} roleIds
* @property {string} postIds
* @property {string} roleId
*/
/**
* 获取对应类型的员工信息列表
* @param {RoleKeyEnum} roleKey - 角色标识
* @param {string} [keyword=''] - 搜索关键词(可选),手机号/姓名
* @returns {Promise<DataResult<EmployeeItem[]>>}
*/
export function getSystemUsers_employee(roleKey, keyword) {
return get(`/manage/repair/person/users?roleKey=${roleKey}&keyword=${keyword}`)
}
/**
* @typedef HouseItem 房屋信息项
* @property {string} addressCn
* @property {string} addressHyphen
* @property {string} buildingName
* @property {number} floorNo
* @property {string} houseId
* @property {string} houseNo
* @property {string} userType
* @property {string} residentName
* @property {number} unitNo
*/
/**
* 获取 小区房屋 列表
* @param {Object} data - 请求参数
* @param {number} data.pageNum - 页码(第几页)
* @param {number} data.pageSize - 每页条数
* @param {string} [keyword=''] - 搜索关键词(可选),房屋号/业主姓名
* @returns {Promise<RowsResult<HouseItem>>}
*/
export function getVillageHouseList_keyword(data, keyword) {
return get(`/manage/replace/sdb/village/house?pageSize=${data.pageSize}&pageNum=${data.pageNum}&keyword=${keyword}`)
}

View File

@@ -0,0 +1,85 @@
/**
* @Description: 投诉详情API
* @Author: Zy
* @Date: 2026-05-15 08:50:47
* @LastEditor: Zy
* @LastEditTime: 2026-05-15 16:47:31
*/
import request, {
filterParams,
get,
put,
post
} from "./request.js";
/**
* 获取投诉信息分页列表
* @param {Object} data - 请求参数
* @param {number} data.pageNum - 页码(第几页)
* @param {number} data.pageSize - 每页条数
* @param {number} [data.status] - 投诉状态(可选),不传=全部,0=待处理,2=已完成
* @returns {Promise<{
* code: number,
* msg: string,
* total: number,
* rows: Array<{
* id: string,
* typeId: number,
* typeName: string,
* problemDes: string,
* complaintName: string,
* phone: string,
* villageId: number,
* problemImageUrl: string,
* status: string,
* createTime: string|null,
* handleId: number|null,
* handleName: string|null,
* handleContent: string|null
* }>
* }>} 返回接口响应结果
*/
export const getComplainList = (data) => {
return get('/manage/complain/list', filterParams(data))
}
/**
* 获取 某一个 投诉详情
* @param {string} id 投诉id
*/
export const getComplaniMain = (id) => {
return post('/manage/complain/list', data)
}
/**
* @description: 处理投诉API
* @param {Object} data
* @param {string} data.id 处理人员id
* @param {string} data.handleContent 处理描述
*/
export const putComplainProcess = (data) => {
return put('/manage/complain/process', data)
}
/**
* @typedef complainMain 投诉详情内容
* @property {number} typeId
* @property {string} typeName
* @property {string} problemDes
* @property {string} complaintName
* @property {string} phone
* @property {string} villageId
* @property {string} problemImageUrl
* @property {string} status
* @property {string} createTime
* @property {string} handleName
* @property {string} handleContent
*/
/**
* @description: 查询 具体 投诉详情
* @param {string} 投诉 id
* @return {Promise<DataResult<complainMain>>}
*/
export const getComplainMain = (id) => {
return get('/manage/complain/detail?id=' + id)
}

View File

@@ -0,0 +1,4 @@
import request, {
get,
post
} from "./request.js"

View File

@@ -1,92 +1,133 @@
let baseUrl = '';
if (process.env.NODE_ENV === 'development') {
baseUrl = 'http://192.168.0.239:8080'; // 开发环境
baseUrl = 'http://192.168.0.239:8080'; // 开发环境
} else {
baseUrl = 'http://192.168.0.224:8080'; // 生产环境
baseUrl = 'http://192.168.0.224:8080'; // 生产环境
}
export default function request(url, data = {}, method = "GET") {
return new Promise((resolve, reject) => {
uni.showLoading({
title: '请求中...',
mask: true
});
return new Promise((resolve, reject) => {
uni.showLoading({
title: '请求中...',
mask: true
});
uni.request({
url: baseUrl + url,
data: data,
method: method,
header: {
"Authorization": "Bearer " + (uni.getStorageSync("token") || ''),
"clientid": "butler",
'content-type': 'application/json'
},
success: (res) => {
uni.hideLoading();
uni.request({
url: baseUrl + url,
data: data,
method: method,
header: {
"Authorization": "Bearer " + (uni.getStorageSync("token") || ''),
"clientid": "butler",
'content-type': 'application/json'
},
success: (res) => {
uni.hideLoading();
// HTTP 失败
if (res.statusCode !== 200) {
reject({ msg: `请求异常 ${res.statusCode}`, code: res.statusCode });
return;
}
// HTTP 失败
if (res.statusCode !== 200) {
reject({
msg: `请求异常 ${res.statusCode}`,
code: res.statusCode
});
return;
}
const resData = res.data || {};
const resData = res.data || {};
// token 过期
if (resData.code === 401) {
uni.showToast({ title: '登录过期,请重新登录', icon: 'none' });
uni.clearStorageSync('token');
setTimeout(() => {
uni.reLaunch({ url: '/pageSubPack/loginSub/pwd-login' });
}, 1500);
reject({ msg: '登录过期', code: 401 });
return;
}
// token 过期
if (resData.code === 401) {
uni.showToast({
title: '登录过期,请重新登录',
icon: 'none'
});
uni.clearStorageSync('token');
setTimeout(() => {
uni.reLaunch({
url: '/pageSubPack/loginSub/pwd-login'
});
}, 1500);
reject({
msg: '登录过期',
code: 401
});
return;
}
// 成功
if (resData.code === 200) {
resolve(resData);
}
// 业务失败
else {
reject({ msg: resData.msg || '请求失败', code: resData.code, data: resData });
}
},
fail: (err) => {
uni.hideLoading();
reject({ msg: '网络异常', code: -1, raw: err });
}
});
});
// 成功
if (resData.code === 200) {
resolve(resData);
}
// 业务失败
else {
reject({
msg: resData.msg || '请求失败',
code: resData.code,
data: resData
});
}
},
fail: (err) => {
uni.hideLoading();
reject({
msg: '网络异常',
code: -1,
raw: err
});
}
});
});
}
export const get = (url, data) => request(url, data, 'GET');
export const post = (url, data) => request(url, data, 'POST');
export const put = (url, data) => request(url, data, 'PUT');
// export const deleteMethod = (url, data) => request(url, data, 'DELETE');
// export const putMethod = (url, data) => request(url, data, 'PUT');
// 上传
export const upload = (filePath, url) => {
return new Promise((resolve, reject) => {
uni.uploadFile({
url: baseUrl + url,
filePath: filePath,
name: 'file',
header: {
"Authorization": "Bearer " + (uni.getStorageSync("token") || ''),
"clientid": "resident"
},
success: (res) => {
try {
const data = JSON.parse(res.data);
resolve(data.data || ''); // 直接返回图片地址
} catch (e) {
resolve('');
}
},
fail: (err) => {
reject(err);
}
});
});
return new Promise((resolve, reject) => {
uni.uploadFile({
url: baseUrl + url,
filePath: filePath,
name: 'file',
header: {
"Authorization": "Bearer " + (uni.getStorageSync("token") || ''),
"clientid": "resident"
},
success: (res) => {
try {
const data = JSON.parse(res.data);
resolve(data.data || ''); // 直接返回图片地址
} catch (e) {
resolve('');
}
},
fail: (err) => {
reject(err);
}
});
});
};
/**
* 过滤请求参数:移除值为 null / undefined / 空字符串 的字段
* 用于避免将空参数拼接到 URL 或请求体中
* @param {Object|null|undefined} params - 原始请求参数
* @returns {Object} 过滤后的干净参数对象,只保留有效值
*/
export function filterParams(params) {
if (!params) return {}
return Object.keys(params).reduce((acc, key) => {
const value = params[key]
if (value !== null && value !== undefined && value !== '') {
acc[key] = value
}
return acc
}, {})
}