增加重做

main
JayChou 1 month ago
parent c3468e4287
commit 7d79c6f0dd
  1. 15
      src/layout/spacePage.vue
  2. 7
      src/utils/setStep.ts
  3. 57
      src/views/designRoute/index.vue
  4. 11
      src/views/program/index.vue

@ -141,7 +141,7 @@
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import { ref, onMounted } from "vue"; import { ref, onMounted } from "vue";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import settingStore from "@/store/modules/setting";; import settingStore from "@/store/modules/setting";
const setting = settingStore(); const setting = settingStore();
import userStore from "@/store/modules/user"; import userStore from "@/store/modules/user";
import { getUserInfoService, userChangeService, logout } from "@/api/user"; import { getUserInfoService, userChangeService, logout } from "@/api/user";
@ -283,14 +283,13 @@ const handleClose = () => {
// 退 // 退
const logoutEvent = async () => { const logoutEvent = async () => {
await logout().then(res => { await logout().then((res) => {
console.log(res,'111'); console.log(res, "111");
clearLocalStorage(); clearLocalStorage();
user.token = '' user.token = "";
router.push("/login"); router.push("/login");
window.location.reload();
}) });
}; };
</script> </script>

@ -1,16 +1,17 @@
import { tr } from "element-plus/es/locale";
import { setStep, getStepId } from "../api/index"; import { setStep, getStepId } from "../api/index";
import settingStore from "../store/modules/setting"; import settingStore from "../store/modules/setting";
import pinia from "@/store"; import pinia from "@/store";
const useStore = settingStore(pinia); const useStore = settingStore(pinia);
export const setStepEvent = async (step: number, controlsSt: string) => { export const setStepEvent = async (step: number, controlsSt: string,isRedo:boolean = false) => {
let id: any = null; let id: any = null;
if (!useStore.stepIds) { if (!useStore.stepIds) {
const data: any = await getStepId(); const data: any = await getStepId();
useStore.stepIds = data.result.map((item: any) => item.id); useStore.stepIds = data.result.map((item: any) => item.id);
id = useStore.stepIds[step - 1]; id = useStore.stepIds[step - 1];
// return id; // return id;
await setStep({ id, controlsSt }); await setStep({ id, controlsSt,isRedo });
} else { } else {
await setStep({ id: useStore.stepIds[step - 1], controlsSt }); await setStep({ id: useStore.stepIds[step - 1], controlsSt,isRedo });
} }
}; };

@ -13,7 +13,7 @@
<el-button @click="router.push('/program')">上一步</el-button> <el-button @click="router.push('/program')">上一步</el-button>
<el-button @click="onUndo">撤回</el-button> <el-button @click="onUndo">撤回</el-button>
<el-button @click="onRedo">恢复</el-button> <el-button @click="onRedo">恢复</el-button>
<el-button @click="clearLocalStorage">清除缓存</el-button> <el-button @click="clearLocalStorage">重做</el-button>
<el-button @click="onSave">保存</el-button> <el-button @click="onSave">保存</el-button>
<el-button @click="onTip">步骤提示</el-button> <el-button @click="onTip">步骤提示</el-button>
@ -73,7 +73,7 @@ import setzijie from "./components/setzijie.vue";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import tipView from "@/assets/images/guanxitu.png"; import tipView from "@/assets/images/guanxitu.png";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import useSettingStore from "@/store/modules/setting"; import useSettingStore from "@/store/modules/setting";
import { setStepEvent } from "@/utils/setStep"; import { setStepEvent } from "@/utils/setStep";
import { formatDate } from "@/utils"; import { formatDate } from "@/utils";
let graph = null; let graph = null;
@ -822,7 +822,7 @@ onMounted(() => {
}, 1000); }, 1000);
const zoom = window.outerWidth / window.innerWidth; const zoom = window.outerWidth / window.innerWidth;
console.log("缩放比例为:", zoom); console.log("缩放比例为:", zoom);
if(zoom > 1) { if (zoom > 1) {
ElMessage.error("当前浏览器缩放比例过大,通过Ctrl+滚轮调整比例"); ElMessage.error("当前浏览器缩放比例过大,通过Ctrl+滚轮调整比例");
// graph.zoom(-0.5); // graph.zoom(-0.5);
} }
@ -841,50 +841,51 @@ const onUndo = () => {
const onRedo = () => { const onRedo = () => {
graph.redo(); graph.redo();
}; };
const wenduCode = "float a;a=1000000*M*S/W;T+(1-exp(-t/a))*100+T0;if(T>=100){T=100;}"; const wenduCode =
const shiduCode = "float b;a=10000*S0/W1;R+(1-exp(-t1/b))*100+R0;if(R>=100){R=100;}"; "float a;a=1000000*M*S/W;T+(1-exp(-t/a))*100+T0;if(T>=100){T=100;}";
const step3Time = formatDate(new Date()) const shiduCode =
"float b;a=10000*S0/W1;R+(1-exp(-t1/b))*100+R0;if(R>=100){R=100;}";
const step3Time = formatDate(new Date());
const onSave = () => { const onSave = () => {
console.log(removeDuplicateEdges(formatEdges()), standardData); console.log(removeDuplicateEdges(formatEdges()), standardData);
// return // return
if (standardData.length !== removeDuplicateEdges(formatEdges()).length) if (standardData.length !== removeDuplicateEdges(formatEdges()).length)
return ElMessage.error("请完善数据"); return ElMessage.error("请完善数据");
validateRelationships(standardData, formatEdges()); validateRelationships(standardData, formatEdges());
if(settingStore.wenduCode != wenduCode){ if (settingStore.wenduCode != wenduCode) {
return ElMessage.error("温度代码编写错误"); return ElMessage.error("温度代码编写错误");
} }
if(settingStore.shiduCode != shiduCode){ if (settingStore.shiduCode != shiduCode) {
return ElMessage.error("湿度代码编写错误"); return ElMessage.error("湿度代码编写错误");
} }
setStepEvent(3, step3Time); setStepEvent(3, step3Time);
settingStore.activeStepIndex =4 settingStore.activeStepIndex = 4;
ElMessage.success("保存成功"); ElMessage.success("保存成功");
settingStore.setValue( true,'saveRoute'); settingStore.setValue(true, "saveRoute");
localStorage.setItem('saveRoute',true) localStorage.setItem("saveRoute", true);
settingStore.setValue(true, "experimentPreservation"); settingStore.setValue(true, "experimentPreservation");
localStorage.setItem("experimentPreservation", "true"); localStorage.setItem("experimentPreservation", "true");
router.push('/program') router.push("/program");
// const data = graph.toJSON(); // const data = graph.toJSON();
// console.log(data); // console.log(data);
// const edges = graph.getEdges(); // const edges = graph.getEdges();
// console.log(formatEdges()); // console.log(formatEdges());
}; };
function removeDuplicateEdges(edges) { function removeDuplicateEdges(edges) {
const seen = new Set(); const seen = new Set();
return edges.filter(edge => { return edges.filter((edge) => {
// source target // source target
const key = edge.source < edge.target const key =
? `${edge.source}-${edge.target}` edge.source < edge.target
: `${edge.target}-${edge.source}`; ? `${edge.source}-${edge.target}`
: `${edge.target}-${edge.source}`;
if (seen.has(key)) { if (seen.has(key)) {
return false; return false;
} }
seen.add(key); seen.add(key);
return true; return true;
}); });
} }
const formatEdges = () => { const formatEdges = () => {
const edges = graph.getEdges(); const edges = graph.getEdges();
@ -1157,8 +1158,10 @@ function loadFromLocalStorage() {
return JSON.parse(localStorage.getItem(SESSION_KEY)) || []; return JSON.parse(localStorage.getItem(SESSION_KEY)) || [];
} }
function clearLocalStorage() { async function clearLocalStorage() {
localStorage.removeItem(SESSION_KEY); localStorage.removeItem(SESSION_KEY);
await setStepEvent(3, step3Time, true);
window.location.reload(); window.location.reload();
} }
</script> </script>

@ -43,7 +43,7 @@
<el-button @click="router.push('/')">上一步</el-button> <el-button @click="router.push('/')">上一步</el-button>
<el-button @click="onUndo">撤回</el-button> <el-button @click="onUndo">撤回</el-button>
<el-button @click="onRedo">恢复</el-button> <el-button @click="onRedo">恢复</el-button>
<el-button @click="clearLocalStorage">清除缓存</el-button> <el-button @click="clearLocalStorage">重做</el-button>
<el-button <el-button
:disabled=" :disabled="
useSettingStore.experimentPreservation && useSettingStore.isRunning useSettingStore.experimentPreservation && useSettingStore.isRunning
@ -153,8 +153,6 @@ const nodeName = ref("");
const csedNode = ref<any>(null); const csedNode = ref<any>(null);
const operations = []; const operations = [];
onMounted(() => { onMounted(() => {
preWork(); preWork();
// #region // #region
@ -405,7 +403,7 @@ onMounted(() => {
}); });
const zoom = window.outerWidth / window.innerWidth; const zoom = window.outerWidth / window.innerWidth;
console.log("缩放比例为:", zoom); console.log("缩放比例为:", zoom);
if(zoom > 1) { if (zoom > 1) {
ElMessage.error("当前浏览器缩放比例过大,通过Ctrl+滚轮调整比例"); ElMessage.error("当前浏览器缩放比例过大,通过Ctrl+滚轮调整比例");
graph.zoom(-0.5); graph.zoom(-0.5);
} }
@ -1276,7 +1274,7 @@ const onRedo = () => {
graph.redo(); graph.redo();
}; };
const sdsz = ref<any>(null); const sdsz = ref<any>(null);
const step2Time = formatDate(new Date()) const step2Time = formatDate(new Date());
const onSave = async () => { const onSave = async () => {
if (useSettingStore.isRunCode) { if (useSettingStore.isRunCode) {
await setStepEvent(9, step2Time); await setStepEvent(9, step2Time);
@ -1532,9 +1530,10 @@ function loadFromLocalStorage() {
return JSON.parse(localStorage.getItem(SESSION_KEY) as string) || []; return JSON.parse(localStorage.getItem(SESSION_KEY) as string) || [];
} }
function clearLocalStorage(falg = true) { async function clearLocalStorage(falg = true) {
localStorage.removeItem(SESSION_KEY); localStorage.removeItem(SESSION_KEY);
if (falg) { if (falg) {
await setStepEvent(2, step2Time, true);
window.location.reload(); window.location.reload();
} }
} }

Loading…
Cancel
Save