Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/attributePool/index.vue
@@ -18,10 +18,11 @@
          @current-change="currentChange"
        >
          <template slot="menuLeft" slot-scope="scope">
            <el-button icon="el-icon-plus" size="small" type="primary" @click="rowSaveHandlerClick">创建</el-button>
            <el-button icon="el-icon-plus" plain size="small" type="primary" @click="rowSaveHandlerClick">创建</el-button>
            <el-button icon="el-icon-delete" plain size="small" type="danger" @click="allDelHandler">删除</el-button>
            <el-button icon="el-icon-view" plain size="small" type="primary" @click="chekView">查看使用范围</el-button>
            <el-button icon="el-icon-download" plain size="small" type="primary" @click="downloadTemplateHandler">下载导入模板
            <el-button icon="el-icon-download" plain size="small" type="primary" @click="downloadTemplateHandler">
              下载导入模板
            </el-button>
            <el-button icon="el-icon-upload2" plain size="small" type="primary" @click="upLoadHandler">导入</el-button>
            <el-button icon="el-icon-download" plain size="small" type="primary" @click="downLoadHandler">导出</el-button>
@@ -45,19 +46,25 @@
              <template slot="label">
                名称
              </template>
              {{ lastItem.id }}
              <div style="width: 330px">
                {{ lastItem.id }}
              </div>
            </el-descriptions-item>
            <el-descriptions-item>
              <template slot="label">
                标签
              </template>
              {{ lastItem.name }}
              <div style="width: 330px">
                {{ lastItem.name }}
              </div>
            </el-descriptions-item>
            <el-descriptions-item>
              <template slot="label">
                描述
              </template>
              {{ lastItem.description }}
              <div style="width: 330px">
                {{ lastItem.description }}
              </div>
            </el-descriptions-item>
            <el-descriptions-item>
              <template slot="label">
@@ -75,9 +82,11 @@
              <template slot="label">
                允许为空
              </template>
              <el-tag :type="lastItem.nullableFlag ? 'success' : 'danger'">
                {{ lastItem.nullableFlag ? '是' : '否' }}
              </el-tag>
              <div style="width: 330px">
                <el-tag :type="lastItem.nullableFlag ? 'success' : 'danger'">
                  {{ lastItem.nullableFlag ? '是' : '否' }}
                </el-tag>
              </div>
            </el-descriptions-item>
            <el-descriptions-item v-if="accuracy">
              <template slot="label">
@@ -89,13 +98,17 @@
              <template slot="label">
                长度
              </template>
              {{ lastItem.attrLength }}
              <div style="width: 330px">
                {{ lastItem.attrLength }}
              </div>
            </el-descriptions-item>
            <el-descriptions-item>
              <template slot="label">
                默认值
              </template>
              {{ lastItem.defaultValue }}
              <div style="width: 330px">
                {{ lastItem.defaultValue }}
              </div>
            </el-descriptions-item>
          </el-descriptions>
@@ -106,33 +119,43 @@
              <template slot="label">
                当前类型
              </template>
              {{ lastItem.version ? '链接类型' : '业务类型' }}
              <div style="width: 345px">
                {{ lastItem.version ? '链接类型' : '业务类型' }}
              </div>
            </el-descriptions-item>
            <el-descriptions-item>
              <template slot="label">
                当前类型值
              </template>
              {{ lastItem.version ? lastItem.linkTypeName : lastItem.btmTypeId }}
              <div style="width: 345px">
                {{ lastItem.version ? lastItem.linkTypeName : lastItem.btmTypeId }}
              </div>
            </el-descriptions-item>
            <el-descriptions-item v-if="lastItem.version">
              <template slot="label">
                当前版本次
              </template>
              {{ lastItem.version }}
              <div style="width: 345px">
                {{ lastItem.version }}
              </div>
            </el-descriptions-item>
            <el-descriptions-item>
              <template slot="label">
                使用枚举
              </template>
              <el-tag :type="lastItem.enumId ? 'success' : 'danger'">
                {{ lastItem.enumId ? '是' : '否' }}
              </el-tag>
              <div style="width: 345px">
                <el-tag :type="lastItem.enumId ? 'success' : 'danger'">
                  {{ lastItem.enumId ? '是' : '否' }}
                </el-tag>
              </div>
            </el-descriptions-item>
            <el-descriptions-item>
              <template slot="label">
                当前枚举类型
              </template>
              {{ lastItem.enumId }}
              <div style="width: 345px">
                {{ lastItem.enumId }}
              </div>
            </el-descriptions-item>
            <el-descriptions-item>
              <template slot="label">
@@ -153,21 +176,25 @@
              <template slot="label">
                使用枚举
              </template>
              <el-tag :type="lastItem.enumFlag ? 'success' : 'danger'">
                {{ lastItem.enumFlag ? '是' : '否' }}
              </el-tag>
              <div style="width: 330px">
                <el-tag :type="lastItem.enumFlag ? 'success' : 'danger'">
                  {{ lastItem.enumFlag ? '是' : '否' }}
                </el-tag>
              </div>
            </el-descriptions-item>
            <el-descriptions-item>
              <template slot="label">
                枚举类型
              </template>
              {{ lastItem.enumFlag }}
              <div style="width: 330px">
                {{ lastItem.enumFlag }}
              </div>
            </el-descriptions-item>
            <el-descriptions-item>
              <template slot="label">
                取值范围
              </template>
              <div style="width: 330px; height: 80px;overflow: auto">
              <div style="width: 345px; height: 80px;overflow: auto">
                <el-tag v-for="item in rangeList" plain style="margin: 5px">{{ item }}</el-tag>
              </div>
            </el-descriptions-item>
@@ -202,105 +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>
@@ -326,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>
@@ -576,6 +604,7 @@
        addBtn: false,
        editBtn: false,
        delBtn: false,
        menuWidth: 160,
        column
      },
      tableLoading: false,
@@ -692,6 +721,7 @@
      });
    }
  },
  watch: {},
  methods: {
    //表格查询请求
    getTableList() {
@@ -737,8 +767,12 @@
        row,
        this.$refs.userCrud,
        this.lastIndex,
        (newIndex) => { this.lastIndex = newIndex; },
        () => { this.selectList = []; }
        (newIndex) => {
          this.lastIndex = newIndex;
        },
        () => {
          this.selectList = [];
        }
      );
    },
@@ -877,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;
    },
@@ -963,8 +1002,13 @@
      // 处理 '()' 运算符的情况
      if (val === '()') {
        let regex = /[,\[\]()]+/g;
        let firstValue = this.form.enumAddValue[0];
        let lastValue = this.form.enumAddValue[(this.form.enumAddValue.length - 1)];
        // 切割 enumAddValue 的逗号
        let values = this.form.enumAddValue.split(',').map(item => item.trim());
        let values = this.form.enumAddValue.split(regex).map(item => item.trim()).filter(item => item !== "");
        ;
        // 检查是否有有效的值
        if (values.length < 2 || values.some(item => item === '')) {
@@ -987,7 +1031,7 @@
        }
        // 构建 newValue 的形式 (值1,值2)
        let newValue = `(${values.join(',')})`;
        let newValue = `${firstValue}${values.join(',')}${lastValue}`;
        // 检查新的值是否已存在
        if (currentRangeArray.includes(newValue)) {
@@ -1037,9 +1081,6 @@
    // 选择参照
    referFormFocusHandler() {
      this.form.enumSwitch = false;
      this.form.rangeValue = "";
      this.form.enumId = "";
      const handlers = {
        business: () => {
          this.businessVisible = true;
@@ -1134,6 +1175,7 @@
      this.form.referValue = this.businessRow.name;
      this.businessVisible = false;
    },
    // 业务类型清空
@@ -1213,38 +1255,44 @@
        linkTypeName: "",
        rangeValue: ""
      };
      if (this.dialogTitle === 'add') {
        this.form.range = this.form.rangeValue.replace(/\n/g, ';');
        if (this.form.attributeSelectType === 'business') {
          this.form.btmTypeId = this.form.referValue;
        } else {
          this.form.linkTypeName = this.form.referValue;
        }
        addAttribute(this.form).then(res => {
          if (res.data.code === 200) {
            this.$message.success(res.data.obj);
            this.getTableList();
            this.form = form;
            this.addVisible = false;
      this.$refs.form.validate((valid) => {
        if (valid) {
          if (this.dialogTitle === 'add') {
            this.form.range = this.form.rangeValue ? this.form.rangeValue.replace(/\n/g, ';') : '';
            if (this.form.attributeSelectType === 'business') {
              this.form.btmTypeId = this.form.referValue;
            } else {
              this.form.linkTypeName = this.form.referValue;
            }
            addAttribute(this.form).then(res => {
              if (res.data.code === 200) {
                this.$message.success(res.data.obj);
                this.getTableList();
                this.form = form;
                this.addVisible = false;
              }
            })
          }
        })
      }
      if (this.dialogTitle === 'edit') {
        this.form.range = this.form.rangeValue.replace(/\n/g, ';');
        if (this.form.attributeSelectType === 'business') {
          this.form.btmTypeId = this.form.referValue;
        } else {
          this.form.linkTypeName = this.form.referValue;
        }
        updateAttribute(this.form).then(res => {
          if (res.data.code === 200) {
            this.$message.success(res.data.obj);
            this.getTableList();
            this.form = form;
            this.addVisible = false;
          if (this.dialogTitle === 'edit') {
            this.form.range = this.form.rangeValue ? this.form.rangeValue.replace(/\n/g, ';') : '';
            if (this.form.attributeSelectType === 'business') {
              this.form.btmTypeId = this.form.referValue;
            } else {
              this.form.linkTypeName = this.form.referValue;
            }
            updateAttribute(this.form).then(res => {
              if (res.data.code === 200) {
                this.$message.success(res.data.obj);
                this.getTableList();
                this.form = form;
                this.addVisible = false;
              }
            })
          }
        })
      }
        } else {
          return false;
        }
      });
    },
    // 导入