Skip to content

Commit

Permalink
perf(@0.9.1-5): 布局组件支持嵌套子表单组件
Browse files Browse the repository at this point in the history
  • Loading branch information
BoBoooooo committed Mar 17, 2021
1 parent 5f45081 commit b36c533
Show file tree
Hide file tree
Showing 6 changed files with 35 additions and 66 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "element-pro-crud",
"version": "0.9.1-4",
"version": "0.9.1-5",
"author": "BoBo<[email protected]>",
"main": "lib/ProCrud.umd.min.js",
"files": [
Expand Down
23 changes: 5 additions & 18 deletions src/component/form-designer/src/WidgetForm.vue
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
<el-row
class="widget-col widget-view"
type="flex"
:class="{ active: selectWidget.key == element.key }"
:class="{ active: selectWidget && selectWidget.key == element.key }"
:gutter="element.options.gutter ? element.options.gutter : 0"
:justify="element.options.justify"
:align="element.options.align"
Expand All @@ -47,7 +47,7 @@
</transition-group>
</Draggable>
</el-col>
<div class="widget-view-action widget-col-action" v-if="selectWidget.key == element.key">
<div class="widget-view-action widget-col-action" v-if="selectWidget && selectWidget.key == element.key">
<!-- 栅格布局自动加减 -->
<template v-if="element.type === 'grid'">
<i class="el-icon el-icon-circle-plus" title="添加列" @click.stop="handleGridAdd(element)"></i>
Expand All @@ -56,23 +56,12 @@
<i class="el-icon el-icon-delete-solid" title="删除" @click.stop="handleWidgetDelete(index)"></i>
</div>

<div class="drag-widget widget-view-drag widget-col-drag" v-if="selectWidget.key == element.key">
<div class="drag-widget widget-view-drag widget-col-drag" v-if="selectWidget && selectWidget.key == element.key">
<i class="el-icon el-icon-rank"></i>
</div>
</el-row>
</div>
</template>
<template v-else-if="element.type === 'form'">
<WidgetSubForm
v-if="element && element.key"
:key="element.key"
:element="element"
:select.sync="selectWidget"
:index="index"
:data="data"
@click.native.stop="handleSelectWidget(index)"
></WidgetSubForm>
</template>
<template v-else-if="element.type === 'tabs'">
<WidgetTabs
v-if="element && element.key"
Expand Down Expand Up @@ -156,7 +145,7 @@
</tr>
</table>

<div class="widget-view-action widget-col-action" v-if="selectWidget.key == element.key">
<div class="widget-view-action widget-col-action" v-if="selectWidget && selectWidget.key == element.key">
<!-- 栅格布局自动加减 -->
<template v-if="element.type === 'grid-table'">
<i class="el-icon el-icon-document-add" title="添加列" @click.stop="handleColAdd(element)"></i>
Expand All @@ -165,7 +154,7 @@
</template>
<i class="el-icon el-icon-delete-solid" title="删除" @click.stop="handleWidgetDelete(index)"></i>
</div>
<div class="drag-widget widget-view-drag widget-col-drag" v-if="selectWidget.key == element.key">
<div class="drag-widget widget-view-drag widget-col-drag" v-if="selectWidget && selectWidget.key == element.key">
<i class="el-icon el-icon-rank"></i>
</div>
</div>
Expand All @@ -184,14 +173,12 @@
import Draggable from 'vuedraggable';
import SvgIcon from '@/icons/SvgIcon.vue';
import WidgetFormItem from './WidgetFormItem.vue';
import WidgetSubForm from './components/SubForm/WidgetSubForm.vue';
import WidgetTabs from './components/Tabs/WidgetTabs.vue';
export default {
components: {
Draggable,
WidgetFormItem,
WidgetSubForm,
WidgetTabs,
SvgIcon,
},
Expand Down
19 changes: 16 additions & 3 deletions src/component/form-designer/src/WidgetFormItem.vue
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<el-form-item class="widget-view"
v-if="element && element.key"
:class="{
active: selectWidget.key == element.key,
active:element && selectWidget && selectWidget.key == element.key,
'is_req': element.options.required
}"
:label-width="element.options.hiddenLabel ? '0' : labelWidth"
Expand Down Expand Up @@ -237,11 +237,22 @@
:loop="element.options.loop">
</Echarts>
</template>
<div class="widget-view-action" v-if="selectWidget.key == element.key">
<template v-if="element.type === 'form'">
<WidgetSubForm
v-if="element && element.key"
:key="element.key"
:element="element"
:select.sync="selectWidget"
:index="index"
:data="data"
@click.native.stop="handleSelectWidget(index)"
></WidgetSubForm>
</template>
<div class="widget-view-action" v-if="selectWidget && selectWidget.key == element.key">
<i class="el-icon el-icon-document-copy" @click.stop="handleWidgetClone(index)"></i>
<i class="el-icon el-icon-delete-solid" @click.stop="handleWidgetDelete(index)"></i>
</div>
<div class="widget-view-drag" v-if="selectWidget.key == element.key">
<div class="widget-view-drag" v-if="selectWidget && selectWidget.key == element.key">
<i class="drag-widget el-icon el-icon-rank"></i>
</div>
<div class="widget-view-model"><span>{{element.model}}</span></div>
Expand All @@ -255,6 +266,7 @@ import lineChart from './components/Charts/lineChart.vue';
import pieChart from './components/Charts/pieChart.vue';
import Echarts from './components/Charts/Echarts.vue';
import AvatarUpload from './components/AvatarUpload/AvatarUpload.vue';
import WidgetSubForm from './components/SubForm/WidgetSubForm.vue';
export default {
name: 'WidgetFormItem',
Expand Down Expand Up @@ -287,6 +299,7 @@ export default {
Echarts,
AvatarUpload,
TreeSelect,
WidgetSubForm,
},
data() {
return {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,16 +51,6 @@
</div>
</transition-group>
</Draggable>
<div class="widget-view-action widget-col-action" v-if="selectWidget.key == element.key">
<i class="el-icon el-icon-delete-solid" @click.stop="handleWidgetDelete(index)"></i>
</div>
<div class="widget-view-drag widget-col-drag" v-if="selectWidget.key == element.key">
<i class="drag-widget el-icon el-icon-rank"></i>
</div>
<div class="widget-view-model">
<span>{{ element.model }}</span>
<span v-if="element.options.tableName"> | {{ element.options.tableName }}表</span>
</div>
</div>
</template>

Expand Down Expand Up @@ -167,11 +157,6 @@ export default class WidgetSubForm extends Vue {
return null;
}

handleWidgetDelete(index) {
this.$nextTick(() => {
this.data.list.splice(index, 1);
});
}

get tableColumns() {
return this.element.tableColumns;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
</transition-group>
</Draggable>
</el-col>
<div class="widget-view-action widget-col-action" v-if="selectWidget.key == element.key">
<div class="widget-view-action widget-col-action" v-if="selectWidget && selectWidget.key == element.key">
<!-- 栅格布局自动加减 -->
<template v-if="element.type === 'grid'">
<i class="el-icon el-icon-circle-plus" @click.stop="handleGridAdd(element)"></i>
Expand All @@ -72,7 +72,7 @@
<i class="el-icon el-icon-delete-solid" @click.stop="handleWidgetDelete(index)"></i>
</div>

<div class="drag-widget widget-view-drag widget-col-drag" v-if="selectWidget.key == element.key">
<div class="drag-widget widget-view-drag widget-col-drag" v-if="selectWidget && selectWidget.key == element.key">
<i class="el-icon el-icon-rank"></i>
</div>
</el-row>
Expand All @@ -93,10 +93,10 @@
</Draggable>
</el-tab-pane>
</el-tabs>
<div class="widget-view-drag widget-col-drag" v-if="selectWidget.key == element.key">
<div class="widget-view-drag widget-col-drag" v-if="selectWidget && selectWidget.key == element.key">
<i class="drag-widget el-icon el-icon-rank"></i>
</div>
<div class="widget-view-action" v-if="selectWidget.key == element.key">
<div class="widget-view-action" v-if="selectWidget && selectWidget.key == element.key">
<i class="el-icon el-icon-delete-solid" @click.stop="handleWidgetDelete()"></i>
</div>
</div>
Expand Down
34 changes: 9 additions & 25 deletions src/component/form-designer/src/styles/index.scss
Original file line number Diff line number Diff line change
Expand Up @@ -250,14 +250,14 @@ $primary-background-color: #ecf5ff;
z-index: 9;
font-weight: 500;
}
&:after {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
display: block;
}
// &:after {
// position: absolute;
// left: 0;
// right: 0;
// top: 0;
// bottom: 0;
// display: block;
// }

&:hover {
background: $primary-background-color;
Expand Down Expand Up @@ -333,7 +333,7 @@ $primary-background-color: #ecf5ff;
z-index: 9;
i {
font-size: 14px;
color: white;
color: $primary-color;
margin: 0 5px;
cursor: pointer;
&:hover {
Expand Down Expand Up @@ -398,22 +398,6 @@ $primary-background-color: #ecf5ff;
}
}

&.active {
outline: 1px solid #c11e72;
border: 1px solid #c11e72;
}

&:hover {
background: #fdf6ec;
outline: 1px solid #c11e72;
outline-offset: 0px;

&.active {
outline: 1px solid #c11e72;
border: 1px solid #c11e72;
outline-offset: 0;
}
}

.widget-view-action.widget-col-action {
background: #c11e72;
Expand Down

0 comments on commit b36c533

Please sign in to comment.