田源
2024-08-29 edeb0b47f1052c2257a0f14c0e4b6499a6816cce
Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/formDialog.vue
@@ -5,26 +5,28 @@
    :visible.sync="visible"
    append-to-body="true"
    class="avue-dialog"
    title=""
    title="表单"
    width="100%"
    @close="closeDialog"
  >
    <el-container>
      <div style="height: 80vh;display: flex;width: 100%;">
      <div style="height: 79vh;display: flex;width: 100%;">
        <el-aside width="15%">
          <basic-container>
            <div style="height:650px;">
              <avue-tree
                :data="treeData"
                :option="treeOption"></avue-tree>
                :option="treeOption"
                @node-drag-start="handleDragStart">
              </avue-tree>
            </div>
          </basic-container>
        </el-aside>
        <el-main>
        <el-main >
          <basic-container>
            <div style="height: 650px">
            <div style="height: 645px" @drop="drop"  @dragover.prevent>
              <div style="display: flex;justify-content: center">
                <span style="display: flex;align-items: center; margin-right: 5px;">
                 <p class="tableTopLabel">名称:</p>
@@ -52,9 +54,9 @@
              <el-form ref="form" :model="form" :rules="rules" label-width="100px">
                <el-row>
                  <el-col :span="columnNumber">
                    <el-tooltip content="categoryoid.lastmodifytime" placement="top">
                      <el-form-item class="hiddenLabel" label="categoryoid.lastmodifytime">
                        <el-input v-model="user" placeholder="审批人"></el-input>
                    <el-tooltip v-for="(item,index) in formList" :key="index" :content="item.name" placement="top">
                      <el-form-item class="hiddenLabel" :label="item.name + ':'">
                        <el-input v-model="item.value" :splaceholder="item.name" size="mini"></el-input>
                      </el-form-item>
                    </el-tooltip>
                  </el-col>
@@ -104,7 +106,7 @@
                  <el-col :span="24">
                    <el-tooltip content="默认值表达式" placement="top">
                      <el-form-item label="默认值表达式" class="hiddenLabel">
                      <el-form-item class="hiddenLabel" label="默认值表达式">
                        <el-input v-model="user" placeholder="请输入内容" size="mini"></el-input>
                      </el-form-item>
                    </el-tooltip>
@@ -120,7 +122,7 @@
                  <el-col :span="24">
                    <el-tooltip content="日期格式化字符串" placement="top">
                      <el-form-item label="日期格式化字符串:" class="hiddenLabel">
                      <el-form-item class="hiddenLabel" label="日期格式化字符串:">
                        <el-input v-model="user" placeholder="请输入内容" size="mini"></el-input>
                      </el-form-item>
                    </el-tooltip>
@@ -147,7 +149,7 @@
                  <el-col :span="24" style="height: 90px">
                    <el-tooltip content="只读选择条件" placement="top">
                      <el-form-item label="只读选择条件" class="hiddenLabel">
                      <el-form-item class="hiddenLabel" label="只读选择条件">
                        <el-input
                          v-model="textarea2"
                          :rows="3"
@@ -181,7 +183,7 @@
                  </el-col>
                </el-row>
                <el-row style="margin-top: 10px;border-bottom: 1px solid #878585;padding-bottom: 10px"">
                <el-row style="margin-top: 10px;border-bottom: 1px solid #878585;padding-bottom: 10px">
                  <el-col :span="24" style="height: 90px">
                    <el-form-item label="脚本验证">
                      <el-input
@@ -219,22 +221,90 @@
                  </el-col>
                  <el-col :span="24">
                    <el-form-item label="存储路径" >
                    <el-form-item label="存储路径">
                      <el-input v-model="user" placeholder="请输入内容" size="mini"></el-input>
                    </el-form-item>
                  </el-col>
                  <el-col :span="24">
                    <el-tooltip content="存储路径字段" placement="top">
                    <el-form-item label="存储路径字段" class="hiddenLabel">
                      <div style="display: flex">
                        <el-input v-model="user" placeholder="请输入内容" size="mini"></el-input>
                        <el-checkbox v-model="checked" style="margin-left: 5px">http存储</el-checkbox>
                      </div>
                    </el-form-item>
                      <el-form-item class="hiddenLabel" label="存储路径字段">
                        <div style="display: flex">
                          <el-input v-model="user" placeholder="请输入内容" size="mini"></el-input>
                          <el-checkbox v-model="checked" style="margin-left: 5px">http存储</el-checkbox>
                        </div>
                      </el-form-item>
                    </el-tooltip>
                  </el-col>
                </el-row>
                <el-row style="margin-top: 10px;border-bottom: 1px solid #878585;padding-bottom: 10px">
                  <h4>选项列表</h4>
                  <el-col :span="12">
                    <el-form-item label="名称">
                      <el-input v-model="user" placeholder="请输入内容" size="mini"></el-input>
                    </el-form-item>
                  </el-col>
                  <el-col :span="12">
                    <el-form-item class="rightLabel" label="值" label-width="95px">
                      <el-input v-model="user" placeholder="请输入内容" size="mini"></el-input>
                    </el-form-item>
                  </el-col>
                  <el-col :span="24" style="height: 190px">
                    <el-form-item>
                      <div style="height: 150px; width: 100%; border: 1px solid #bdbbbb;overflow-y: auto">
                        <el-table
                          :data="optionRightData"
                          :highlight-current-row="true"
                          :show-header="false"
                          border
                          stripe
                          style="width: 100%">
                          <el-table-column
                            align="center"
                            label="名称"
                            prop="name">
                            <template slot-scope="scope">
                              <el-tag size="medium">{{ scope.row.name }}</el-tag>
                            </template>
                          </el-table-column>
                          <el-table-column
                            align="center"
                            label="值"
                            prop="value">
                            <template slot-scope="scope">
                              <el-tag size="medium">{{ scope.row.value }}</el-tag>
                            </template>
                          </el-table-column>
                        </el-table>
                      </div>
                      <div style="display: flex;align-items: center;justify-content: center;margin-top: 5px">
                        <el-button plain size="mini" style="margin-right: 5px" type="success">添加</el-button>
                        <el-button plain size="mini" style="margin-left: 5px" type="danger">删除</el-button>
                      </div>
                    </el-form-item>
                  </el-col>
                  <el-col :span="24">
                    <el-form-item label="一级参照">
                      <el-input v-model="user" placeholder="请输入内容" size="mini"></el-input>
                    </el-form-item>
                  </el-col>
                  <el-col :span="24">
                    <el-form-item label="二级参照">
                      <el-input v-model="user" placeholder="请输入内容" size="mini"></el-input>
                    </el-form-item>
                  </el-col>
                  <el-col :span="24">
                    <el-form-item label="参照值">
                      <el-input v-model="user" placeholder="请输入内容" size="mini"></el-input>
                    </el-form-item>
                  </el-col>
                </el-row>
                <el-row style="margin-top: 10px">
@@ -250,6 +320,7 @@
                    </el-form-item>
                  </el-col>
                </el-row>
              </el-form>
            </div>
          </basic-container>
@@ -262,10 +333,18 @@
</template>
<script>
export default {
  name: "formDialog",
  data() {
    return {
      formList:[],
      optionRightData: [
        {
          name: 'test',
          value: 'test'
        }
      ],
      form: {},
      rules: {},
      columnNumber: 12,
@@ -274,6 +353,13 @@
      treeOption: {
        menu: false,
        addBtn: false,
        draggable: true,
        allowDrop: () => {
          return false;
        },
        allowDrag: () => {
          return true;
        },
        // props: {
        //   label: 'name',
        //   value: 'id',
@@ -462,6 +548,25 @@
  methods: {
    // 关闭对话框
    closeDialog() {
    },
    // 开始拖拽树节点事件
    handleDragStart(node, ev) {
      // 使用 setData 方法设置数据
      ev.dataTransfer.setData('item', JSON.stringify(node.data));
    },
    // 拖拽到表单时
    drop(event) {
      // 使用 getData 方法获取数据
      const data = JSON.parse(event.dataTransfer.getData('item'));
      console.log('data', data);
      const params = {
        name:data.label,
        value:'',
        type:''
      }
      this.formList.push(params)
    }
  }
}
@@ -469,7 +574,7 @@
<style lang="scss" scoped>
::v-deep {
  .hiddenLabel{
  .hiddenLabel {
    .el-form-item__label {
      white-space: nowrap; // 防止换行
      overflow: hidden; //隐藏超出部分