ludc
2024-12-04 e405b861b9521f5ea38c5402203a5b05988f9de2
Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/formDialog.vue
@@ -76,29 +76,28 @@
                                   type="primary"></el-button>
                      </div>
                      <el-input
                          v-if="item.itemType === 'textarea' || item.itemType === 'richtext' || item.itemType === 'webeditor'"
                          v-model="item.value"
                          :placeholder="item.text">
                        v-if="item.itemType === 'textarea' || item.itemType === 'richtext' || item.itemType === 'webeditor'"
                        v-model="item.value"
                        :placeholder="item.text">
                      </el-input>
                      <el-input-number size="mini" v-if="item.itemType === 'number'" v-model="item.value" :max="99999"
                                       :min="1"></el-input-number>
                      <el-input-number v-if="item.itemType === 'number'" v-model="item.value" :max="99999" :min="1"
                                       size="mini"></el-input-number>
                      <el-input v-if="item.itemType === 'password'" v-model="input" placeholder="请输入密码"
                                show-password></el-input>
                      <el-radio v-if="item.itemType === 'radio'" v-model="item.value"></el-radio>
                      <el-checkbox v-if="item.itemType === 'checkbox'" v-model="item.value"></el-checkbox>
                      <el-select  v-if="item.itemType === 'select' || item.itemType === 'multiselect'"
                      <el-select v-if="item.itemType === 'select' || item.itemType === 'multiselect'"
                                 v-model="item.value" :disabled="false" placeholder="请选择" size="mini">
                      </el-select>
                      <el-date-picker
                        class="formItemMargin"
                        v-if="item.itemType === 'date' || item.itemType === 'datetime'"
                        v-model="item.value"
                        :placeholder="item.itemType === 'date' ? '请选择日期' : '请选择日期时间'"
                        class="formItemMargin"
                        type="date">
                      </el-date-picker>
                      <el-time-select
                        class="formItemMargin"
                        v-if="item.itemType === 'time'"
                        v-model="item.value"
                        :picker-options="{
@@ -106,6 +105,7 @@
                         step: '00:15',
                         end: '18:30'
                         }"
                        class="formItemMargin"
                        placeholder="选择时间">
                      </el-time-select>
                      <el-button v-if="item.itemType === 'file'"
@@ -147,9 +147,13 @@
                    <el-form-item label="使用字段">
                      <div style="display: flex;align-items: center">
                        <el-input v-model="form.text" :readonly="true" placeholder="请输入使用字段" size="mini"></el-input>
                        <el-checkbox v-model="form.itemIsEditable" true-label="1" false-label="0" style="margin-left: 5px; margin-right: 5px">只读
                        <el-checkbox v-model="form.itemIsEditable" false-label="0"
                                     style="margin-left: 5px; margin-right: 5px"
                                     true-label="1">只读
                        </el-checkbox>
                        <el-checkbox v-model="form.itemIsRequired" true-label="1" false-label="0" style="margin-left: 5px;margin-right: 0px">必填
                        <el-checkbox v-model="form.itemIsRequired" false-label="0"
                                     style="margin-left: 5px;margin-right: 0px"
                                     true-label="1">必填
                        </el-checkbox>
                      </div>
                    </el-form-item>
@@ -609,7 +613,8 @@
                  :show-header="false"
                  border
                  stripe
                  style="width: 100%">
                  style="width: 100%"
                  @row-click="customOptionTableClick">
                  <el-table-column
                    align="center"
                    label="名称"
@@ -632,7 +637,9 @@
                <el-button plain size="mini" style="margin-right: 5px" type="success"
                           @click="optionAddClickHandler('dialog')">添加
                </el-button>
                <el-button plain size="mini" style="margin-left: 5px" type="danger">删除</el-button>
                <el-button plain size="mini" style="margin-left: 5px" type="danger"
                           @click="optionDeleteClickHandler('dialog')">删除
                </el-button>
              </div>
            </el-form-item>
          </el-col>
@@ -731,8 +738,8 @@
                  :placeholder="item.text">
                </el-input>
                <el-input-number size="mini" v-if="item.itemType === 'number'" v-model="item.value" :max="99999"
                                 :min="1"></el-input-number>
                <el-input-number v-if="item.itemType === 'number'" v-model="item.value" :max="99999" :min="1"
                                 size="mini"></el-input-number>
                <el-input v-if="item.itemType === 'password'" v-model="input" placeholder="请输入密码"
                          show-password></el-input>
                <el-radio v-if="item.itemType === 'radio'" v-model="item.value"></el-radio>
@@ -806,10 +813,9 @@
<script>
import {getObjTypeQTs, getTreeAttributes, savePortalVI, refPersonOrgTree} from "@/api/UI/formDefine/api";
import {gridAttribute} from "@/api/modeling/attributePool/api";
import func from "@/util/func";
import basicOption from "@/util/basic-option";
import {gridAttribute} from "@/api/modeling/attributePool/api";
import {getSysModelTreeMenuByPID} from "@/api/systemModel/mangeModel/api";
export default {
  name: "formDialog",
@@ -1047,7 +1053,11 @@
          children: 'children',
        },
      },
      treeData: []
      treeData: [],
      optionRow: {},
      customOptionRow: {},
      optionCurrentIndex: 0,
      customOptionCurrentIndex: 0
    }
  },
  computed: {
@@ -1113,9 +1123,10 @@
        oid: data.oid,
        itemType: 'text',
        itemName: data.data.name,
        itemCols :"1"
        itemCols: "1",
        itemIsEditable: "0",
        itemIsRequired: "0",
      }
      console.log(data);
      const isDuplicate = this.formList.some(item => item.text === data.text);
      if (isDuplicate) {
@@ -1130,11 +1141,8 @@
      this.activeItem = item;
      this.activeItemIndex = index;
      this.form = {...item};
      // this.form.itemCols = "1";
      console.log(item);
      // console.log(item,index);
      this.topForm.position = index += 1;
      // this.$forceUpdate();
    },
    // 设置显示行数
@@ -1202,7 +1210,7 @@
        this.$message.error('请选择一条数据进行删除');
        return;
      }
      this.formList = this.formList.filter(item => item.text != this.activeItem.text);
      this.formList = this.formList.filter(item => item.text !== this.activeItem.text);
      this.activeItem = {};
      this.form = {};
    },
@@ -1236,7 +1244,12 @@
    // 选项表格行点击
    optionTableClick(row) {
      this.optionRow = row;
      console.log(row);
    },
    customOptionTableClick(row) {
      this.customOptionRow = row;
    },
    // 选项添加
@@ -1267,15 +1280,21 @@
      const params = {
        key: optionObj.optionName,
        value: optionObj.optionValue
        value: optionObj.optionValue,
        index: val === 'dialog' ? this.customOptionCurrentIndex++ : this.optionCurrentIndex++
      };
      itemKeyValueList.push(params);
    },
    // 选项删除
    optionDeleteClickHandler() {
    optionDeleteClickHandler(val) {
      // console.log(this.optionRow);
      if (val === 'dialog') {
        this.customForm.itemKeyValueList.splice(this.customOptionRow.index,1);
      } else {
        this.form.itemKeyValueList.splice(this.optionRow.index,1);
      }
    },
    // 添加自定义组件
@@ -1332,9 +1351,7 @@
      }
      if (!this.form.text) {
        this.$message.error('请在右侧选择数据后进行操作!');
        return;
      }
    },
    // 自定义组件修改显示类型
@@ -1421,9 +1438,12 @@
        this.$message.error('请添加一条数据进行保存!');
        return;
      }
      this.formList = this.formList.map(item =>
        item.text === this.form.text ? this.form : item
      );
      console.log(this.formList);
      this.$message.success('应用成功');
    },
@@ -1529,8 +1549,8 @@
  font-size: 14px
}
.formItemMargin{
  margin: 10px 0 10px 0;
}
//.formItemMargin {
//  margin: 10px 0 10px 0;
//}
</style>