唐润平:设备唯一性

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

View File

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