fix: 后端接口改为java,联调接口修改。

This commit is contained in:
tianyongbao
2026-01-12 00:36:05 +08:00
parent 7e10c62cf9
commit b2f7f5fe1e
21 changed files with 550 additions and 259 deletions

View File

@@ -236,7 +236,7 @@
<script setup lang="ts" name="UpdatePond">
import { UpdateFormType } from "./types";
import Fish from "@/components/other/fish";
import { PondUpdate, pondBaseInfo, pondDeviceInfo, PondDel } from "@/api/pond";
import { PondUpdate, pondBaseInfo, pondDeviceInfo, PondDel, fishList } from "@/api/pond";
import { allDeviceList, bandDeviceToPond } from "@/api/device";
import { formatDate, sortByField } from "@/utils/tools";
import Taro from "@tarojs/taro";
@@ -285,6 +285,7 @@ const showFish = ref<boolean>(false);
const isLoading = ref<boolean>(false);
const d_isLoading = ref<boolean>(false);
const fishListInfo = ref("");
const allFishList = ref<any[]>([]);
const detectorList = ref([]);
const controlList = ref([]);
const bandDevShow = ref(false);
@@ -301,7 +302,10 @@ const Uid = Taro.getStorageSync("UserId");
const rootuserid = ref(store.getRootUserId);
/** -----------------method start----------------- */
Taro.useDidShow(() => {
info();
// 先加载鱼类列表,然后再加载塔口信息
getAllFishList().then(() => {
info();
});
getDeviceList();
getDevicesList();
});
@@ -337,20 +341,35 @@ function save() {
updateRef.value?.validate().then(({ valid, errors }) => {
if (valid) {
if (formData.id) {
// 将fishKindIds数组转换为字符串格式 "[1,2]"
let fishKindIdsStr = '';
if (Array.isArray(formData.fishKindIds) && formData.fishKindIds.length > 0) {
// 转换为数字数组然后转JSON字符串
const fishIds = formData.fishKindIds.map(id => Number(id));
fishKindIdsStr = JSON.stringify(fishIds);
}
const data = {
id: formData.id,
pondName: formData.pondName,
fishKindIds: formData.fishKindIds,
fishKindIds: fishKindIdsStr, // 使用字符串格式
area: formData.area,
density: formData.density,
placeTime: formData.placeTime ? formData.placeTime : null,
};
console.log('保存数据', data);
isLoading.value = true;
PondUpdate(data)
.then((res: any) => {
if (res.statusCode == 200) {
if (res.code == 200) {
state.show = true;
state.msg = "保存成功";
// 延迟返回首页,让用户看到成功提示
setTimeout(() => {
Taro.switchTab({
url: "/pages/main/home",
});
}, 1500);
}
})
.finally(() => {
@@ -362,6 +381,39 @@ function save() {
}
});
}
// 获取所有鱼类列表
function getAllFishList() {
return fishList().then((res: any) => {
console.log('鱼类列表接口返回', res);
// 处理不同的返回格式
if (res.rows) {
// 直接返回 {total, rows} 格式
allFishList.value = res.rows || [];
console.log('鱼类列表加载完成(rows)', allFishList.value);
} else if (res.code == 200 && res.data) {
allFishList.value = res.data || [];
console.log('鱼类列表加载完成(code)', allFishList.value);
} else if (res.statusCode == 200 && res.data) {
allFishList.value = res.data || [];
console.log('鱼类列表加载完成(statusCode)', allFishList.value);
} else {
console.error('鱼类列表加载失败', res);
}
});
}
// 根据鱼类ID获取鱼类名称
function getFishNames(fishIds: any[]) {
const names: string[] = [];
console.log('查找鱼类名称', { fishIds, allFishList: allFishList.value });
fishIds.forEach((id: any) => {
const fish = allFishList.value.find((f: any) => f.id == id || f.id == String(id));
if (fish) {
names.push(fish.fishName);
}
});
console.log('鱼类名称结果', names.join(""));
return names.join("");
}
// 查看鱼塘详情
function info() {
if (!id) {
@@ -371,25 +423,33 @@ function info() {
return;
}
pondBaseInfo({ id }).then((res: any) => {
if (res.statusCode == 200) {
if (res.code == 200) {
formData.id = res.data.id;
formData.pondName = res.data.pondName;
formData.fishKindIds = res.data.fishKindIds;
formData.area = res.data.area;
formData.density = res.data.density;
// 鱼类列表格式化
const fishArray: any = [];
const fishNames: any = [];
res.data.listFish.forEach((item: any) => {
fishArray.push(String(item.id));
fishNames.push(String(item.fishName));
});
formData.fishKindIds = fishArray;
fishListInfo.value = fishNames.length > 0 ? fishNames.join("") : "";
// 解析fishKindIds后端返回的是字符串
let fishIds = [];
try {
if (typeof res.data.fishKindIds === 'string') {
fishIds = JSON.parse(res.data.fishKindIds);
} else if (Array.isArray(res.data.fishKindIds)) {
fishIds = res.data.fishKindIds;
}
} catch (e) {
console.error('解析fishKindIds失败', e);
}
formData.fishKindIds = fishIds.map(id => String(id));
// 根据ID查找鱼类名称
fishListInfo.value = getFishNames(fishIds);
// 时间日期格式化
val.value = new Date(res.data.placeTime);
formData.placeTime = res.data.placeTime ? formatDate(val.value) : "";
if (res.data.placeTime) {
val.value = new Date(res.data.placeTime);
formData.placeTime = formatDate(val.value);
}
}
});
}
@@ -412,7 +472,7 @@ function bandDevice() {
function getDeviceList() {
// 查询塘口下设备列表
pondDeviceInfo({ id }).then((res: any) => {
if (res.statusCode == 200) {
if (res.code == 200) {
detectorList.value = res.data.listDetector;
controlList.value = res.data.listController;
}
@@ -421,7 +481,7 @@ function getDeviceList() {
// 设备列表
function getDevicesList() {
allDeviceList({ type: 1 }).then((res: any) => {
if (res.statusCode == 200) {
if (res.code == 200) {
res.data.forEach((r: any) => {
r.open = true;
r.disabled = false;
@@ -516,7 +576,7 @@ function onconfirm(list) {
};
bandDeviceToPond(data)
.then((res) => {
if (res.statusCode == 200) {
if (res.code == 200) {
state.show = true;
state.msg = "绑定成功";
getDeviceList();
@@ -549,7 +609,7 @@ function delPond() {
d_isLoading.value = true;
PondDel({ id })
.then((res) => {
if (res.statusCode == 200) {
if (res.code == 200) {
state.show = true;
state.msg = "删除成功";
// 返回首页