fix: 后端接口改为java,联调接口修改。
This commit is contained in:
@@ -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 = "删除成功";
|
||||
// 返回首页
|
||||
|
||||
Reference in New Issue
Block a user