2023-09-20 21:33:11 +08:00
|
|
|
|
import store from '@/store'
|
|
|
|
|
|
import api from '@/utils/api'
|
|
|
|
|
|
// import { Message, MessageBox } from 'element-ui'
|
|
|
|
|
|
import { Message } from 'element-ui'
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @description: 向对频api 提交数据
|
|
|
|
|
|
*/
|
|
|
|
|
|
export async function apiCrosFrequency (params) {
|
|
|
|
|
|
const data = new URLSearchParams()// post对象参数 转成 字符串连接
|
|
|
|
|
|
data.append('macAdd', params.macAdd)
|
|
|
|
|
|
data.append('id', params.id)
|
|
|
|
|
|
const res = await api.post('crosFrequency', data)
|
|
|
|
|
|
if (res.data.status === 1) {
|
|
|
|
|
|
Message.success(res.data.msg)
|
|
|
|
|
|
store.dispatch('fetchAirList')// 更新飞机列表
|
|
|
|
|
|
} else {
|
|
|
|
|
|
Message.error(res.data.msg)
|
|
|
|
|
|
}
|
2024-06-28 21:00:31 +08:00
|
|
|
|
return res
|
2023-09-20 21:33:11 +08:00
|
|
|
|
}
|
2024-07-29 03:04:29 +08:00
|
|
|
|
/**
|
2025-06-25 12:16:44 +08:00
|
|
|
|
* @description: 锁定地块 相关操作 同步操作订单表 和地块表接口
|
|
|
|
|
|
* @param {*} form 表单.地块信息
|
2024-07-29 03:04:29 +08:00
|
|
|
|
* @return {*} 服务器返回信息
|
|
|
|
|
|
*/
|
|
|
|
|
|
export async function lockSite (form) {
|
|
|
|
|
|
const params = new URLSearchParams()
|
|
|
|
|
|
params.append('site_id', form.site_id)
|
|
|
|
|
|
params.append('shop_id', form.shop_id)
|
|
|
|
|
|
params.append('runing', form.runing)
|
|
|
|
|
|
params.append('order_id', form.order_id)
|
|
|
|
|
|
params.append('shipment_status', form.shipment_status)
|
|
|
|
|
|
params.append('by_plane_id', form.by_plane_id)
|
|
|
|
|
|
const res = await api.post('lockSite', params)
|
|
|
|
|
|
if (res.data.status === 1) {
|
2025-06-25 12:16:44 +08:00
|
|
|
|
await store.dispatch('fetchSiteList')// 刷新地块列表
|
2024-07-29 03:04:29 +08:00
|
|
|
|
store.dispatch('fetchRouteList')// 刷新航线列表
|
|
|
|
|
|
store.dispatch('fetchPaidOrderList')// 刷订单点列表
|
|
|
|
|
|
Message.success(res.data.msg)
|
|
|
|
|
|
} else {
|
|
|
|
|
|
Message.error(res.data.msg)
|
|
|
|
|
|
}
|
|
|
|
|
|
return res
|
|
|
|
|
|
}
|
2023-09-20 21:33:11 +08:00
|
|
|
|
/**
|
2024-07-12 18:28:12 +08:00
|
|
|
|
* @description: 向改变订单承接任务api 提交数据,参数可以是数组 提交多个字段和字段内容 () ,并更新订单列表
|
2023-09-20 21:33:11 +08:00
|
|
|
|
* @param {*} id 订单id
|
2024-07-12 18:28:12 +08:00
|
|
|
|
* @param {array string} type 主状态"main_status" 货物状态"shipment_status" 退款状态"refund_status" 执行飞机"by_plane_id"
|
2024-07-12 19:58:51 +08:00
|
|
|
|
* @param {array string} val 修改字段的值 ps:by_plane_id值给'' 数据库改为null
|
2023-09-20 21:33:11 +08:00
|
|
|
|
*/
|
2024-07-12 18:28:12 +08:00
|
|
|
|
export async function questAss (id, type, val) {
|
2024-07-01 21:08:03 +08:00
|
|
|
|
const params = new URLSearchParams()// post对象参数 转成 字符串连接
|
|
|
|
|
|
params.append('id', id)
|
2024-07-12 18:28:12 +08:00
|
|
|
|
// 判断 type 和 val 是否为数组
|
|
|
|
|
|
if (Array.isArray(type) && Array.isArray(val)) {
|
|
|
|
|
|
if (type.length !== val.length) {
|
|
|
|
|
|
return
|
|
|
|
|
|
}
|
|
|
|
|
|
for (let i = 0; i < type.length; i++) {
|
2024-07-12 19:58:51 +08:00
|
|
|
|
params.append(type[i], val[i])
|
2024-07-12 18:28:12 +08:00
|
|
|
|
}
|
|
|
|
|
|
} else if (typeof type === 'string' && typeof val === 'string') {
|
2024-07-12 19:58:51 +08:00
|
|
|
|
params.append(type, val)
|
2024-07-12 18:28:12 +08:00
|
|
|
|
} else {
|
|
|
|
|
|
return
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-07-10 23:41:18 +08:00
|
|
|
|
const res = await api.post('questAss', params)
|
|
|
|
|
|
if (res.data.status === 1) {
|
|
|
|
|
|
Message.success(res.data.msg)
|
|
|
|
|
|
store.dispatch('fetchPaidOrderList')// 更新订单列表
|
|
|
|
|
|
} else {
|
|
|
|
|
|
Message.error(res.data.msg)
|
|
|
|
|
|
store.dispatch('fetchPaidOrderList')// 更新订单列表
|
|
|
|
|
|
}
|
|
|
|
|
|
return res
|
2023-09-20 21:33:11 +08:00
|
|
|
|
}
|
2024-07-01 21:08:03 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* @description: 获取订单列表
|
|
|
|
|
|
* @param {*} orderSerch 搜索条件
|
|
|
|
|
|
*/
|
2024-07-30 22:52:23 +08:00
|
|
|
|
export async function getOrderList (orderSerch = {}) {
|
2024-07-01 21:08:03 +08:00
|
|
|
|
const params = new URLSearchParams()// post对象参数 转成 字符串连接
|
|
|
|
|
|
params.append('shop_id', orderSerch.shop_id)
|
|
|
|
|
|
params.append('start_time', orderSerch.start_time)
|
|
|
|
|
|
params.append('end_time', orderSerch.end_time)
|
|
|
|
|
|
params.append('main_status', orderSerch.main_status)
|
|
|
|
|
|
params.append('shipment_status', orderSerch.shipment_status)
|
|
|
|
|
|
params.append('refund_status', orderSerch.refund_status)
|
|
|
|
|
|
params.append('search', orderSerch.search)
|
2024-09-26 17:43:36 +08:00
|
|
|
|
// 发送查询订单列表请求
|
2024-07-01 21:08:03 +08:00
|
|
|
|
const res = await api.post('getOrderList', params, 'Admin')
|
|
|
|
|
|
return res
|
|
|
|
|
|
}
|
2024-06-27 20:43:05 +08:00
|
|
|
|
|
2024-09-26 17:43:36 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* @description: 获取订单详情
|
|
|
|
|
|
* @param {*} order_id 订单id
|
|
|
|
|
|
*/
|
|
|
|
|
|
export async function getOrderDetails (id) {
|
|
|
|
|
|
const params = new URLSearchParams()// post对象参数 转成 字符串连接
|
|
|
|
|
|
params.append('id', id)
|
|
|
|
|
|
// 发送查询订单详情 求情
|
|
|
|
|
|
const res = await api.post('getOrderDetails', params, 'Admin')
|
|
|
|
|
|
return res
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-06-27 20:43:05 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* @description: 退款函数
|
|
|
|
|
|
* @param {*} orderSn 订单号
|
2025-06-25 12:16:44 +08:00
|
|
|
|
* @param {*} shopId 单位id
|
2024-06-28 21:00:31 +08:00
|
|
|
|
* @param {*} refundPrice 退款金额 单位元
|
|
|
|
|
|
* @param {*} refundType 退款类型 'buyer'买家申请 'seller'卖家主动
|
2024-06-27 20:43:05 +08:00
|
|
|
|
*/
|
2024-06-28 21:00:31 +08:00
|
|
|
|
export async function refund (orderSn, shopId, refundPrice, refundType) {
|
2024-06-27 20:43:05 +08:00
|
|
|
|
// 构建请求参数
|
|
|
|
|
|
const params = new URLSearchParams()
|
|
|
|
|
|
params.append('order_sn', orderSn)
|
|
|
|
|
|
params.append('shop_id', shopId)
|
|
|
|
|
|
params.append('refund_price', refundPrice)
|
|
|
|
|
|
params.append('refund_type', refundType)
|
|
|
|
|
|
|
|
|
|
|
|
// 发送退款请求
|
2024-06-28 21:00:31 +08:00
|
|
|
|
const res = await api.post('refund', params, 'Pay')
|
|
|
|
|
|
if (res.data.status === 1) {
|
|
|
|
|
|
Message.success('退款申请中...')
|
|
|
|
|
|
console.log('退款成功', res.data.msg)
|
|
|
|
|
|
} else {
|
|
|
|
|
|
Message.error(res.data.msg)
|
|
|
|
|
|
console.error('退款失败:', res.data.msg)
|
|
|
|
|
|
}
|
|
|
|
|
|
return res
|
2024-06-27 20:43:05 +08:00
|
|
|
|
}
|
2024-10-12 16:48:40 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* @abstract 录入日志
|
|
|
|
|
|
* @param {*} log 日志内容
|
|
|
|
|
|
*/
|
|
|
|
|
|
export async function addLog (log) {
|
|
|
|
|
|
// 构建请求参数
|
|
|
|
|
|
const params = new URLSearchParams()
|
|
|
|
|
|
params.append('log', log)
|
|
|
|
|
|
const res = await api.post('addLog', params)
|
|
|
|
|
|
return res
|
|
|
|
|
|
}
|
2025-06-12 19:31:17 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @description: 向管理员用户发布公告
|
2025-06-25 12:16:44 +08:00
|
|
|
|
* @param {*} shop_id 单位 ID
|
2025-06-12 19:31:17 +08:00
|
|
|
|
* @param {*} tit 公告标题
|
|
|
|
|
|
* @param {*} message 公告内容
|
|
|
|
|
|
* @param {*} idArr 接收公告的管理员ID数组
|
2025-06-25 04:24:56 +08:00
|
|
|
|
* @param {*} endTime 公告截止时间(时间戳,秒级)
|
2025-06-12 19:31:17 +08:00
|
|
|
|
*/
|
2025-06-25 04:24:56 +08:00
|
|
|
|
export async function pubMessage (shopId, tit, message, idArr, endTime) {
|
2025-06-12 19:31:17 +08:00
|
|
|
|
const params = new URLSearchParams()
|
2025-06-25 04:24:56 +08:00
|
|
|
|
params.append('shop_id', shopId)
|
2025-06-12 19:31:17 +08:00
|
|
|
|
params.append('tit', tit)
|
|
|
|
|
|
params.append('message', message)
|
|
|
|
|
|
params.append('idArr', idArr.join(',')) // 后端只收字符串
|
|
|
|
|
|
params.append('endTime', endTime)
|
|
|
|
|
|
|
2025-06-25 04:24:56 +08:00
|
|
|
|
const res = await api.post('pubMessage', params, 'Admin') // 第三个参数为模块名
|
2025-06-12 19:31:17 +08:00
|
|
|
|
return res
|
|
|
|
|
|
}
|
2025-06-13 20:07:33 +08:00
|
|
|
|
|
2025-06-24 21:59:37 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* @description 获取全部公告列表(不限制过期、无admin_id限制)
|
|
|
|
|
|
* @returns {Promise} 返回接口响应对象
|
|
|
|
|
|
*/
|
|
|
|
|
|
export async function getAllMessageList () {
|
|
|
|
|
|
const res = await api.get('getAllMessageList', 'Admin')
|
|
|
|
|
|
return res
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-06-25 04:24:56 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* @description 删除指定公告
|
|
|
|
|
|
* @param {Array} delIdArr 要删除的公告 ID 数组
|
|
|
|
|
|
* @returns {Promise}
|
|
|
|
|
|
*/
|
|
|
|
|
|
export async function delMessage (delIdArr) {
|
|
|
|
|
|
const params = new URLSearchParams()
|
|
|
|
|
|
params.append('delIdArr', delIdArr.join(',')) // 后端通过 $_POST['delIdArr'] 接收
|
|
|
|
|
|
|
|
|
|
|
|
const res = await api.post('deleteMessage', params, 'Admin')
|
|
|
|
|
|
return res
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-06-13 20:07:33 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* @abstract 获取指定飞机组的飞行数据(按时间范围)
|
|
|
|
|
|
* @param {Array} idArr 飞机ID数组
|
|
|
|
|
|
* @param {Number} startTime 开始时间
|
|
|
|
|
|
* @param {Number} endTime 结束时间
|
|
|
|
|
|
* @returns 飞行数据列表
|
|
|
|
|
|
*/
|
|
|
|
|
|
export async function getFlyData (idArr, startTime, endTime) {
|
|
|
|
|
|
const params = new URLSearchParams()
|
|
|
|
|
|
params.append('idArr', idArr.join(',')) // 后端只收字符串,用逗号分隔
|
|
|
|
|
|
params.append('startTime', startTime)
|
|
|
|
|
|
params.append('endTime', endTime)
|
|
|
|
|
|
|
|
|
|
|
|
const res = await api.post('getFlyDataByIdArr', params, 'Plane')
|
|
|
|
|
|
return res
|
|
|
|
|
|
}
|
2025-06-23 14:07:30 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @abstract 删除指定的飞行数据记录
|
|
|
|
|
|
* @param {Array} idArr 飞行数据记录ID数组
|
|
|
|
|
|
* @returns 删除结果
|
|
|
|
|
|
*/
|
|
|
|
|
|
export async function deleteFlyData (idArr) {
|
|
|
|
|
|
if (!Array.isArray(idArr) || idArr.length === 0) {
|
|
|
|
|
|
throw new Error('参数错误,idArr 应为非空数组')
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
const params = new URLSearchParams()
|
|
|
|
|
|
params.append('idArr', idArr.join(',')) // 逗号分隔传给后端
|
|
|
|
|
|
|
|
|
|
|
|
const res = await api.post('deleteFlyDataByIdArr', params, 'Plane')
|
|
|
|
|
|
return res
|
|
|
|
|
|
}
|
2025-06-13 22:58:49 +08:00
|
|
|
|
/**
|
2025-06-14 18:37:59 +08:00
|
|
|
|
* @abstract 上传保存飞机飞行数据(解锁至加锁 即飞行结束触发)
|
|
|
|
|
|
* @param {Object} data 包含 id, start_time, end_time, gps_path, distance, power_used
|
2025-06-13 22:58:49 +08:00
|
|
|
|
*/
|
2025-06-14 18:37:59 +08:00
|
|
|
|
export async function saveFlyData (data) {
|
|
|
|
|
|
const params = new URLSearchParams()
|
|
|
|
|
|
for (const key in data) {
|
|
|
|
|
|
params.append(key, data[key])
|
|
|
|
|
|
}
|
|
|
|
|
|
const res = await api.post('saveFlyData', params, 'Plane')
|
|
|
|
|
|
return res
|
2025-06-13 22:58:49 +08:00
|
|
|
|
}
|
2025-06-17 01:56:19 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @description: 保存禁飞区数据
|
2025-06-25 12:16:44 +08:00
|
|
|
|
* @param {string|number} shop_id 单位ID
|
2025-06-17 01:56:19 +08:00
|
|
|
|
* @param {Array} nofly_data 禁飞区数据数组
|
|
|
|
|
|
* @param {Array} restrictfly_data 限制飞区数据数组
|
|
|
|
|
|
* @returns {Object|null} 返回接口响应数据 或 null 表示失败
|
|
|
|
|
|
*/
|
2025-06-18 19:58:16 +08:00
|
|
|
|
export async function setNoflyData (shopId, noflyData) {
|
2025-06-17 01:56:19 +08:00
|
|
|
|
try {
|
|
|
|
|
|
const params = new URLSearchParams()
|
|
|
|
|
|
params.append('shop_id', shopId || '')
|
|
|
|
|
|
params.append('nofly_data', JSON.stringify(noflyData || []))
|
|
|
|
|
|
|
|
|
|
|
|
const res = await api.post('setNoflyData', params)
|
|
|
|
|
|
if (res.data.status === 1) {
|
2025-06-18 19:58:16 +08:00
|
|
|
|
store.dispatch('fetchNoflyData', shopId)// 更新禁限飞区数据
|
2025-06-17 01:56:19 +08:00
|
|
|
|
Message.success(res.data.msg)
|
|
|
|
|
|
} else {
|
|
|
|
|
|
Message.warning(res.data.msg)
|
|
|
|
|
|
}
|
|
|
|
|
|
return res.data
|
|
|
|
|
|
} catch (error) {
|
|
|
|
|
|
Message.error('保存禁飞区数据失败')
|
|
|
|
|
|
return null
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-06-18 19:58:16 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @description: 保存限飞区数据
|
2025-06-25 12:16:44 +08:00
|
|
|
|
* @param {string|number} shop_id 单位ID
|
2025-06-18 19:58:16 +08:00
|
|
|
|
* @param {Array} restrictfly_data 限制飞区数据数组
|
|
|
|
|
|
* @param {Array} restrictfly_height 限制飞区数据高度组
|
|
|
|
|
|
* @returns {Object|null} 返回接口响应数据 或 null 表示失败
|
|
|
|
|
|
*/
|
|
|
|
|
|
export async function setRestrictflyData (shopId, restrictflyData, restrictflyHeight) {
|
|
|
|
|
|
try {
|
|
|
|
|
|
const params = new URLSearchParams()
|
|
|
|
|
|
params.append('shop_id', shopId || '')
|
|
|
|
|
|
params.append('restrictfly_data', JSON.stringify(restrictflyData || []))
|
|
|
|
|
|
params.append('restrictfly_height', JSON.stringify(restrictflyHeight || []))
|
|
|
|
|
|
|
|
|
|
|
|
const res = await api.post('setNoflyData', params)
|
|
|
|
|
|
if (res.data.status === 1) {
|
|
|
|
|
|
store.dispatch('fetchNoflyData', shopId)// 更新禁限飞区数据
|
|
|
|
|
|
Message.success(res.data.msg)
|
|
|
|
|
|
} else {
|
|
|
|
|
|
Message.warning(res.data.msg)
|
|
|
|
|
|
}
|
|
|
|
|
|
return res.data
|
|
|
|
|
|
} catch (error) {
|
|
|
|
|
|
Message.error('保存限飞区数据失败')
|
|
|
|
|
|
return null
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|