基于若依的ruoyi-nbcio流程管理系统基于form-generator的表单设计器增加子表单的一种简单方法(一)

简介: 基于若依的ruoyi-nbcio流程管理系统基于form-generator的表单设计器增加子表单的一种简单方法(一)

更多ruoyi-nbcio功能请看演示系统

gitee源代码地址

前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio

演示地址:RuoYi-Nbcio后台管理系统

更多nbcio-boot功能请看演示系统

gitee源代码地址

后端代码: https://gitee.com/nbacheng/nbcio-boot

前端代码:https://gitee.com/nbacheng/nbcio-vue.git

在线演示(包括H5) : http://218.75.87.38:9888

原先form-generator没有子表单的布局,所以考虑增加一个,当然后面还要支持子表。

1、config.js里增加下面的一个高级组件面板

// 高级型组件 【左面板】
export const seniorComponents = [
  {
    __config__: {
      tipLabel: "",
      showLabel: false,
      tagIcon: "table",
      label: '子表',
      tag: "sf-input-table",
      className: [],
      defaultValue: [],
      layout: "rowFormItem",
      dragDisabled: false,
      showTitle: true,
      type: "table",
      rowType: "table",
      children: [],
      tableName: "",
    },
    showAddBtn: true,
    showDeleteBtn: true,
    disabled: false,
    actionText: "添加",
    addType: 0,
    defaultValue: []
  }
]

2、在DraggableItem.vue里的rowFormItem增加下面代码

if (currentItem.__config__.tag === 'sf-input-table') {
      let tip = ''
      if (!currentItem.__config__.children.length) {
        tip = <div class="table-tip">请将组件拖到此区域(可拖多个组件)</div>
      }
      let toolTip = currentItem.__config__.label
      if (currentItem.__config__.tipLabel && currentItem.__config__.label) {
        toolTip = <span slot="label">{currentItem.__config__.label}
          <el-tooltip placement="top" content={currentItem.__config__.tipLabel}>
            <a class='el-icon-question tooltip-question content-name'></a>
          </el-tooltip>
        </span >
      }
      return (
        <el-col span={currentItem.__config__.span}>
          <el-row gutter={currentItem.__config__.gutter} class={className + ' drawing-row-item-table'}
            nativeOnClick={event => { activeItem(currentItem); event.stopPropagation() }}>
            <span class="component-name" >{toolTip} </span>
            {tip}
            <el-form label-position="top">
              <draggable list={currentItem.__config__.children} animation={340} group="componentsGroup" class="drag-wrapper table-wrapper" >
                {child}
              </draggable>
            </el-form>
            {components.itemBtns.apply(this, arguments)}
          </el-row>
        </el-col>
      )
    }

3、RightPanel.vue里增加下面代码

<template v-if="activeData.__config__.tag==='sf-input-table'">
            
            <el-form-item label="提示">
              <el-input type="textarea" :rows="2" v-model="activeData.__config__.tipLabel"
                placeholder="请输入提示" />
            </el-form-item>
            <el-form-item label="关联子表">
              <el-select v-model="activeData.__config__.tableName" placeholder="请选择数据库表"
                v-hasPermi="['tool:gen:list']" @change="tableChange" filterable clearable>
                <el-option v-for="item in tableList" :key="item.tableName" :value="item.tableName"
                  :label="item.tableName?item.tableComment+'('+item.tableName+')':item.tableComment">
                  <span >
                    {{ item.tableName?item.tableComment+'('+item.tableName+')':item.tableComment}}
                  </span>
                  <span>{{item.sub==false?'主表':'从表'}}</span>
                </el-option>
              </el-select>
            </el-form-item>
            <table-config :active-data="activeData"/>
          </template>

4、效果图如下:


相关文章
|
8月前
|
移动开发 前端开发
基于若依的ruoyi-nbcio流程管理系统一种简单的动态表单模拟测试实现(三)
基于若依的ruoyi-nbcio流程管理系统一种简单的动态表单模拟测试实现(三)
84 2
|
8月前
|
JSON 移动开发 前端开发
基于若依的ruoyi-nbcio流程管理系统一种简单的动态表单模拟测试实现(二)
基于若依的ruoyi-nbcio流程管理系统一种简单的动态表单模拟测试实现(二)
100 2
|
8月前
|
移动开发 前端开发 数据库
基于若依的ruoyi-nbcio流程管理系统一种简单的动态表单模拟测试实现(一)
基于若依的ruoyi-nbcio流程管理系统一种简单的动态表单模拟测试实现(一)
90 1
|
8月前
|
移动开发 前端开发
基于若依的ruoyi-nbcio流程管理系统一种简单的动态表单模拟测试实现(四)
基于若依的ruoyi-nbcio流程管理系统一种简单的动态表单模拟测试实现(四)
98 1
|
8月前
|
移动开发 前端开发
基于若依的ruoyi-nbcio流程管理系统自定义业务实现一种简单的动态任务标题需求
基于若依的ruoyi-nbcio流程管理系统自定义业务实现一种简单的动态任务标题需求
106 1
|
8月前
|
移动开发 前端开发
基于若依的ruoyi-nbcio流程管理系统自定义业务实现一种简单的动态任务标题(续)
基于若依的ruoyi-nbcio流程管理系统自定义业务实现一种简单的动态任务标题(续)
59 1
|
8月前
|
移动开发 前端开发
基于若依的ruoyi-nbcio流程管理系统自定义业务回写状态的一种新方法(二)
基于若依的ruoyi-nbcio流程管理系统自定义业务回写状态的一种新方法(二)
89 2
|
8月前
|
移动开发 前端开发
基于若依的ruoyi-nbcio流程管理系统自定义业务回写状态的一种新方法(一)
基于若依的ruoyi-nbcio流程管理系统自定义业务回写状态的一种新方法(一)
92 1
|
8月前
|
前端开发 数据库
基于若依的ruoyi-nbcio流程管理系统增加流程节点配置(二)
基于若依的ruoyi-nbcio流程管理系统增加流程节点配置(二)
133 1
|
8月前
|
移动开发 前端开发
基于若依的ruoyi-nbcio流程管理系统一种简单的动态表单模拟测试实现(五)
基于若依的ruoyi-nbcio流程管理系统一种简单的动态表单模拟测试实现(五)
133 0

热门文章

最新文章