update code

main
haha 2024-07-13 00:14:43 +08:00
parent 0ba5405ef4
commit bcecf05a25
4 changed files with 120 additions and 51 deletions

View File

@ -5,7 +5,11 @@ const makeX = (arr) => {
let i = len % 2 == 0 ? (len / 2) * -1 : ((len - 1) / 2) * -1; let i = len % 2 == 0 ? (len / 2) * -1 : ((len - 1) / 2) * -1;
let res = []; let res = [];
for (let j = i; j <= i * -1; j++) { for (let j = i; j <= i * -1; j++) {
res.push(30 * j); if(len%2==0 && j==0){
}else{
res.push(30 * j);
}
} }
return res; return res;
}; };

View File

@ -75,33 +75,38 @@
<span class="sp-label">算子说明:</span> <span class="sp-label">算子说明:</span>
<span class="sp-text">{{ selNode.info.operator_desc }}</span> <span class="sp-text">{{ selNode.info.operator_desc }}</span>
</div> </div>
<div class="row"> <div class="row" v-if="selNode.info.parameters && selNode.info.parameters.inputs">
<span class="sp-label">输入参数:</span> <span class="sp-label">输入参数:</span>
<div class="div-param">
<div v-if="selNode.info.parameters.inputs.length>1" class="div-navs">
<span v-for="(it,idx) in selNode.info.parameters.inputs" @click="doInputSelected(idx)" :key="idx" class="sp-nav" :class="it.selected?'active':''">{{ it.input_id }}</span>
</div>
<span class="sp-text sp-paramter scroll" @click="doEdit(selNode.info, '输入参数', 'i')"> <span class="sp-text sp-paramter scroll" @click="doEdit(selNode.info, '输入参数', 'i')">
<span v-for="(it, idx) in objToArr(selNode.info.inputParams) " :key="idx" <span v-for="(it, idx) in selNode.info.parameters.inputs " :key="idx" v-show="it.selected"
class="param-item"> class="param-item">
<span>{{ it.key }}:</span> <paramShow :paramInfo="it"></paramShow>
<span>{{ it.value }}</span>
</span> </span>
</span> </span>
</div>
</div> </div>
<div class="row" style="margin-top:4px;"> <div class="row" style="margin-top:4px;" v-if="selNode.info.parameters && selNode.info.parameters.outputs">
<span class="sp-label">输出参数:</span> <span class="sp-label">输出参数:</span>
<span class="sp-text sp-paramter scroll" @click="doEdit(selNode.info, '输出参数', 'o')"> <div class="div-param" >
<span v-for="(it, idx) in objToArr(selNode.info.outputParams) " :key="idx" <div v-if="selNode.info.parameters.outputs.length>1" class="div-navs">
class="param-item"> <span v-for="(it,idx) in selNode.info.parameters.outputs" @click="doOutputSelected(idx)" :key="idx" class="sp-nav" :class="it.selected?'active':''">{{ it.output_id }}</span>
<span>{{ it.key }}:</span> </div>
<span>{{ it.value }}</span> <span class="sp-text sp-paramter scroll" @click="doEdit(selNode.info, '输出参数', 'o')">
<span v-for="(it, idx) in selNode.info.parameters.outputs " :key="idx" v-show="it.selected"
class="param-item">
<paramShow :paramInfo="it"></paramShow>
</span>
</span> </span>
</span> </div>
</div> </div>
<div class="row" style="margin-top:4px;"> <div class="row" style="margin-top:4px;" v-if="selNode.info.parameters && selNode.info.parameters.process">
<span class="sp-label">处理参数:</span> <span class="sp-label">处理参数:</span>
<span class="sp-text sp-paramter scroll" @click="doEdit(selNode.info, '处理参数', 'p')"> <span class="sp-text sp-paramter scroll" @click="doEdit(selNode.info, '处理参数', 'p')" v-if="selNode.info.parameters.process">
<span v-for="(it, idx) in objToArr(selNode.info.processParams) " :key="idx" class="param-item"> <paramShow :paramInfo="selNode.info.parameters.process"></paramShow>
<span>{{ it.key }}:</span>
<span>{{ it.value }}</span>
</span>
</span> </span>
</div> </div>
</div> </div>
@ -121,6 +126,7 @@ import nodePanel from './nodePanel.vue'
import editFlow from './editFlow.vue' import editFlow from './editFlow.vue'
import ConnApi from '@/api/connection' import ConnApi from '@/api/connection'
import EditParamDlg from './editParamDlg.vue' import EditParamDlg from './editParamDlg.vue'
import paramShow from './paramShow.vue'
const router = useRouter(); const router = useRouter();
const editForm = ref(ElForm) const editForm = ref(ElForm)
const route = useRoute() const route = useRoute()
@ -150,35 +156,34 @@ const selNode = reactive({
let lf = ref(null) let lf = ref(null)
let edFlow = ref() let edFlow = ref()
const ndPanel = ref() const ndPanel = ref()
const doFlowInput = () => { const doOutputSelected=idx=>{
let tmps = info.nodes.filter(d => d.id == selNode.info.id); selNode.info.parameters.outputs.forEach((it,i)=>{
if (tmps.length == 0) { it.selected=i==idx;
info.nodes.push(selNode.info) });
} else { }
tmps[0].inputParams = selNode.info.inputParams; const doInputSelected=idx=>{
tmps[0].outputParams = selNode.info.outputParams; selNode.info.parameters.inputs.forEach((it,i)=>{
tmps[0].processParams = selNode.info.processParams; it.selected=i==idx;
});
}
} }
const doEditSuccess = (obj) => { const doEditSuccess = (obj) => {
let t = info.editObj.type; let t = info.editObj.type;
if (t == 'i') { if (t == 'i') {
selNode.info.inputParams = obj; selNode.info.inputs = obj;
} }
if (t == 'o') { if (t == 'o') {
selNode.info.outputParams = obj; selNode.info.outputs = obj;
} }
if (t == 'p') { if (t == 'p') {
selNode.info.processParams = obj; selNode.info.process = obj;
} }
let tmps = info.nodes.filter(d => d.id == selNode.info.id); let tmps = info.nodes.filter(d => d.id == selNode.info.id);
if (tmps.length == 0) { if (tmps.length == 0) {
info.nodes.push(selNode.info) info.nodes.push(selNode.info)
} else { } else {
tmps[0].inputParams = selNode.info.inputParams; tmps[0].inputs = selNode.info.parameters.inputs;
tmps[0].outputParams = selNode.info.outputParams; tmps[0].outputs = selNode.info.parameters.outputs;
tmps[0].processParams = selNode.info.processParams; tmps[0].process = selNode.info.parameters.process;
} }
}; };
const doEdit = (obj, title, t) => { const doEdit = (obj, title, t) => {
@ -188,7 +193,7 @@ const doEdit = (obj, title, t) => {
type: t type: t
} }
editDlg.value.showDialog({ editDlg.value.showDialog({
obj: t == 'i' ? obj.inputParams : t == 'o' ? obj.outputParams : obj.processParams, obj: t == 'i' ? obj.inputs : t == 'o' ? obj.outputs : obj.process,
title: title title: title
}); });
} }
@ -211,10 +216,24 @@ const doNodeClick = (node) => {
if (tmps.length == 0) { if (tmps.length == 0) {
info.nodes.push(selNode.info); info.nodes.push(selNode.info);
} else { } else {
selNode.info.inputParams = tmps[0].inputParams; selNode.info.parameters.inputs = tmps[0].parameters.inputs;
selNode.info.outputParams = tmps[0].outputParams; selNode.info.parameters.outputs = tmps[0].parameters.outputs;
selNode.info.processParams = tmps[0].processParams; selNode.info.parameters.process = tmps[0].parameters.process;
} }
selNode.info.parameters.inputs.forEach(d=>{
d.selected=false;
});
selNode.info.parameters.outputs.forEach(d=>{
d.selected=false;
});
if(selNode.info.parameters.inputs.length>0){
selNode.info.parameters.inputs[0].selected=true;
}
if(selNode.info.parameters.outputs.length>0){
selNode.info.parameters.outputs[0].selected=true;
}
} }
else { else {
selNode.info = null; selNode.info = null;
@ -229,7 +248,6 @@ const doSave = () => {
ElMessage.error("请绘制算子互联流程图!"); ElMessage.error("请绘制算子互联流程图!");
return; return;
} }
debugger
let isNoConnect=false; let isNoConnect=false;
let nodeObj={}; let nodeObj={};
let operator_list=[]; let operator_list=[];
@ -241,9 +259,9 @@ const doSave = () => {
parameters:{} parameters:{}
} }
if(node.length>0){ if(node.length>0){
oper.parameters.inputParams=node[0].inputParams; oper.parameters.inputs=node[0].inputs;
oper.parameters.outputParams=node[0].outputParams; oper.parameters.outputs=node[0].outputs;
oper.parameters.processParams=node[0].processParams; oper.parameters.process=node[0].process;
} }
operator_list.push(oper); operator_list.push(oper);
let tmps=flowData.edges.filter(e=>e.sourceNodeId==n.id||e.targetNodeId==n.id); let tmps=flowData.edges.filter(e=>e.sourceNodeId==n.id||e.targetNodeId==n.id);
@ -414,6 +432,20 @@ onMounted(() => {
flex-grow: 1; flex-grow: 1;
display: block; display: block;
} }
.div-param{
.div-navs{
.sp-nav{
display: inline-block;
line-height:24px;
padding:0px 12px;
cursor: pointer;
&.active{
background-color: #409EFF;
color:#fff;
}
}
}
}
} }
} }
} }

View File

@ -93,12 +93,11 @@ const updateNode = (nodes) => {
} }
const doEdit=(nd)=>{ const doEdit=(nd)=>{
debugger
let tmps=info.all.filter(d=>d.id==nd.id); let tmps=info.all.filter(d=>d.id==nd.id);
if(tmps.length>0){ if(tmps.length>0){
tmps[0].inputParams=nd.inputParams; tmps[0].inputs=nd.inputs;
tmps[0].outputParams=nd.inputParams; tmps[0].outputs=nd.outputs;
tmps[0].processParams=nd.processParams; tmps[0].process=nd.process;
} }
} }
defineExpose({ defineExpose({

View File

@ -0,0 +1,34 @@
<template>
<div v-for="(it, idx) in objToArr(paramInfo)" :key="idx" style="word-break: break-all;">
<span style="color:#00E5FF;font-weight: bold;">{{ it.name }}</span> :
<span style="color: #283593;">{{ it.value }}</span>
</div>
</template>
<script setup>
const props = defineProps({
paramInfo: {
type: Object,
require: true,
default: null
}
})
const objToArr = obj => {
let arr = [];
if (obj != null) {
for (let k in obj) {
let v = obj[k];
if (k != 'selected') {
if (v['value']) {
arr.push({ name: k, value: v['value'] })
} else {
arr.push({ name: k, value: v })
}
}
}
}
return arr;
}
</script>
<style lang='scss'></style>