diff --git a/business-css/frontend/src/api/business/project/index.ts b/business-css/frontend/src/api/business/project/index.ts index fcd9685..98683f2 100644 --- a/business-css/frontend/src/api/business/project/index.ts +++ b/business-css/frontend/src/api/business/project/index.ts @@ -59,4 +59,20 @@ export function topologyDevicesLsit(queryParams:any){ }); } +//初始化项目模拟数据 +export function simulationInit(queryParams:any){ + return request({ + url:'/projects/simulation/init' , + method: 'Post', + params:queryParams + }); +} +// 运行项目模拟 +export function simulationRun(projectId:string,scenarioId:string, data:any){ + return request({ + url:'/projects/simulation/run?projectId='+projectId+'&scenarioId='+scenarioId , + method: 'Post', + data: data + }); +} diff --git a/business-css/frontend/src/api/business/scenario/index.ts b/business-css/frontend/src/api/business/scenario/index.ts index 7c082f1..87fbdd6 100644 --- a/business-css/frontend/src/api/business/scenario/index.ts +++ b/business-css/frontend/src/api/business/scenario/index.ts @@ -48,3 +48,12 @@ export function deleteBatchScenarios(queryParams:any){ data: queryParams }); } + +//获取所有项目列表 +export function getActiveAlgorithms(){ + return request({ + url: '/algorithms/getActiveAlgorithms' , + method: 'get' + }); +} + diff --git a/business-css/frontend/src/assets/table/moni.png b/business-css/frontend/src/assets/table/moni.png new file mode 100644 index 0000000..8c8e5f1 Binary files /dev/null and b/business-css/frontend/src/assets/table/moni.png differ diff --git a/business-css/frontend/src/assets/table/moni_disabled.png b/business-css/frontend/src/assets/table/moni_disabled.png new file mode 100644 index 0000000..bb92611 Binary files /dev/null and b/business-css/frontend/src/assets/table/moni_disabled.png differ diff --git a/business-css/frontend/src/assets/table/result.png b/business-css/frontend/src/assets/table/result.png new file mode 100644 index 0000000..b9c033d Binary files /dev/null and b/business-css/frontend/src/assets/table/result.png differ diff --git a/business-css/frontend/src/assets/table/result_disabled.png b/business-css/frontend/src/assets/table/result_disabled.png new file mode 100644 index 0000000..51f37fe Binary files /dev/null and b/business-css/frontend/src/assets/table/result_disabled.png differ diff --git a/business-css/frontend/src/assets/table/see.png b/business-css/frontend/src/assets/table/see.png new file mode 100644 index 0000000..6671804 Binary files /dev/null and b/business-css/frontend/src/assets/table/see.png differ diff --git a/business-css/frontend/src/assets/table/shifa.png b/business-css/frontend/src/assets/table/shifa.png new file mode 100644 index 0000000..558bbf7 Binary files /dev/null and b/business-css/frontend/src/assets/table/shifa.png differ diff --git a/business-css/frontend/src/assets/table/u267.png b/business-css/frontend/src/assets/table/u267.png new file mode 100644 index 0000000..90509c2 Binary files /dev/null and b/business-css/frontend/src/assets/table/u267.png differ diff --git a/business-css/frontend/src/assets/table/u419_disabled.png b/business-css/frontend/src/assets/table/u419_disabled.png new file mode 100644 index 0000000..32c8e2e Binary files /dev/null and b/business-css/frontend/src/assets/table/u419_disabled.png differ diff --git a/business-css/frontend/src/assets/table/view.png b/business-css/frontend/src/assets/table/view.png new file mode 100644 index 0000000..77e27ac Binary files /dev/null and b/business-css/frontend/src/assets/table/view.png differ diff --git a/business-css/frontend/src/components/antvx6/changesettings.vue b/business-css/frontend/src/components/antvx6/changesettings.vue index 4f38908..1ff3255 100644 --- a/business-css/frontend/src/components/antvx6/changesettings.vue +++ b/business-css/frontend/src/components/antvx6/changesettings.vue @@ -8,6 +8,8 @@ export default { import { onMounted, ref, nextTick } from "vue"; import { ElForm, ElMessage, ElMessageBox } from "element-plus"; import { searchDevicesPage } from "@/api/business/database/device"; +import { topologyDevicesLsit } from '@/api/business/project'; + const emit = defineEmits([ 'closeChangesettingsModel']); const props = defineProps({ @@ -44,20 +46,23 @@ const materialName:any = ref(props.materialInfo.name) // 变动物料信息 const tableData:any = ref([]) function gettableData() { -let params = { - name: "", - type: deviceTypetype.value, - pageNum: 1, - pageSize: 999, -}; if(deviceTypetype.value == ''){ return } -searchDevicesPage(params).then((result:any) => { - deviceList.value = result.records; -}).catch((err) => { + topologyDevicesLsit({ + id: props.projectInfo.projectId + }).then((res:any) => { + if (res.code == 0) { + deviceList.value = res.data; + } + }) +// topologyDevicesLsit(params).then((result:any) => { +// deviceList.value = result.records; +// }).catch((err) => { + +// }); + -}); } @@ -194,7 +199,7 @@ function dialogMaterialClose(){ // 变动公式设置关闭 isDialogFormula.value = false } function handleClick(item:any, index:any){ - formulaInfo.value.correlation = JSON.parse(JSON.stringify(item.name)) + formulaInfo.value.correlation = JSON.parse(JSON.stringify(item.deviceName)) isAcitve.value = index } function handleClose(){ // 变动公式设置关闭 @@ -258,7 +263,7 @@ function confirmTableClick(){ // 确认变动公式设置
- {{ item.name }} + {{ item.deviceName }}
diff --git a/business-css/frontend/src/components/antvx6/index.vue b/business-css/frontend/src/components/antvx6/index.vue index 7354b39..31f8bf2 100644 --- a/business-css/frontend/src/components/antvx6/index.vue +++ b/business-css/frontend/src/components/antvx6/index.vue @@ -1018,10 +1018,10 @@ function setFormulaInit(formula:any) { function getBias(formula:any){ // 从后往前找最后一个+的位置 - const lastPlusIndex = formula.lastIndexOf('+'); - // 从+的位置后截取到】之前 - const constantStr = formula.slice(lastPlusIndex + 1, -1); - const constant = parseFloat(constantStr); +// 匹配最后一个+号后面的数字(支持整数、小数) + const regex = /\+(\d+\.?\d*)$/; + const match = formula.match(regex); + const constant = parseFloat(match[1]); return constant } @@ -1043,16 +1043,17 @@ function saveDesign() { // 保存设计 if(cells[i].changesettings[j].formula != '' && cells[i].changesettings[j].formula != null){ const key = cells[i].changesettings[j].name as string const unit = cells[i].changesettings[j].unit - + const name = cells[i].changesettings[j].name + const delay= cells[i].changesettings[j].delay let tempSources = [] for(let k=0;k + + + + + + \ No newline at end of file diff --git a/business-css/frontend/src/views/component/scenario/createscenario.vue b/business-css/frontend/src/views/component/scenario/createscenario.vue index 997833d..937bc6d 100644 --- a/business-css/frontend/src/views/component/scenario/createscenario.vue +++ b/business-css/frontend/src/views/component/scenario/createscenario.vue @@ -10,7 +10,7 @@ import { ElForm, ElMessage, ElMessageBox } from "element-plus"; import { getDictItemById } from '@/api/dict'; import { eventsBatchSave } from '@/api/business/event'; import ConditionModel from '@/views/component/scenario/condition.vue' -import { addScenarios,updateScenarios} from "@/api/business/scenario"; +import { addScenarios,updateScenarios,getActiveAlgorithms } from "@/api/business/scenario"; const emit = defineEmits([ 'closeCreatescenario']); const props = defineProps({ // 接收父组件传递的项目信息 @@ -41,15 +41,8 @@ function handleScenarioClose(){ } const getAlgorithmType = async () => { try { - let params = { - dictId: '595502b91e7741b5033b53622d8731a3', - size:99, - current:1 - } - const result:any = await getDictItemById(params); - if (result.code == '0') { - algorithmTypeData.value = result.data.records - } + const result:any = await getActiveAlgorithms(); + algorithmTypeData.value = result } catch (error) { } } @@ -152,7 +145,7 @@ onMounted(() => { - + diff --git a/business-css/frontend/src/views/component/scenario/index.vue b/business-css/frontend/src/views/component/scenario/index.vue index a16374c..85f3766 100644 --- a/business-css/frontend/src/views/component/scenario/index.vue +++ b/business-css/frontend/src/views/component/scenario/index.vue @@ -8,6 +8,9 @@ export default { import { onMounted, ref, nextTick } from "vue"; import { ElForm, ElMessage, ElMessageBox } from "element-plus"; import { searchScenariosLsit,addScenarios,updateScenarios,deleteScenarios,deleteBatchScenarios} from "@/api/business/scenario"; + +import { simulationInit,simulationRun } from "@/api/business/project"; + import Page from '@/components/Pagination/page.vue' import { getDictItemById } from '@/api/dict'; // import ConditionModel from '@/views/component/scenario/condition.vue' @@ -268,6 +271,48 @@ function closeCreatescenario(){ dialogVisible.value = false; gettableData(); } + +function confirmationAnalysis(row: any) { + ElMessageBox.confirm("确定对"+ row.name +"故情景分析进行模拟吗?", "确认模拟", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning", + }) + .then(() => { + let params = { + projectId: row.projectId, + scenarioId: row.scenarioId, + }; + simulationInit(params).then((res:any) => { + if (res.code == '0') { + let data = { + data: res.data + } + simulationRun(row.projectId, row.scenarioId, data || {}).then((res) => { + gettableData(); + }).catch((error) => { + console.error('模拟运行失败:', error); + ElMessage({ + type: "error", + message: "模拟运行失败,请检查后端服务是否正常", + }); + }) + }else{ + ElMessage({ + type: "error", + message: "模拟初始化失败", + }); + } + + + + }); + }) +} + + + +