|
|
|
|
@ -408,6 +408,21 @@
|
|
|
|
|
</template>
|
|
|
|
|
<div class="moduleText">菜单</div>
|
|
|
|
|
</el-card>
|
|
|
|
|
<el-card class="moduleCard" shadow="never" :draggable="true"
|
|
|
|
|
@dragstart="onDragStart($event, 'tree')" :style="{display:'inline-block',margin:'0 4px 4px 0'}"
|
|
|
|
|
:body-style="{padding:'4px 0'}">
|
|
|
|
|
<template #header>
|
|
|
|
|
<div style="width: 100%;height: 100%;text-align: center">
|
|
|
|
|
<svg t="1768964556223" class="icon" viewBox="0 0 1024 1024" version="1.1"
|
|
|
|
|
xmlns="http://www.w3.org/2000/svg" p-id="4878" width="30" height="30">
|
|
|
|
|
<path
|
|
|
|
|
d="M554.666667 682.666667h85.333333v128h-213.333333v-128h85.333333v-128H256v128h85.333333v128H128v-128h85.333333v-170.666667h298.666667V384h-85.333333V256h213.333333v128h-85.333333v128h298.666666v170.666667h85.333334v128h-213.333334v-128h85.333334v-128h-256v128z m42.666666-384h-128v42.666666h128V298.666667zM298.666667 725.333333H170.666667v42.666667h128v-42.666667z m597.333333 0h-128v42.666667h128v-42.666667z m-298.666667 0h-128v42.666667h128v-42.666667z"
|
|
|
|
|
fill="#444444" p-id="4879"></path>
|
|
|
|
|
</svg>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<div class="moduleText">树状图</div>
|
|
|
|
|
</el-card>
|
|
|
|
|
</div>
|
|
|
|
|
</el-popover>
|
|
|
|
|
</div>
|
|
|
|
|
@ -492,99 +507,99 @@
|
|
|
|
|
>
|
|
|
|
|
<Background :size="1" :gap="20" pattern-color="#BDBDBD" style="background-color: #000" />
|
|
|
|
|
|
|
|
|
|
<template #node-area="areaNodeProps">
|
|
|
|
|
<AreaNode v-bind="areaNodeProps" :pageData="pageData" @resize="(e) => handleResizeStop(e, areaNodeProps)" />
|
|
|
|
|
<template #node-area="props">
|
|
|
|
|
<AreaNode v-bind="props" :pageData="pageData" @resize="(e) => handleResizeStop(e, props)" />
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<template #node-customBoard="customBoardNodeProps">
|
|
|
|
|
<CustomBoardNode v-bind="customBoardNodeProps" :inputData="getInputData(customBoardNodeProps.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, customBoardNodeProps)" />
|
|
|
|
|
<template #node-customBoard="props">
|
|
|
|
|
<CustomBoardNode v-bind="props" :inputData="getInputData(props.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, props)" />
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<template #node-customData="customDataNodeProps">
|
|
|
|
|
<CustomDataNode v-bind="customDataNodeProps" :inputData="getInputData(customDataNodeProps.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, customDataNodeProps)" />
|
|
|
|
|
<template #node-customData="props">
|
|
|
|
|
<CustomDataNode v-bind="props" :inputData="getInputData(props.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, props)" />
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<template #node-line="lineNodeProps">
|
|
|
|
|
<LineNode v-bind="lineNodeProps" :inputData="getInputData(lineNodeProps.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, lineNodeProps)" />
|
|
|
|
|
<template #node-line="props">
|
|
|
|
|
<LineNode v-bind="props" :inputData="getInputData(props.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, props)" />
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<template #node-multiLines="multiLinesNodeProps">
|
|
|
|
|
<MultiLinesNode v-bind="multiLinesNodeProps" :inputData="getInputData(multiLinesNodeProps.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, multiLinesNodeProps)" />
|
|
|
|
|
<template #node-multiLines="props">
|
|
|
|
|
<MultiLinesNode v-bind="props" :inputData="getInputData(props.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, props)" />
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<template #node-curve="curveNodeProps">
|
|
|
|
|
<CurveNode v-bind="curveNodeProps" :inputData="getInputData(curveNodeProps.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, curveNodeProps)" />
|
|
|
|
|
<template #node-curve="props">
|
|
|
|
|
<CurveNode v-bind="props" :inputData="getInputData(props.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, props)" />
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<template #node-multiCurves="multiCurvesNodeProps">
|
|
|
|
|
<MultiCurvesNode v-bind="multiCurvesNodeProps" :inputData="getInputData(multiCurvesNodeProps.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, multiCurvesNodeProps)" />
|
|
|
|
|
<template #node-multiCurves="props">
|
|
|
|
|
<MultiCurvesNode v-bind="props" :inputData="getInputData(props.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, props)" />
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<template #node-lineBar="lineBarNodeProps">
|
|
|
|
|
<LineBarNode v-bind="lineBarNodeProps" :inputData="getInputData(lineBarNodeProps.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, lineBarNodeProps)" />
|
|
|
|
|
<template #node-lineBar="props">
|
|
|
|
|
<LineBarNode v-bind="props" :inputData="getInputData(props.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, props)" />
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<template #node-bar="barNodeProps">
|
|
|
|
|
<BarNode v-bind="barNodeProps" :inputData="getInputData(barNodeProps.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, barNodeProps)" />
|
|
|
|
|
<template #node-bar="props">
|
|
|
|
|
<BarNode v-bind="props" :inputData="getInputData(props.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, props)" />
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<template #node-backgroundBar="backgroundBarNodeProps">
|
|
|
|
|
<BackgroundBarNode v-bind="backgroundBarNodeProps" :inputData="getInputData(backgroundBarNodeProps.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, backgroundBarNodeProps)" />
|
|
|
|
|
<template #node-backgroundBar="props">
|
|
|
|
|
<BackgroundBarNode v-bind="props" :inputData="getInputData(props.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, props)" />
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<template #node-multiBars="multiBarsNodeProps">
|
|
|
|
|
<MultiBarsNode v-bind="multiBarsNodeProps" :inputData="getInputData(multiBarsNodeProps.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, multiBarsNodeProps)" />
|
|
|
|
|
<template #node-multiBars="props">
|
|
|
|
|
<MultiBarsNode v-bind="props" :inputData="getInputData(props.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, props)" />
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<template #node-pie="pieNodeProps">
|
|
|
|
|
<PieNode v-bind="pieNodeProps" :inputData="getInputData(pieNodeProps.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, pieNodeProps)" />
|
|
|
|
|
<template #node-pie="props">
|
|
|
|
|
<PieNode v-bind="props" :inputData="getInputData(props.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, props)" />
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<template #node-annular="annularNodeProps">
|
|
|
|
|
<AnnularNode v-bind="annularNodeProps" :inputData="getInputData(annularNodeProps.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, annularNodeProps)" />
|
|
|
|
|
<template #node-annular="props">
|
|
|
|
|
<AnnularNode v-bind="props" :inputData="getInputData(props.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, props)" />
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<template #node-radar="radarNodeProps">
|
|
|
|
|
<RadarNode v-bind="radarNodeProps" :inputData="getInputData(radarNodeProps.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, radarNodeProps)" />
|
|
|
|
|
<template #node-radar="props">
|
|
|
|
|
<RadarNode v-bind="props" :inputData="getInputData(props.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, props)" />
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<template #node-dashboard="dashboardNodeProps">
|
|
|
|
|
<DashboardNode v-bind="dashboardNodeProps" :inputData="getInputData(dashboardNodeProps.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, dashboardNodeProps)" />
|
|
|
|
|
<template #node-dashboard="props">
|
|
|
|
|
<DashboardNode v-bind="props" :inputData="getInputData(props.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, props)" />
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<template #node-nightingaleRoseDiagram="nightingaleRoseDiagramNodeProps">
|
|
|
|
|
<NightingaleRoseDiagramNode v-bind="nightingaleRoseDiagramNodeProps"
|
|
|
|
|
:inputData="getInputData(nightingaleRoseDiagramNodeProps.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, nightingaleRoseDiagramNodeProps)" />
|
|
|
|
|
<template #node-props="props">
|
|
|
|
|
<NightingaleRoseDiagramNode v-bind="props"
|
|
|
|
|
:inputData="getInputData(props.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, props)" />
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<template #node-carousel="carouselNodeProps">
|
|
|
|
|
<CarouselNode v-bind="carouselNodeProps" :inputData="getInputData(carouselNodeProps.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, carouselNodeProps)" />
|
|
|
|
|
<template #node-carousel="props">
|
|
|
|
|
<CarouselNode v-bind="props" :inputData="getInputData(props.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, props)" />
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<template #node-data="dataNodeProps">
|
|
|
|
|
<DataNode v-bind="dataNodeProps" :inputData="getInputData(dataNodeProps.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, dataNodeProps)" />
|
|
|
|
|
<template #node-data="props">
|
|
|
|
|
<DataNode v-bind="props" :inputData="getInputData(props.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, props)" />
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<template #node-text="textNodeProps">
|
|
|
|
|
<TextNode v-bind="textNodeProps" :inputData="getInputData(textNodeProps.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, textNodeProps)" />
|
|
|
|
|
<template #node-text="props">
|
|
|
|
|
<TextNode v-bind="props" :inputData="getInputData(props.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, props)" />
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<template #node-img="imgNodeProps">
|
|
|
|
|
@ -627,9 +642,9 @@
|
|
|
|
|
@resize="(e) => handleResizeStop(e, selectNodeProps)" />
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<template #node-time="timeNodeProps">
|
|
|
|
|
<TimeNode v-bind="timeNodeProps" :inputData="getInputData(timeNodeProps.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, timeNodeProps)" />
|
|
|
|
|
<template #node-time="props">
|
|
|
|
|
<TimeNode v-bind="props" :inputData="getInputData(props.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, props)" />
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<template #node-map="mapNodeProps">
|
|
|
|
|
@ -662,9 +677,13 @@
|
|
|
|
|
@resize="(e) => handleResizeStop(e, paginationNodeProps)" />
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<template #node-menu="menuNodeProps">
|
|
|
|
|
<MenuNode v-bind="menuNodeProps" :inputData="getInputData(menuNodeProps.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, menuNodeProps)" />
|
|
|
|
|
<template #node-menu="props">
|
|
|
|
|
<MenuNode v-bind="props" :inputData="getInputData(props.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, props)" />
|
|
|
|
|
</template>
|
|
|
|
|
<template #node-tree="props">
|
|
|
|
|
<TreeNode v-bind="props" :inputData="getInputData(props.id)"
|
|
|
|
|
@resize="(e) => handleResizeStop(e, props)" />
|
|
|
|
|
</template>
|
|
|
|
|
</VueFlow>
|
|
|
|
|
</FlowRuler>
|
|
|
|
|
@ -988,6 +1007,12 @@
|
|
|
|
|
<el-form-item label="输出字段名" v-if="Object.keys(nodeAttrForm).includes('field')">
|
|
|
|
|
<el-input v-model="nodeAttrForm.field" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="菜单显示字段名" v-if="Object.keys(nodeAttrForm).includes('menuField')">
|
|
|
|
|
<el-input v-model="nodeAttrForm.menuField" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="菜单唯一字段名" v-if="Object.keys(nodeAttrForm).includes('activeField')">
|
|
|
|
|
<el-input v-model="nodeAttrForm.activeField" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="每页个数字段" v-if="Object.keys(nodeAttrForm).includes('pageSizeField')">
|
|
|
|
|
<el-input v-model="nodeAttrForm.pageSizeField" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
@ -1037,6 +1062,9 @@
|
|
|
|
|
<el-form-item label="文字颜色" v-if="Object.keys(nodeAttrForm).includes('color')">
|
|
|
|
|
<el-color-picker v-model="nodeAttrForm.color" show-alpha />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="选中文字颜色" v-if="Object.keys(nodeAttrForm).includes('activeColor')">
|
|
|
|
|
<el-color-picker v-model="nodeAttrForm.activeColor" show-alpha />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="背景颜色" v-if="Object.keys(nodeAttrForm).includes('backgroundColor')">
|
|
|
|
|
<el-color-picker v-model="nodeAttrForm.backgroundColor" show-alpha />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
@ -1282,6 +1310,14 @@
|
|
|
|
|
<el-form-item label="数字数量" v-if="Object.keys(nodeAttrForm).includes('numQuantity')">
|
|
|
|
|
<el-input-number :min="1" :controls="false" v-model="nodeAttrForm.numQuantity" autocomplete="off" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="树设置" v-if="Object.keys(nodeAttrForm).includes('treeOptions')">
|
|
|
|
|
<el-button class="optionsBtn" plain @click="treeOptionsVisible = true">
|
|
|
|
|
配置树
|
|
|
|
|
</el-button>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="层级数量" v-if="Object.keys(nodeAttrForm).includes('level')">
|
|
|
|
|
<el-input-number :min="1" :controls="false" v-model="nodeAttrForm.level" autocomplete="off" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="js脚本设置">
|
|
|
|
|
<el-input type="textarea" v-model="nodeAttrForm.JScript" style="width: 100%" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
@ -1581,6 +1617,9 @@
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
</el-dialog>
|
|
|
|
|
<el-dialog v-model="treeOptionsVisible" title="树设置" fullscreen>
|
|
|
|
|
<TreeOption :data="nodeAttrForm.treeOptions" :level="nodeAttrForm.level"/>
|
|
|
|
|
</el-dialog>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<script setup>
|
|
|
|
|
@ -1659,6 +1698,8 @@ import ButtonNode from '@/views/boardGenerate/nodes/form/buttonNode.vue';
|
|
|
|
|
import SelectNode from '@/views/boardGenerate/nodes/form/selectNode.vue';
|
|
|
|
|
|
|
|
|
|
import MenuNode from './nodes/advancedComponents/menuNode.vue'
|
|
|
|
|
import TreeNode from './nodes/advancedComponents/tree/index.vue';
|
|
|
|
|
import TreeOption from './nodes/advancedComponents/tree/option.vue';
|
|
|
|
|
|
|
|
|
|
import TimeNode from '@/views/boardGenerate/nodes/form/timeNode.vue';
|
|
|
|
|
import TableNode from '@/views/boardGenerate/nodes/form/tableNode.vue';
|
|
|
|
|
@ -1811,6 +1852,7 @@ const pageSettingVisible = ref(false);
|
|
|
|
|
const tableCellOptionsVisible = ref(false);
|
|
|
|
|
const cellOptionsVisible = ref(false);
|
|
|
|
|
const tableOptionsVisible = ref(false);
|
|
|
|
|
const treeOptionsVisible = ref(false);
|
|
|
|
|
const tableClassOptionsVisible = ref(false);
|
|
|
|
|
const swiperOptionsVisible = ref(false);
|
|
|
|
|
const mapOptionsVisible = ref(false);
|
|
|
|
|
@ -2480,7 +2522,10 @@ const setText = (value, row, formula) => {
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
<style>
|
|
|
|
|
|
|
|
|
|
.vue-flow__handle {
|
|
|
|
|
width: 1vw;
|
|
|
|
|
height: 1vw;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
</style>
|
|
|
|
|
|
|
|
|
|
|