Files
xiaokuaisong-paotui/distribution/unpackage/dist/dev/mp-alipay/pages/deliveryDetail/deliveryDetail.js
2025-08-18 09:57:10 +08:00

280 lines
8.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"use strict";
const common_vendor = require("../../common/vendor.js");
const API_api = require("../../API/api.js");
if (!Array) {
const _easycom_uni_icons2 = common_vendor.resolveComponent("uni-icons");
_easycom_uni_icons2();
}
const _easycom_uni_icons = () => "../../uni_modules/uni-icons/components/uni-icons/uni-icons.js";
if (!Math) {
_easycom_uni_icons();
}
const _sfc_main = {
__name: "deliveryDetail",
setup(__props) {
const orderDetail = common_vendor.ref(common_vendor.index.getStorageSync("orderDetail"));
const apartmentLocations = {
"1公寓": {
latitude: 45.878148,
longitude: 126.542369
},
"2公寓": {
latitude: 45.878016,
longitude: 126.542924
},
"3公寓": {
latitude: 45.878117,
longitude: 126.543476
},
"4公寓": {
latitude: 45.878118,
longitude: 126.54415
},
"5公寓": {
latitude: 45.878978,
longitude: 126.54127
},
"6公寓": {
latitude: 45.878982,
longitude: 126.541879
},
"9公寓": {
latitude: 45.878435,
longitude: 126.544863
},
"10公寓": {
latitude: 45.879196,
longitude: 126.543891
},
"11公寓": {
latitude: 45.879157,
longitude: 126.542722
},
"12公寓": {
latitude: 45.875638,
longitude: 126.540502
},
"育才大厦": {
latitude: 45.875638,
longitude: 126.540502
}
};
const formatDate = (dateString) => {
const date = new Date(dateString);
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, "0");
const day = String(date.getDate()).padStart(2, "0");
const hours = String(date.getHours()).padStart(2, "0");
const minutes = String(date.getMinutes()).padStart(2, "0");
const seconds = String(date.getSeconds()).padStart(2, "0");
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
};
const handlePickup = (id, imageUrl) => {
common_vendor.index.showLoading({
title: "提交中...",
mask: true
});
common_vendor.index.request({
url: API_api.apiImageUrl + "/api/errand/update/state",
method: "POST",
data: {
errandsState: 4,
orderId: id,
imageAddress: imageUrl
},
header: {
"Content-Type": "application/json",
// 确保设置正确的 Content-Type
"cookie": common_vendor.index.getStorageSync("cookie") || ""
},
success(res) {
console.log(res);
common_vendor.index.hideLoading();
if (res.data.code === 0) {
common_vendor.index.showToast({
title: "成功送达",
icon: "none",
duration: 2e3,
success: () => {
const pages = getCurrentPages();
const prevPage = pages[pages.length - 3];
if (prevPage && prevPage.robOrder) {
prevPage.robOrder(3);
}
common_vendor.index.navigateBack({
delta: 2,
success: () => {
common_vendor.index.$emit("refresh-delivery-list");
}
});
}
});
} else {
common_vendor.index.showToast({
title: res.data.message || "送达失败",
icon: "none"
});
}
},
fail(err) {
console.log(err);
common_vendor.index.showToast({
title: "网络异常,请检查连接",
icon: "none"
});
}
});
};
const handleContact = (item) => {
common_vendor.index.makePhoneCall({
phoneNumber: item
});
};
const handleCall = (item) => {
console.log(item);
common_vendor.index.makePhoneCall({
phoneNumber: item
});
};
const latitude = common_vendor.ref("");
const longitude = common_vendor.ref("");
const includePoints = common_vendor.ref([]);
const covers = common_vendor.ref([]);
common_vendor.onMounted(() => {
getLocation();
});
function getLocation() {
common_vendor.index.getLocation({
type: "gcj02",
// 返回可以用于uni.openLocation的坐标
success(res) {
console.log("当前位置的经度:" + res.longitude);
console.log("当前位置的纬度:" + res.latitude);
latitude.value = res.latitude;
longitude.value = res.longitude;
updateCover(res.latitude, res.longitude, 2, "我的位置", "/static/logo.png");
if (orderDetail.value.location in apartmentLocations) {
const targetApartment = apartmentLocations[orderDetail.value.location];
updateCover(
targetApartment.latitude,
targetApartment.longitude,
1,
orderDetail.value.location,
"/static/errand.jpg"
);
includePoints.value = [
{
latitude: targetApartment.latitude,
longitude: targetApartment.longitude
},
// 目标公寓的位置
{
latitude: res.latitude,
longitude: res.longitude
}
// 用户的位置
];
} else {
console.warn(`未找到名为"${orderDetail.value.location}"的公寓位置`);
}
},
fail(err) {
console.error("获取位置失败", err);
}
});
}
function updateCover(lat, lng, id, title, iconPath) {
const position = {
id,
latitude: lat,
longitude: lng,
iconPath,
// 标记图标路径,现在通过参数传递
width: 30,
height: 30,
title
// 可选:标记点标题
};
const existingIndex = covers.value.findIndex((item) => item.id === position.id);
if (existingIndex !== -1) {
covers.value[existingIndex] = position;
} else {
covers.value.push(position);
}
}
const takephoto = () => {
common_vendor.index.chooseImage({
count: 1,
// 默认9这里设置为1因为只需要一张照片
sizeType: ["compressed"],
// 可以指定是原图还是压缩图,默认二者都有
sourceType: ["camera"],
// 从相机选择
success: function(res) {
const tempFilePaths = res.tempFilePaths;
uploadPhoto(tempFilePaths[0]);
}
});
};
const uploadPhoto = (filePath) => {
common_vendor.index.uploadFile({
url: `${API_api.apiImageUrl}/api/file/upload/server`,
// 接口地址
filePath,
name: "file",
formData: {
biz: "takeout"
// 根据要求填写的biz参数
},
header: {
"Content-Type": "application/json",
// 确保设置正确的 Content-Type
"cookie": common_vendor.index.getStorageSync("cookie") || ""
},
success(res) {
console.log("上传成功", res);
const imageUrl = JSON.parse(res.data).data;
handlePickup(orderDetail.value.id, imageUrl);
},
fail(err) {
console.error("上传失败", err);
}
});
};
return (_ctx, _cache) => {
return {
a: latitude.value,
b: longitude.value,
c: covers.value,
d: includePoints.value,
e: common_vendor.t(orderDetail.value.address),
f: common_vendor.t(orderDetail.value.location),
g: common_vendor.p({
type: "phone",
size: "30"
}),
h: common_vendor.o(($event) => {
var _a;
return handleCall((_a = orderDetail.value.businessVO) == null ? void 0 : _a.businessPhone);
}),
i: common_vendor.p({
type: "phone-filled",
size: "30"
}),
j: common_vendor.o(($event) => handleContact(orderDetail.value.phone)),
k: common_vendor.o(($event) => takephoto(orderDetail.value.id)),
l: common_vendor.p({
type: "camera",
size: "30"
}),
m: common_vendor.t(orderDetail.value.address),
n: common_vendor.t(formatDate(orderDetail.value.createTime)),
o: common_vendor.t(formatDate(orderDetail.value.pickupEndTime)),
p: common_vendor.t(orderDetail.value.location)
};
};
}
};
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-3d78755a"]]);
my.createPage(MiniProgramPage);