ludc
2024-04-16 953ca145afcb93191617d75f77f9d6196480d3ae
Merge remote-tracking branch 'origin/master'
已修改1个文件
121 ■■■■ 文件已修改
Source/UBCS-WEB/src/views/integration/integrationIndex.vue 121 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/integration/integrationIndex.vue
@@ -51,9 +51,9 @@
                       @selection-change="selectionChange"
                       @select-all="handleSelectAll">
              <template slot="menuLeft">
                <el-button :disabled="disabledPush" icon="el-icon-plus" size="small" type="primary"
                           @click="dialogPush = true">新 增
                </el-button>
<!--                <el-button :disabled="disabledPush" icon="el-icon-plus" size="small" type="primary"-->
<!--                           @click="dialogPush = true">新 增-->
<!--                </el-button>-->
                <el-button icon="el-icon-check" size="small" type="primary" @click="handleSave">保 存
                </el-button>
                <el-button icon="el-icon-connection" size="small" type="primary"
@@ -90,6 +90,7 @@
  listCodeAttributeByClassId,
  syncClassifyModel
} from '@/api/integration/integration.js'
import {getPage} from "@/api/omd/OmdAttribute";
export default {
  components: {
@@ -113,6 +114,7 @@
      highlightCurrentRow: true,
    }
    return {
      targetNameList: [], // 元数据返回名称
      defaultCheckedKeys: [],
      isNodeDisabled: true,
      // 表单值
@@ -167,6 +169,19 @@
        rowKey: 'oid',
        selection: false,
        refreshBtn: false,
        delBtn: false,
        addBtn: false,
        index: true,
        columnBtn: false,
        searchShow: true,
        emptyBtn: false,
        searchBtn: false,
        searchShowBtn: false,
        cellBtn: true,
        border: true,
        searchMenuSpan: 8,
        highlightCurrentRow: true,
        $cellEdit:true,
        column: [
          {label: '集团分类', prop: 'sourceClassifyName', minWidth: 80},
          {label: '所属视图', prop: 'viewName', minWidth: 80},
@@ -175,17 +190,25 @@
          {
            label: '属性名称',
            prop: 'targetAttrName',
            minWidth: 80,
          },
          {
            label: '默认值',
            prop: 'defaultValue',
            minWidth: 140,
            type: 'select',
            cell: true,
            blur: (value) => window.handleBlur(value, 'mapping')
            allowCreate: true,
            filterable: true,
            minWidth: 80,
            props:{
              label:'targetAttrName',
              value:'targetAttrName'
            },
            dicData: this.targetNameList,
          },
          // {
          //   label: '默认值',
          //   prop: 'defaultValue',
          //   minWidth: 140,
          //   cell: true,
          //   blur: (value) => window.handleBlur(value, 'mapping')
          // },
        ],
        ...options
      },
      // 主数据分类树
      treeData: [],
@@ -231,7 +254,6 @@
  mounted() {
    let that = this
    window.handleBlur = that.handleBlur
  },
  computed: {
    filtermapping() {
@@ -242,9 +264,23 @@
        return obj.targetAttrName
      })
      return transfer
    },
    targetColumn() {
      return this.optionMapping.column.find(column => column.prop === 'targetAttrName');
    }
  },
  methods: {
    getTargetName(data) {
      this.targetColumn.dicData = data.filter(item => item.name && item.name.trim() !== "") // 过滤掉name为空的属性
        .map(item => {
          return {
            targetAttrId: item.oid,
            targetAttrKey: item.id,
            targetAttrName: item.name,
            disabled:false
          }
        });
    },
    // 接口左侧树
    async getReferCodeClassifyTree() {
      this.treeData = []
@@ -268,7 +304,13 @@
      if (response.status === 200) {
        this.loading = false
        this.mappingData = response.data.data
        // console.log(this.filtermapping)
        for (const item of this.mappingData){
          if(item.targetAttrName && item.targetAttrId && item.targetAttrKey){
            const targetObject = this.targetColumn.dicData.find(obj => obj.targetAttrName === item.targetAttrName);
            targetObject.disabled = true;
          }
        }
      }
    },
    // 接口获取属性映射取值范围
@@ -288,6 +330,7 @@
      if (response.status === 200) {
        const data = response.data.data
        this.transferData = data;
        this.getTargetName(data)
        // console.log(data)
      }
    },
@@ -374,6 +417,16 @@
    },
    // 保存按钮
    async handleSave() {
      const getTargetCorresponding = (row) =>{
        return this.targetColumn.dicData.find(column => column.targetAttrName === row.targetAttrName);
      }
      for (const item of this.mappingData) {
        item.$cellEdit = false;
        if(item.targetAttrName){
          const { targetAttrId, targetAttrKey, targetAttrName } = await getTargetCorresponding(item);
          Object.assign(item, { targetAttrId, targetAttrKey, targetAttrName });
        }
      }
      const response = await batchAddSave({dockingPreAttrMappingVOList: this.mappingData})
      if (response.status === 200) {
        this.$message({
@@ -481,13 +534,37 @@
      done();
    },
    // 属性取值范围单元格编辑后
    handleMapingUpdate(row, index, done) {
      this.$message({
        showClose: true,
        message: "修改成功",
        type: "success",
      });
      done();
    async handleMapingUpdate(row, index, done) {
      const getTargetCorresponding = async (row) => {
        return this.targetColumn.dicData.find(column => column.targetAttrName === row.targetAttrName);
      };
      try {
        if (!row.targetAttrName) {
          this.$message.warning('请选择要保存的属性名称!');
          done();
          return;
        }
        // 获取目标属性信息
        const { targetAttrId, targetAttrKey, targetAttrName } = await getTargetCorresponding(row);
        // 更新行数据
        Object.assign(row, { targetAttrId, targetAttrKey, targetAttrName });
        const response = await batchAddSave({ dockingPreAttrMappingVOList: this.mappingData });
        if (response.status === 200) {
          this.$message({
            type: "success",
            message: "修改成功!"
          });
        }
      } catch (error) {
        console.error('处理映射更新时出错:', error);
      } finally {
        done();
      }
    },
    // 集团映射属性选择(单选)
    selectionChange(selection) {
@@ -536,5 +613,9 @@
  .el-transfer-panel {
    width: 270px;
  }
  .el-scrollbar__view  {
    height: 100px ;
  }
}
</style>