唐润平:设备唯一性

This commit is contained in:
trp
2023-12-29 14:19:42 +08:00
parent 196eac3cee
commit a1f31cf3ef
2 changed files with 63 additions and 37 deletions

View File

@@ -68,9 +68,9 @@ let maxConstructionLength = ref(0);
//计算锚点之间距离
const pointDistance_str = computed(
() =>
`${params.pointGap}米*${params.pointNum}=${
`${params.pointGap}米*${params.pointNum}=${(
params.pointGap * params.pointNum
}`
).toFixed(2)}`
);
watch(
@@ -92,16 +92,25 @@ const equipmentSetting = reactive({
threshold: "", //阈值
typeKey: null, //设备选择(设备名称)
});
function resetEquipmentSetting() {
equipmentSetting.equipmentId = null;
equipmentSetting.equipmentName = "";
equipmentSetting.equipmentType = "";
equipmentSetting.position = "";
equipmentSetting.threshold = "";
equipmentSetting.typeKey = null;
equipment.value.reset();
equipmentType.value.reset();
}
// 绑定选择的设备类型
function handleTypeChange(optionItem) {
equipmentSetting.equipmentType = optionItem.value;
console.log("option", equipmentSetting);
}
function handleEquipmentChange(equipmentItem) {
equipmentSetting.equipmentName = equipmentItem.label;
equipmentSetting.equipmentId = equipmentItem.equipmentId;
equipmentSetting.typeKey = equipmentItem.value;
console.log("option", equipmentSetting);
}
// 设备类型选项参数
let options = reactive([{ label: "暂无数据", value: "" }]);
@@ -144,11 +153,7 @@ function handelInput(e) {
// 处理取消事件
function handleCancel() {
equipmentSetting.equipmentType = "";
equipmentSetting.chooseEquipment = null;
equipmentSetting.threshold = "";
equipment.value.reset();
equipmentType.value.reset();
resetEquipmentSetting();
// 发射事件给tunnel父组件
emit("cancel");
}
@@ -183,12 +188,21 @@ function addEquipment() {
message: "添加成功!",
type: "success",
});
resetEquipmentSetting();
})
.catch((err) => {
ElMessage({
message: "添加异常!",
type: "warning",
});
if (err === 3000) {
ElMessage({
message: "该设备已添加!",
type: "warning",
});
resetEquipmentSetting();
} else {
ElMessage({
message: "添加异常!",
type: "warning",
});
}
});
}
</script>

View File

@@ -37,29 +37,33 @@ export const saveEquipment = (equipmentInfo, pointGap) => {
let tempModelEquipmentList = [...modelEquipmentList]; //数组克隆
tempModelEquipmentList.push(toRaw(equipmentInfo));
return new Promise((resolve, reject) => {
apiSaveEquipment({
constructionLength: autoComputeConstructionLength(
tempModelEquipmentList,
pointGap
),
isDefault,
modelEquipmentList: tempModelEquipmentList,
remarks,
serialNumber,
tunnelId,
tunnelLength: totalLength,
tunnelName,
})
.then((res) => {
if (res?.code === 1000) {
modelEquipmentList.push(toRaw(equipmentInfo)); //存入本地
resolve();
}
reject(res);
})
.catch((err) => {
reject();
});
console.log("equId", equipmentInfo.equipmentId);
hasEquipment(equipmentInfo.equipmentId)
? reject(3000)
: apiSaveEquipment({
constructionLength: autoComputeConstructionLength(
tempModelEquipmentList,
pointGap
),
isDefault,
modelEquipmentList: tempModelEquipmentList,
remarks,
serialNumber,
tunnelId,
tunnelLength: totalLength,
tunnelName,
})
.then((res) => {
if (res?.code === 1000) {
modelEquipmentList.push(toRaw(equipmentInfo)); //存入本地
resolve();
}
console.log("add", res);
reject(res);
})
.catch((err) => {
reject();
});
});
};
@@ -103,7 +107,7 @@ export const deleteEquipment = (equipmentId, pointGap) => {
.then((res) => {
if (res?.code === 1000) {
modelEquipmentList = modelEquipmentList.filter(
(item) => item.equipmentId != equipmentId
(item) => item.equipmentId === equipmentId
);
resolve();
}
@@ -131,3 +135,11 @@ function autoComputeConstructionLength(modelEquipmentList, pointGap) {
});
return maxLength;
}
function hasEquipment(equipmentId) {
let result = false;
modelEquipmentList.forEach((item) => {
if (item.equipmentId === equipmentId) result = true;
});
return result;
}