唐润平:解决了编辑模式bug

This commit is contained in:
trp
2023-12-30 13:23:30 +08:00
parent 3ce5582ea3
commit 5ac68dca37
5 changed files with 185 additions and 113 deletions

View File

@@ -47,9 +47,18 @@
import InputNum from "./childComps/InputNum.vue";
import SelectInput from "./childComps/SelectInput.vue";
import { getEquipmentType, getEquipment } from "@/api/tunnelScene";
import { reactive, computed, defineEmits, defineProps, watch, ref } from "vue";
import {
reactive,
computed,
defineEmits,
defineProps,
watch,
ref,
toRaw,
} from "vue";
import { ElMessage } from "element-plus";
import { saveEquipment, initData } from "../request";
import { useModelSceneStore } from "@/store/modelSceneStore";
const emit = defineEmits(["cancel", "removeEquipment", "addEquipment"]);
const params = defineProps([
"pointNum",
@@ -63,18 +72,17 @@ const params = defineProps([
let p = ref(57);
const equipment = ref(null);
const equipmentType = ref(null);
let maxConstructionLength = ref(0);
const modelStore = useModelSceneStore();
//计算锚点之间距离
const pointDistance_str = computed(
() =>
`${params.pointGap}米*${params.pointNum}=${(
params.pointGap * params.pointNum
).toFixed(1)}`
`${parseInt(params.pointGap)}米*${params.pointNum}=${
parseInt(params.pointGap) * params.pointNum
}`
);
// 请求数据模型
const equipmentSetting = reactive({
const equipmentSetting = ref({
equipmentId: null,
equipmentName: "",
equipmentType: "", //设备类型
@@ -83,26 +91,24 @@ const equipmentSetting = reactive({
typeKey: null, //设备选择(设备名称)
});
function resetEquipmentSetting() {
equipmentSetting.equipmentId = null;
equipmentSetting.equipmentName = "";
equipmentSetting.equipmentType = "";
equipmentSetting.position = "";
equipmentSetting.threshold = "";
equipmentSetting.typeKey = null;
equipmentSetting.value.equipmentId = null;
equipmentSetting.value.equipmentName = "";
equipmentSetting.value.equipmentType = "";
equipmentSetting.value.position = "";
equipmentSetting.value.threshold = "";
equipmentSetting.value.typeKey = null;
equipment.value.reset();
equipmentType.value.reset();
}
// 绑定选择的设备类型
function handleTypeChange(optionItem) {
equipmentSetting.equipmentType = optionItem.value;
console.log("option", optionItem);
equipmentSetting.value.equipmentType = optionItem.value;
}
function handleEquipmentChange(equipmentItem) {
equipmentSetting.equipmentName = equipmentItem.label;
equipmentSetting.equipmentId = equipmentItem.equipmentId;
equipmentSetting.typeKey = equipmentItem.value;
console.log("option", equipmentItem);
equipmentSetting.value.equipmentName = equipmentItem.label;
equipmentSetting.value.equipmentId = equipmentItem.equipmentId;
equipmentSetting.value.typeKey = equipmentItem.value;
}
// 设备类型选项参数
let options = reactive([{ label: "暂无数据", value: "" }]);
@@ -112,7 +118,7 @@ let options2 = reactive([{ equipmentId: 0, label: "暂无数据", value: "" }]);
// 模拟生成option2
watch(
() => equipmentSetting.equipmentType,
() => equipmentSetting.value.equipmentType,
(newVal) => {
console.log(params.tunnelId, newVal);
equipment.value.reset();
@@ -164,19 +170,23 @@ function addEquipment() {
});
return;
}
if (!equipmentSetting.equipmentType || !equipmentSetting.equipmentId) {
if (
!equipmentSetting.value.equipmentType ||
!equipmentSetting.value.equipmentId
) {
ElMessage({
message: "选项不能为空!",
type: "warning",
});
return;
}
equipmentSetting.position = params.position;
console.log("add", equipmentSetting);
equipmentSetting.value.position = params.position;
console.log("add-", toRaw(equipmentSetting.value));
// 合法请求
saveEquipment(equipmentSetting, params.pointGap)
modelStore
.addEquipment({ ...toRaw(equipmentSetting.value) }, params.pointGap)
.then((res) => {
emit("addEquipment", equipmentSetting);
emit("addEquipment", equipmentSetting.value);
ElMessage({
message: "添加成功!",
type: "success",