Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/attributePool/index.vue
@@ -229,103 +229,104 @@
      width="65%"
      @close="addEscHandler"
    >
      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
        <el-row>
          <div class="addDialog">
            <div>
              <h3>属性项</h3>
              <el-col :span="12">
                <el-form-item label="名称:" prop="id">
                  <el-input v-model="form.id"></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="标签:" prop="name">
                  <el-input v-model="form.name"></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="属性类型:" prop="attributeDataType">
                  <el-select v-model="form.attributeDataType" placeholder="请选择属性类型" @change="attributeDataTypeChange">
                    <el-option v-for="item in typeSelectList" :label="item" :value="item"></el-option>
                  </el-select>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="描述:" prop="description">
                  <el-input v-model="form.description" :rows="2" type="textarea"></el-input>
                </el-form-item>
              </el-col>
            </div>
            <div v-if="!hideType" class="addDialogBottom">
              <div class="left">
                <h3>{{ form.attributeDataType }}</h3>
                <el-form-item
                  v-if="form.attributeDataType !== 'VTInteger' && form.attributeDataType !== 'VTLong'
                  && form.attributeDataType !== 'VTDouble' && form.attributeDataType !== 'VTBoolean'"
                  label="长度:" prop="attrLength">
                  <el-input v-model="form.attrLength"></el-input>
                </el-form-item>
                <el-form-item v-if="form.attributeDataType === 'VTDouble'" label="精度:" prop="precisionLength">
                  <el-input v-model="form.precisionLength"></el-input>
                </el-form-item>
                <el-form-item v-if="form.attributeDataType === 'VTDouble'" label="长度:" prop="scaleLength">
                  <el-input v-model="form.scaleLength"></el-input>
                </el-form-item>
                <el-form-item v-if="form.attributeDataType !== 'VTBoolean' && !form.enumSwitch" label="默认值:"
                              prop="defaultValue">
                  <el-input v-model="form.defaultValue"></el-input>
                </el-form-item>
                <el-form-item v-if="form.attributeDataType === 'VTBoolean'" label="默认值:" prop="defaultValue">
                  <el-select v-model="form.defaultValue">
                    <el-option label="false" value="false"></el-option>
                    <el-option label="true" value="true"></el-option>
                  </el-select>
                </el-form-item>
                <el-form-item v-if="form.attributeDataType !== 'VTBoolean' && form.enumSwitch" label="默认值:"
                              prop="defaultValue">
                  <el-select v-model="form.defaultValue">
                    <el-option v-for="(item,index) in rangeOptionValue" :key="index" :label="item"
                               :value="item"></el-option>
                  </el-select>
                </el-form-item>
                <el-form-item label="允许为空:" prop="nullableFlag">
                  <el-switch v-model="form.nullableFlag"></el-switch>
                </el-form-item>
      <div style="height: 650px">
        <el-form ref="form" :model="form" :rules="rules" label-width="120px" size="small">
          <el-row>
            <div class="addDialog">
              <div>
                <h3>属性项</h3>
                <el-col :span="12">
                  <el-form-item label="名称:" prop="id">
                    <el-input v-model="form.id"></el-input>
                  </el-form-item>
                </el-col>
                <el-col :span="12">
                  <el-form-item label="标签:" prop="name">
                    <el-input v-model="form.name"></el-input>
                  </el-form-item>
                </el-col>
                <el-col :span="12">
                  <el-form-item label="属性类型:" prop="attributeDataType">
                    <el-select v-model="form.attributeDataType" placeholder="请选择属性类型" @change="attributeDataTypeChange">
                      <el-option v-for="item in typeSelectList" :label="item" :value="item"></el-option>
                    </el-select>
                  </el-form-item>
                </el-col>
                <el-col :span="12">
                  <el-form-item label="描述:" prop="description">
                    <el-input v-model="form.description" :rows="2" type="textarea"></el-input>
                  </el-form-item>
                </el-col>
              </div>
              <el-divider direction="vertical"></el-divider>
              <!--  VTString   -->
              <div v-if="form.attributeDataType === 'VTString'" class="right">
                <h3>值域</h3>
                <el-form-item label="当前值域类型:" prop="attributeSelectType">
                  <el-select v-model="form.attributeSelectType" placeholder="请选择属性类型"
                             @change="attributeSelectTypeChange">
                    <el-option label="业务类型" value="business"></el-option>
                    <el-option label="链接类型" value="link"></el-option>
                  </el-select>
                </el-form-item>
              <div v-if="!hideType" class="addDialogBottom">
                <div class="left">
                  <h3>{{ form.attributeDataType }}</h3>
                <el-form-item v-if="form.attributeSelectType === 'link'" label="版本次:" prop="version">
                  <el-select v-model="form.version" placeholder="请选择版本次">
                    <el-option :value="1" label="当前版本次"></el-option>
                    <el-option :value="3" label="最新版本次"></el-option>
                  </el-select>
                </el-form-item>
                  <el-form-item
                    v-if="form.attributeDataType !== 'VTInteger' && form.attributeDataType !== 'VTLong'
                  && form.attributeDataType !== 'VTDouble' && form.attributeDataType !== 'VTBoolean'"
                    label="长度:" prop="attrLength">
                    <el-input v-model="form.attrLength"></el-input>
                  </el-form-item>
                <el-form-item label="选择参照类型:" prop="referValue">
                  <el-input v-model="form.referValue" @focus="referFormFocusHandler"></el-input>
                </el-form-item>
                  <el-form-item v-if="form.attributeDataType === 'VTDouble'" label="精度:" prop="precisionLength">
                    <el-input v-model="form.precisionLength"></el-input>
                  </el-form-item>
                <span v-if="!form.referValue">
                  <el-form-item v-if="form.attributeDataType === 'VTDouble'" label="长度:" prop="scaleLength">
                    <el-input v-model="form.scaleLength"></el-input>
                  </el-form-item>
                  <el-form-item v-if="form.attributeDataType !== 'VTBoolean' && !form.enumSwitch" label="默认值:"
                                prop="defaultValue">
                    <el-input v-model="form.defaultValue"></el-input>
                  </el-form-item>
                  <el-form-item v-if="form.attributeDataType === 'VTBoolean'" label="默认值:" prop="defaultValue">
                    <el-select v-model="form.defaultValue">
                      <el-option label="false" value="false"></el-option>
                      <el-option label="true" value="true"></el-option>
                    </el-select>
                  </el-form-item>
                  <el-form-item v-if="form.attributeDataType !== 'VTBoolean' && form.enumSwitch" label="默认值:"
                                prop="defaultValue">
                    <el-select v-model="form.defaultValue">
                      <el-option v-for="(item,index) in rangeOptionValue" :key="index" :label="item"
                                 :value="item"></el-option>
                    </el-select>
                  </el-form-item>
                  <el-form-item label="允许为空:" prop="nullableFlag">
                    <el-switch v-model="form.nullableFlag"></el-switch>
                  </el-form-item>
                </div>
                <el-divider direction="vertical"></el-divider>
                <!--  VTString   -->
                <div v-if="form.attributeDataType === 'VTString'" class="right">
                  <h3>值域</h3>
                  <el-form-item label="当前值域类型:" prop="attributeSelectType">
                    <el-select v-model="form.attributeSelectType" placeholder="请选择属性类型"
                               @change="attributeSelectTypeChange">
                      <el-option label="业务类型" value="business"></el-option>
                      <el-option label="链接类型" value="link"></el-option>
                    </el-select>
                  </el-form-item>
                  <el-form-item v-if="form.attributeSelectType === 'link'" label="版本次:" prop="version">
                    <el-select v-model="form.version" placeholder="请选择版本次">
                      <el-option :value="1" label="当前版本次"></el-option>
                      <el-option :value="3" label="最新版本次"></el-option>
                    </el-select>
                  </el-form-item>
                  <el-form-item label="选择参照类型:" prop="referValue">
                    <el-input v-model="form.referValue" @focus="referFormFocusHandler"></el-input>
                  </el-form-item>
                  <span v-if="!form.referValue">
                <el-form-item label="使用枚举:" prop="enumSwitch">
                  <el-switch v-model="form.enumSwitch" @change="switchEnumChange"></el-switch>
                </el-form-item>
@@ -351,122 +352,124 @@
                  </textarea>
                </el-form-item>
                </span>
              </div>
              <!--  VTInteger VTLong   -->
              <div v-if="form.attributeDataType === 'VTInteger' || form.attributeDataType === 'VTLong' " class="right">
                <h3>值域</h3>
                </div>
                <!--  VTInteger VTLong   -->
                <div v-if="form.attributeDataType === 'VTInteger' || form.attributeDataType === 'VTLong' "
                     class="right">
                  <h3>值域</h3>
                <el-form-item label="使用枚举:" prop="enumSwitch">
                  <el-switch v-model="form.enumSwitch" @change="switchEnumChange"></el-switch>
                </el-form-item>
                  <el-form-item label="使用枚举:" prop="enumSwitch">
                    <el-switch v-model="form.enumSwitch" @change="switchEnumChange"></el-switch>
                  </el-form-item>
                <el-form-item :label="form.enumSwitch ? '枚举选择:' : '添加值域:'" prop="enumSwitch">
                  <el-select v-if="form.enumSwitch" v-model="form.enumId" placeholder="请选择枚举类型"
                             @change="enumSelectChange">
                    <el-option v-for="(item,index) in attributeDataTypePickList" :key="index" :label="item.key"
                               :value="item.key"></el-option>
                  </el-select>
                  <el-input v-if="!form.enumSwitch" v-model="form.enumAddValue">
                  </el-input>
                </el-form-item>
                <el-form-item v-if="!form.enumSwitch" label="运算符:">
                  <div>
                    <el-button size="mini" @click="operationHandler('>')"> ></el-button>
                    <el-button size="mini" @click="operationHandler('<')"> <</el-button>
                    <el-button size="mini" @click="operationHandler('>=')"> >=</el-button>
                    <el-button size="mini" @click="operationHandler('<=')"> <=</el-button>
                    <el-button size="mini" @click="operationHandler('=')"> =</el-button>
                    <el-button size="mini" @click="operationHandler('!=')"> !=</el-button>
                    <el-button size="mini" @click="operationHandler('()')"> ([])</el-button>
                  </div>
                </el-form-item>
                <el-form-item :label="form.enumSwitch ? '当前枚举值:' : '当前值域:'" prop="rangeValue">
                  <el-form-item :label="form.enumSwitch ? '枚举选择:' : '添加值域:'" prop="enumSwitch">
                    <el-select v-if="form.enumSwitch" v-model="form.enumId" placeholder="请选择枚举类型"
                               @change="enumSelectChange">
                      <el-option v-for="(item,index) in attributeDataTypePickList" :key="index" :label="item.key"
                                 :value="item.key"></el-option>
                    </el-select>
                    <el-input v-if="!form.enumSwitch" v-model="form.enumAddValue">
                    </el-input>
                  </el-form-item>
                  <el-form-item v-if="!form.enumSwitch" label="运算符:">
                    <div>
                      <el-button size="mini" @click="operationHandler('>')"> ></el-button>
                      <el-button size="mini" @click="operationHandler('<')"> <</el-button>
                      <el-button size="mini" @click="operationHandler('>=')"> >=</el-button>
                      <el-button size="mini" @click="operationHandler('<=')"> <=</el-button>
                      <el-button size="mini" @click="operationHandler('=')"> =</el-button>
                      <el-button size="mini" @click="operationHandler('!=')"> !=</el-button>
                      <el-button size="mini" @click="operationHandler('()')"> ([])</el-button>
                    </div>
                  </el-form-item>
                  <el-form-item :label="form.enumSwitch ? '当前枚举值:' : '当前值域:'" prop="rangeValue">
                  <textarea v-model="form.rangeValue" :readonly="form.enumSwitch"
                            style="width: 330px; height: 80px; border: 1px solid #DCDFE6; overflow: auto; text-align: left;resize: none;">
                  </textarea>
                </el-form-item>
              </div>
              <!--   VTDouble    -->
              <div v-if="form.attributeDataType === 'VTDouble'" class="right">
                <h3>值域</h3>
                <el-form-item :label="form.enumSwitch ? '枚举选择:' : '添加值域:'" prop="enumAddValue">
                  <el-input v-model="form.enumAddValue">
                  </el-input>
                </el-form-item>
                <el-form-item label="运算符:">
                  <div>
                    <el-button size="mini" @click="operationHandler('>')"> ></el-button>
                    <el-button size="mini" @click="operationHandler('<')"> <</el-button>
                    <el-button size="mini" @click="operationHandler('>=')"> >=</el-button>
                    <el-button size="mini" @click="operationHandler('<=')"> <=</el-button>
                    <el-button size="mini" @click="operationHandler('=')"> =</el-button>
                    <el-button size="mini" @click="operationHandler('!=')"> !=</el-button>
                    <el-button size="mini" @click="operationHandler('()')">([])</el-button>
                  </div>
                </el-form-item>
                <el-form-item :label="form.enumSwitch ? '当前枚举值:' : '当前值域:'" prop="rangeValue">
                  </el-form-item>
                </div>
                <!--   VTDouble    -->
                <div v-if="form.attributeDataType === 'VTDouble'" class="right">
                  <h3>值域</h3>
                  <el-form-item :label="form.enumSwitch ? '枚举选择:' : '添加值域:'" prop="enumAddValue">
                    <el-input v-model="form.enumAddValue">
                    </el-input>
                  </el-form-item>
                  <el-form-item label="运算符:">
                    <div>
                      <el-button size="mini" @click="operationHandler('>')"> ></el-button>
                      <el-button size="mini" @click="operationHandler('<')"> <</el-button>
                      <el-button size="mini" @click="operationHandler('>=')"> >=</el-button>
                      <el-button size="mini" @click="operationHandler('<=')"> <=</el-button>
                      <el-button size="mini" @click="operationHandler('=')"> =</el-button>
                      <el-button size="mini" @click="operationHandler('!=')"> !=</el-button>
                      <el-button size="mini" @click="operationHandler('()')">([])</el-button>
                    </div>
                  </el-form-item>
                  <el-form-item :label="form.enumSwitch ? '当前枚举值:' : '当前值域:'" prop="rangeValue">
                  <textarea v-model="form.rangeValue"
                            style="width: 330px; height: 80px; border: 1px solid #DCDFE6; overflow: auto; text-align: left;resize: none;">
                  </textarea>
                </el-form-item>
                  </el-form-item>
                </div>
              </div>
            </div>
          </div>
        </el-row>
      </el-form>
          </el-row>
        </el-form>
      <!-- 业务类型对话框      -->
      <el-dialog
        v-dialogDrag
        :visible.sync="businessVisible"
        append-to-body="true"
        class="avue-dialog"
        title="业务类型选择"
        width="70%"
      >
        <avue-crud
          ref="businessCrud"
          :data="businessData"
          :option="businessOption"
          :table-loading="businessLoading"
          @search-change="businessHandleSearch"
          @search-reset="businessHandleReset"
          @row-click="businessRowClick"
        <!-- 业务类型对话框      -->
        <el-dialog
          v-dialogDrag
          :visible.sync="businessVisible"
          append-to-body="true"
          class="avue-dialog"
          title="业务类型选择"
          width="70%"
        >
        </avue-crud>
        <span slot="footer" class="dialog-footer">
          <avue-crud
            ref="businessCrud"
            :data="businessData"
            :option="businessOption"
            :table-loading="businessLoading"
            @search-change="businessHandleSearch"
            @search-reset="businessHandleReset"
            @row-click="businessRowClick"
          >
          </avue-crud>
          <span slot="footer" class="dialog-footer">
          <el-button @click="businessEmpty">清 空</el-button>
         <el-button @click="businessVisible = false">取 消</el-button>
         <el-button type="primary" @click="businessSaveHandler">确 定</el-button>
        </span>
      </el-dialog>
        </el-dialog>
      <!-- 链接类型对话框      -->
      <el-dialog
        v-dialogDrag
        :visible.sync="linkTypeVisible"
        append-to-body="true"
        class="avue-dialog"
        title="链接类型选择"
        width="70%"
      >
        <avue-crud
          ref="linkTypeCrud"
          :data="linkTypeData"
          :option="linkTypeOption"
          :table-loading="linkTypeLoading"
          @search-change="linkHandleSearch"
          @search-reset="linkHandleReset"
          @row-click="linkRowClick"
        <!-- 链接类型对话框      -->
        <el-dialog
          v-dialogDrag
          :visible.sync="linkTypeVisible"
          append-to-body="true"
          class="avue-dialog"
          title="链接类型选择"
          width="70%"
        >
        </avue-crud>
        <span slot="footer" class="dialog-footer">
          <avue-crud
            ref="linkTypeCrud"
            :data="linkTypeData"
            :option="linkTypeOption"
            :table-loading="linkTypeLoading"
            @search-change="linkHandleSearch"
            @search-reset="linkHandleReset"
            @row-click="linkRowClick"
          >
          </avue-crud>
          <span slot="footer" class="dialog-footer">
          <el-button @click="linkEmpty">清 空</el-button>
         <el-button @click="linkTypeVisible = false">取 消</el-button>
         <el-button type="primary" @click="linkSaveHandler">确 定</el-button>
        </span>
      </el-dialog>
        </el-dialog>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="addEscHandler">取 消</el-button>
        <el-button type="primary" @click="addSaveHandler">确 定</el-button>
@@ -718,6 +721,7 @@
      });
    }
  },
  watch: {},
  methods: {
    //表格查询请求
    getTableList() {
@@ -907,8 +911,13 @@
        this.form.attributeSelectType = 'link'
        this.form.referValue = row.linkTypeName;
      }
      if (!row.btmTypeId && !row.linkTypeName) {
        this.form.attributeSelectType = 'business'
        this.form.referValue = row.btmTypeId;
      }
      // console.log(row);
      this.getEnumMapByTypeHandler(this.form.attributeDataType)
      this.getEnumMapByTypeHandler(this.form.attributeDataType);
      this.addVisible = true;
    },
@@ -1072,9 +1081,6 @@
    // 选择参照
    referFormFocusHandler() {
      this.form.enumSwitch = false;
      this.form.rangeValue = "";
      this.form.enumId = "";
      const handlers = {
        business: () => {
          this.businessVisible = true;
@@ -1169,6 +1175,7 @@
      this.form.referValue = this.businessRow.name;
      this.businessVisible = false;
    },
    // 业务类型清空