| | |
| | | <template> |
| | | <div> |
| | | <el-container style="height: 100%; border: 1px solid #fff"> |
| | | <el-card :style="{ marginRight: '10px' }"> |
| | | <el-aside width="300px" style="background-color: #fff"> |
| | | <el-input placeholder="输入关键字进行过滤" v-model="filterText"> |
| | | </el-input> |
| | | <el-menu :default-openeds="['1', '3']"> |
| | | <el-tree class="filter-tree" :data="treeData" accordion :props="defaultProps" |
| | | :filter-node-method="filterNode" empty-text="暂无数据" ref="tree" @node-click="handelTreeCell"> |
| | | </el-tree> |
| | | </el-menu> |
| | | </el-aside> |
| | | </el-card> |
| | | <el-main> |
| | | <el-card> |
| | | <el-form :model="form"> |
| | | <el-form-item label="集团分类" label-width="70px" size="small"> |
| | | <el-select clearable ref="selectTree" v-model="form.groupValue" placeholder="请选择" |
| | | popper-class="popperTreeSelect"> |
| | | <el-option :value="groupVal" :label="groupVal"> |
| | | <el-tree ref="groupTree" :data="groupTreeData" empty-text="暂无数据" :props="defaultProps" |
| | | @node-click="handleNodeClick"> |
| | | </el-tree> |
| | | </el-option> |
| | | </el-select> |
| | | <div> |
| | | <el-container style="height: 100%; border: 1px solid #fff"> |
| | | <el-card style="margin-right: 10px;height: calc(100vh - 125px);overflow: auto"> |
| | | <el-aside style="background-color: #fff;" width="210px"> |
| | | <el-input v-model="filterText" placeholder="输入关键字进行过滤"> |
| | | </el-input> |
| | | <el-menu :default-openeds="['1', '3']"> |
| | | <el-tree ref="tree" :data="treeData" :filter-node-method="filterNode" :props="defaultProps" |
| | | accordion class="filter-tree" empty-text="暂无数据" @node-click="handelTreeCell"> |
| | | <template slot-scope="{ node, data }" class="el-tree-node__label"> |
| | | <el-tooltip :content="$createElement('div', { domProps: { innerHTML: node.label } })" class="item" |
| | | effect="dark" |
| | | open-delay="500" |
| | | placement="right-start"> |
| | | <span style="font-size: 14px;"> |
| | | {{ (node || {}).label }} |
| | | </span> |
| | | </el-tooltip> |
| | | </template> |
| | | </el-tree> |
| | | </el-menu> |
| | | </el-aside> |
| | | </el-card> |
| | | <el-main> |
| | | <el-card style="height: calc(100vh - 128px)"> |
| | | <el-form :model="form"> |
| | | <el-form-item label="集团分类" label-width="80px" size="small"> |
| | | <el-select ref="selectTree" v-model="groupVal" clearable placeholder="请选择" |
| | | popper-class="popperTreeSelect"> |
| | | <el-option :disabled="true" :label="groupVal" :value="groupVal"> |
| | | <el-tree ref="groupTree" |
| | | :data="groupTreeData" |
| | | :default-checked-keys="defaultCheckedKeys" |
| | | :default-expanded-keys="defaultCheckedKeys" |
| | | :props="defaultProps" |
| | | empty-text="暂无数据" |
| | | node-key="oid" |
| | | show-checkbox |
| | | @check="handleCheck"> |
| | | </el-tree> |
| | | </el-option> |
| | | </el-select> |
| | | |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-card> |
| | | <avue-crud :table-loading="loading" :data="mappingData" :option="optionMapping" ref="crudMapping" |
| | | @row-update="handleMapingUpdate" @row-click="handleMapingClick" |
| | | @row-dblclick="handleMapingRowClick" @selection-change="selectionChange" |
| | | @select="setCurrentRow" @select-all="handleSelectAll"> |
| | | <template slot="menuLeft"> |
| | | <el-button icon="el-icon-plus" size="small" type="primary" :disabled="disabledPush" @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" @click="handleSync">同步模型 |
| | | </el-button> |
| | | </template> |
| | | </avue-crud> |
| | | </el-card> |
| | | <el-card :style="{ marginTop: '20px' }"> |
| | | <avue-crud :data="rangeData" :option="optinoRange" ref="crudRange" @row-update="handleUpdate" |
| | | @row-dblclick="handleRowClick"> |
| | | </avue-crud> |
| | | </el-card> |
| | | </el-card> |
| | | </el-main> |
| | | </el-container> |
| | | <el-dialog title="编码属性" :visible.sync="dialogPush" append-to-body="true" destroy-on-close width="30%" |
| | | :before-close="handleClose"> |
| | | <el-form :model="form"> |
| | | <el-form-item label="查询条件" label-width="70px" size="small"> |
| | | <el-input v-model="form.name" autocomplete="off" @change="handleQuery"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <p class="text_tip">*选择分类进行属性过滤, 或者输入属性的全拼或者简拼进行查询! 如: 姓名 (可输入xm或xinming )</p> |
| | | <transfer v-model="transferValue" :data="transferData" :filter-method="filterMethod" |
| | | filter-placeholder="请输入拼音全拼或者拼音缩写" :props="transferProps"></transfer> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="dialogPush = false">取 消</el-button> |
| | | <el-button type="primary" @click="handelTransferSave">保 存</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-card style="height:38vh"> |
| | | <avue-crud ref="crudMapping" :data="mappingData" :option="optionMapping" :table-loading="loading" |
| | | @select="setCurrentRow" @row-update="handleMapingUpdate" |
| | | @row-click="handleMapingClick" @row-dblclick="handleMapingRowClick" |
| | | @selection-change="selectionChange" |
| | | @select-all="handleSelectAll"> |
| | | <template slot="radio" |
| | | slot-scope="{row}"> |
| | | |
| | | <el-radio v-model="selectRow" :label="row.$index">-</el-radio> |
| | | </template> |
| | | <template slot="menuLeft"> |
| | | <!-- <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" |
| | | @click="handleSync('all')">同步主模型 |
| | | </el-button> |
| | | <el-button icon="el-icon-connection" size="small" type="primary" |
| | | @click="handleSync('one')">同步详细模型 |
| | | </el-button> |
| | | <el-button icon="el-icon-coordinate" size="small" type="primary" |
| | | @click="handlerAuto">自动填充 |
| | | </el-button> |
| | | </template> |
| | | </avue-crud> |
| | | </el-card> |
| | | <el-card style="margin-top: 10px;height: 38vh"> |
| | | <avue-crud ref="crudRange" :data="rangeData" :option="optinoRange" :style="{ marginTop: '-20px'}" |
| | | @row-update="handleUpdate" |
| | | @row-dblclick="handleRowClick"> |
| | | <template slot="menuLeft"> |
| | | <el-button icon="el-icon-coordinate" size="small" type="primary" |
| | | @click="handlerBottomAuto">自动填充 |
| | | </el-button> |
| | | </template> |
| | | </avue-crud> |
| | | </el-card> |
| | | </el-card> |
| | | </el-main> |
| | | </el-container> |
| | | <integration-transfer :data="transferData" :disabledData="filtermapping" :props="transferProps" |
| | | :visible.sync="dialogPush" @save="handelTransferSave"></integration-transfer> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import transfer from '@/components/transfer/index' |
| | | import integrationTransfer from './integrationTransfer.vue' |
| | | import pinyin from 'js-pinyin' |
| | | import { referCodeClassifyTree, referTree, gridAttrMapping, gridAttrRanges, batchAddSave, listCodeAttributeByClassId, syncClassifyModel } from '@/api/integration/integration.js' |
| | | import { |
| | | referCodeClassifyTree, |
| | | referTree, |
| | | gridAttrMapping, |
| | | gridAttrRanges, |
| | | batchAddSave, |
| | | listCodeAttributeByClassId, |
| | | syncClassifyModel |
| | | } from '@/api/integration/integration.js' |
| | | import {getByGroupAttrMapping, getEnumAttrByClsOidAndAttrId} from "@/api/vciAttrbute"; |
| | | |
| | | export default { |
| | | components: { |
| | | transfer |
| | | }, |
| | | name:'Integration', |
| | | data() { |
| | | const mappingData = [ |
| | | { "oid": "38CF1759-FBF3-44E7-AC45-F6E9A9C3B322", "id": "", "name": "", "description": "", "revisionOid": "b9065e46-6d03-4d11-b1a6-6cffc54e6835", "nameOid": "e6e429f2-0539-4ada-8174-43b37625e7d9", "btmname": "japplyform", "lastR": "1", "firstR": "1", "lastV": "1", "firstV": "1", "creator": "0", "createTime": "2023-06-02 10:57:58", "lastModifier": "0", "lastModifyTime": "2023-06-02 10:57:58", "revisionRule": "", "revisionSeq": 1, "revisionValue": "", "versionRule": "0", "versionSeq": 1, "versionValue": "1", "lcStatus": "", "lcStatusText": "", "ts": "2023-06-02 10:57:58.648", "owner": "1", "copyFromVersion": "", "secretGrade": -1, "secretGradeText": "", "lctid": "", "data": {}, "defaultValue": "", "metaListId": "XJ-799D8-6721-3D79-8EE3-75DAF0680B7E", "sourceClassifyId": "XJ-FC9B6-FE27-241F-5FCA-ED4DC17CF95B", "sourceClassifyName": "产品", "targetAttrId": "", "targetClassifyId": "D2DC11DD-B28A-8874-B656-10A1E0569FF3", "viewModeId": "XJ-B5416-4928-CFB8-84F5-1955AA890764", "viewModeName": "", "targetAttrKey": "", "targetAttrName": "", "sourceAttrKey": "createtime", "sourceAttrName": "创建时间", "viewModelName": "", "viewName": "销售视图", "targetClassifyName": "螺栓", "dockingPreAttrRangeVoList": [], "$cellEdit": false, "$index": 0 }, { "oid": "BB3FAA38-636E-410F-A995-F9BC38EBFF01", "id": "", "name": "", "description": "", "revisionOid": "c4500a61-0c5b-4d3e-b0ea-439203273255", "nameOid": "74d13371-e8b7-49c2-b184-f9b8339a4855", "btmname": "japplyform", "lastR": "1", "firstR": "1", "lastV": "1", "firstV": "1", "creator": "0", "createTime": "2023-06-02 10:57:58", "lastModifier": "0", "lastModifyTime": "2023-06-02 10:57:58", "revisionRule": "", "revisionSeq": 1, "revisionValue": "", "versionRule": "0", "versionSeq": 1, "versionValue": "1", "lcStatus": "", "lcStatusText": "", "ts": "2023-06-02 10:57:58.648", "owner": "1", "copyFromVersion": "", "secretGrade": -1, "secretGradeText": "", "lctid": "", "data": {}, "defaultValue": "", "metaListId": "XJ-9368E-9BA8-38E8-73F3-7D0531A22009", "sourceClassifyId": "XJ-FC9B6-FE27-241F-5FCA-ED4DC17CF95B", "sourceClassifyName": "产品", "targetAttrId": "", "targetClassifyId": "D2DC11DD-B28A-8874-B656-10A1E0569FF3", "viewModeId": "XJ-B5416-4928-CFB8-84F5-1955AA890764", "viewModeName": "", "targetAttrKey": "", "targetAttrName": "", "sourceAttrKey": "lastmodifier", "sourceAttrName": "最后修改人", "viewModelName": "", "viewName": "销售视图", "targetClassifyName": "螺栓", "dockingPreAttrRangeVoList": [], "$cellEdit": false, "$index": 1 }, { "oid": "B730F997-9D98-46DA-B783-ABF256898B2C", "id": "", "name": "", "description": "", "revisionOid": "df82c828-5c88-4725-b362-88863d28c273", "nameOid": "132ed359-3464-41cb-89bf-e36b30fb7b5e", "btmname": "japplyform", "lastR": "1", "firstR": "1", "lastV": "1", "firstV": "1", "creator": "0", "createTime": "2023-06-02 10:57:58", "lastModifier": "0", "lastModifyTime": "2023-06-02 10:57:58", "revisionRule": "", "revisionSeq": 1, "revisionValue": "", "versionRule": "0", "versionSeq": 1, "versionValue": "1", "lcStatus": "", "lcStatusText": "", "ts": "2023-06-02 10:57:58.648", "owner": "1", "copyFromVersion": "", "secretGrade": -1, "secretGradeText": "", "lctid": "", "data": {}, "defaultValue": "", "metaListId": "XJ-B5416-4928-CFB8-84F5-1955AA890762", "sourceClassifyId": "XJ-FC9B6-FE27-241F-5FCA-ED4DC17CF95B", "sourceClassifyName": "产品", "targetAttrId": "", "targetClassifyId": "D2DC11DD-B28A-8874-B656-10A1E0569FF3", "viewModeId": "XJ-B5416-4928-CFB8-84F5-1955AA890762", "viewModeName": "", "targetAttrKey": "", "targetAttrName": "", "sourceAttrKey": "lastmodifytime", "sourceAttrName": "最后修改时间", "viewModelName": "", "viewName": "基本视图", "targetClassifyName": "螺栓", "dockingPreAttrRangeVoList": [], "$cellEdit": false, "$index": 2 }, { "oid": "354864DA-D613-4013-AEE5-803F1A972F77", "id": "", "name": "", "description": "", "revisionOid": "2e819333-6af0-4cc5-bc35-27494f825d46", "nameOid": "21b1d215-20b2-47e1-9225-a6b5b8b825b5", "btmname": "japplyform", "lastR": "1", "firstR": "1", "lastV": "1", "firstV": "1", "creator": "0", "createTime": "2023-06-02 10:57:58", "lastModifier": "0", "lastModifyTime": "2023-06-02 10:57:58", "revisionRule": "", "revisionSeq": 1, "revisionValue": "", "versionRule": "0", "versionSeq": 1, "versionValue": "1", "lcStatus": "", "lcStatusText": "", "ts": "2023-06-02 10:57:58.648", "owner": "1", "copyFromVersion": "", "secretGrade": -1, "secretGradeText": "", "lctid": "", "data": {}, "defaultValue": "", "metaListId": "XJ-0FED7-90B6-BAF8-B558-2A4693CAAD83", "sourceClassifyId": "XJ-FC9B6-FE27-241F-5FCA-ED4DC17CF95B", "sourceClassifyName": "产品", "targetAttrId": "", "targetClassifyId": "D2DC11DD-B28A-8874-B656-10A1E0569FF3", "viewModeId": "XJ-B5416-4928-CFB8-84F5-1955AA890762", "viewModeName": "", "targetAttrKey": "", "targetAttrName": "", "sourceAttrKey": "createcompany", "sourceAttrName": "创建公司", "viewModelName": "", "viewName": "基本视图", "targetClassifyName": "螺栓", "dockingPreAttrRangeVoList": [], "$cellEdit": false, "$index": 3 }, { "oid": "D8EDCA74-E0CB-452A-9E3C-7194061B9E8F", "id": "", "name": "", "description": "", "revisionOid": "d3474951-f35d-437b-818d-24dc1bd71e79", "nameOid": "b44b9c81-644f-47cb-babe-b19a9d532354", "btmname": "japplyform", "lastR": "1", "firstR": "1", "lastV": "1", "firstV": "1", "creator": "0", "createTime": "2023-06-02 10:57:58", "lastModifier": "0", "lastModifyTime": "2023-06-02 10:57:58", "revisionRule": "", "revisionSeq": 1, "revisionValue": "", "versionRule": "0", "versionSeq": 1, "versionValue": "1", "lcStatus": "", "lcStatusText": "", "ts": "2023-06-02 10:57:58.648", "owner": "1", "copyFromVersion": "", "secretGrade": -1, "secretGradeText": "", "lctid": "", "data": {}, "defaultValue": "", "metaListId": "XJ-1469D-F1E9-6A31-21B9-E5FF7A03BBEA", "sourceClassifyId": "XJ-FC9B6-FE27-241F-5FCA-ED4DC17CF95B", "sourceClassifyName": "产品", "targetAttrId": "", "targetClassifyId": "D2DC11DD-B28A-8874-B656-10A1E0569FF3", "viewModeId": "XJ-B5416-4928-CFB8-84F5-1955AA890762", "viewModeName": "", "targetAttrKey": "", "targetAttrName": "", "sourceAttrKey": "kucunwl", "sourceAttrName": "库存物料", "viewModelName": "", "viewName": "基本视图", "targetClassifyName": "螺栓", "dockingPreAttrRangeVoList": [], "$cellEdit": false, "$index": 4 }, { "oid": "471DAA41-AD8B-4289-BDF0-023D6F9CB36C", "id": "", "name": "", "description": "", "revisionOid": "a54eb585-727c-41e3-b171-398a7458743b", "nameOid": "75bd7a1e-498c-4f7a-b70b-5741e4af0109", "btmname": "japplyform", "lastR": "1", "firstR": "1", "lastV": "1", "firstV": "1", "creator": "0", "createTime": "2023-06-02 10:57:58", "lastModifier": "0", "lastModifyTime": "2023-06-02 10:57:58", "revisionRule": "", "revisionSeq": 1, "revisionValue": "", "versionRule": "0", "versionSeq": 1, "versionValue": "1", "lcStatus": "", "lcStatusText": "", "ts": "2023-06-02 10:57:58.648", "owner": "1", "copyFromVersion": "", "secretGrade": -1, "secretGradeText": "", "lctid": "", "data": {}, "defaultValue": "", "metaListId": "XJ-07512-3fff-4ff0-bf25-f13fcd2a4acf", "sourceClassifyId": "XJ-FC9B6-FE27-241F-5FCA-ED4DC17CF95B", "sourceClassifyName": "产品", "targetAttrId": "", "targetClassifyId": "D2DC11DD-B28A-8874-B656-10A1E0569FF3", "viewModeId": "XJ-B5416-4928-CFB8-84F5-1955AA890762", "viewModeName": "", "targetAttrKey": "", "targetAttrName": "", "sourceAttrKey": "id", "sourceAttrName": "编码", "viewModelName": "", "viewName": "基本视图", "targetClassifyName": "螺栓", "dockingPreAttrRangeVoList": [], "$cellEdit": false, "$index": 5 }, { "oid": "E53F6F6A-2F50-4C54-960B-B4FD428B375C", "id": "", "name": "", "description": "", "revisionOid": "0b01fc2f-a342-4177-bf6a-570aa8ac529c", "nameOid": "e2ee62eb-4508-41ec-8f5a-067e5ad81c16", "btmname": "japplyform", "lastR": "1", "firstR": "1", "lastV": "1", "firstV": "1", "creator": "0", "createTime": "2023-06-02 10:57:58", "lastModifier": "0", "lastModifyTime": "2023-06-02 10:57:58", "revisionRule": "", "revisionSeq": 1, "revisionValue": "", "versionRule": "0", "versionSeq": 1, "versionValue": "1", "lcStatus": "", "lcStatusText": "", "ts": "2023-06-02 10:57:58.648", "owner": "1", "copyFromVersion": "", "secretGrade": -1, "secretGradeText": "", "lctid": "", "data": {}, "defaultValue": "", "metaListId": "XJ-1fe09-da6f-4412-b92f-f411d341e92d", "sourceClassifyId": "XJ-FC9B6-FE27-241F-5FCA-ED4DC17CF95B", "sourceClassifyName": "产品", "targetAttrId": "", "targetClassifyId": "D2DC11DD-B28A-8874-B656-10A1E0569FF3", "viewModeId": "XJ-B5416-4928-CFB8-84F5-1955AA890762", "viewModeName": "", "targetAttrKey": "", "targetAttrName": "", "sourceAttrKey": "lcstatus", "sourceAttrName": "状态", "viewModelName": "", "viewName": "基本视图", "targetClassifyName": "螺栓", "dockingPreAttrRangeVoList": [], "$cellEdit": false, "$index": 6 }, { "oid": "A929D6F9-88DB-43BE-BE9C-E079E980A69B", "id": "", "name": "", "description": "", "revisionOid": "76a72660-8f93-46d8-8d3c-3f88baf60108", "nameOid": "96b675b6-3a3a-415b-873c-fc8bc014c699", "btmname": "japplyform", "lastR": "1", "firstR": "1", "lastV": "1", "firstV": "1", "creator": "0", "createTime": "2023-06-02 10:57:58", "lastModifier": "0", "lastModifyTime": "2023-06-02 10:57:58", "revisionRule": "", "revisionSeq": 1, "revisionValue": "", "versionRule": "0", "versionSeq": 1, "versionValue": "1", "lcStatus": "", "lcStatusText": "", "ts": "2023-06-02 10:57:58.648", "owner": "1", "copyFromVersion": "", "secretGrade": -1, "secretGradeText": "", "lctid": "", "data": {}, "defaultValue": "", "metaListId": "XJ-F8C09-A123-391B-E119-748B70028952", "sourceClassifyId": "XJ-FC9B6-FE27-241F-5FCA-ED4DC17CF95B", "sourceClassifyName": "产品", "targetAttrId": "", "targetClassifyId": "D2DC11DD-B28A-8874-B656-10A1E0569FF3", "viewModeId": "XJ-B5416-4928-CFB8-84F5-1955AA890762", "viewModeName": "", "targetAttrKey": "", "targetAttrName": "", "sourceAttrKey": "oldcode", "sourceAttrName": "历史编号", "viewModelName": "", "viewName": "基本视图", "targetClassifyName": "螺栓", "dockingPreAttrRangeVoList": [], "$cellEdit": false, "$index": 7 }, { "oid": "1CCC00C8-572A-40BC-AC6F-49A28D55FF4E", "id": "", "name": "", "description": "", "revisionOid": "6daea0b1-fe5c-460e-9541-c0ffffe894af", "nameOid": "98b38f61-a53a-425d-bb32-c9b8c05ce488", "btmname": "japplyform", "lastR": "1", "firstR": "1", "lastV": "1", "firstV": "1", "creator": "0", "createTime": "2023-06-02 10:57:58", "lastModifier": "0", "lastModifyTime": "2023-06-02 10:57:58", "revisionRule": "", "revisionSeq": 1, "revisionValue": "", "versionRule": "0", "versionSeq": 1, "versionValue": "1", "lcStatus": "", "lcStatusText": "", "ts": "2023-06-02 10:57:58.648", "owner": "1", "copyFromVersion": "", "secretGrade": -1, "secretGradeText": "", "lctid": "", "data": {}, "defaultValue": "", "metaListId": "XJ-9ab10-a3bf-4b51-b8c5-337132018f1d", "sourceClassifyId": "XJ-FC9B6-FE27-241F-5FCA-ED4DC17CF95B", "sourceClassifyName": "产品", "targetAttrId": "", "targetClassifyId": "D2DC11DD-B28A-8874-B656-10A1E0569FF3", "viewModeId": "XJ-B5416-4928-CFB8-84F5-1955AA890762", "viewModeName": "", "targetAttrKey": "", "targetAttrName": "", "sourceAttrKey": "name", "sourceAttrName": "物料名称", "viewModelName": "", "viewName": "基本视图", "targetClassifyName": "螺栓", "dockingPreAttrRangeVoList": [], "$cellEdit": false, "$index": 8 }, { "oid": "8968D5C3-4AE6-4A7B-9DCA-90382170C200", "id": "", "name": "", "description": "", "revisionOid": "e409f2df-88e5-4ee4-838e-3562d3e57625", "nameOid": "144d88b5-acd6-4235-be14-f3d1907eef1a", "btmname": "japplyform", "lastR": "1", "firstR": "1", "lastV": "1", "firstV": "1", "creator": "0", "createTime": "2023-06-02 10:57:58", "lastModifier": "0", "lastModifyTime": "2023-06-02 10:57:58", "revisionRule": "", "revisionSeq": 1, "revisionValue": "", "versionRule": "0", "versionSeq": 1, "versionValue": "1", "lcStatus": "", "lcStatusText": "", "ts": "2023-06-02 10:57:58.648", "owner": "1", "copyFromVersion": "", "secretGrade": -1, "secretGradeText": "", "lctid": "", "data": {}, "defaultValue": "", "metaListId": "XJ-F0DDF-C5DB-8616-D752-20360970AFB6", "sourceClassifyId": "XJ-FC9B6-FE27-241F-5FCA-ED4DC17CF95B", "sourceClassifyName": "产品", "targetAttrId": "", "targetClassifyId": "D2DC11DD-B28A-8874-B656-10A1E0569FF3", "viewModeId": "XJ-B5416-4928-CFB8-84F5-1955AA890763", "viewModeName": "", "targetAttrKey": "", "targetAttrName": "", "sourceAttrKey": "materialclassify", "sourceAttrName": "物料分类", "viewModelName": "", "viewName": "采购视图", "targetClassifyName": "螺栓", "dockingPreAttrRangeVoList": [], "$cellEdit": false, "$index": 9 }, { "oid": "55CBC959-7DF1-4B3B-83BC-1BD6484CA967", "id": "", "name": "", "description": "", "revisionOid": "eef610b7-5c56-4357-a6ff-677f99388300", "nameOid": "def770a7-3a5a-4c8f-85a4-36519de4b77e", "btmname": "japplyform", "lastR": "1", "firstR": "1", "lastV": "1", "firstV": "1", "creator": "0", "createTime": "2023-06-02 10:57:58", "lastModifier": "0", "lastModifyTime": "2023-06-02 10:57:58", "revisionRule": "", "revisionSeq": 1, "revisionValue": "", "versionRule": "0", "versionSeq": 1, "versionValue": "1", "lcStatus": "", "lcStatusText": "", "ts": "2023-06-02 10:57:58.648", "owner": "1", "copyFromVersion": "", "secretGrade": -1, "secretGradeText": "", "lctid": "", "data": {}, "defaultValue": "", "metaListId": "XJ-329e5-b881-4128-aea4-f1b8f67eb5e7", "sourceClassifyId": "XJ-FC9B6-FE27-241F-5FCA-ED4DC17CF95B", "sourceClassifyName": "产品", "targetAttrId": "", "targetClassifyId": "D2DC11DD-B28A-8874-B656-10A1E0569FF3", "viewModeId": "XJ-B5416-4928-CFB8-84F5-1955AA890763", "viewModeName": "", "targetAttrKey": "", "targetAttrName": "", "sourceAttrKey": "firstfl", "sourceAttrName": "一级管理分类", "viewModelName": "", "viewName": "采购视图", "targetClassifyName": "螺栓", "dockingPreAttrRangeVoList": [], "$cellEdit": false, "$index": 10 }, { "oid": "BD0CA234-065B-43A1-AFEE-555368DF927D", "id": "", "name": "", "description": "", "revisionOid": "34b0de1a-634a-495f-8a2b-51fec7c4d502", "nameOid": "0d8563c8-7c4d-4adf-95ff-a583e8594a63", "btmname": "japplyform", "lastR": "1", "firstR": "1", "lastV": "1", "firstV": "1", "creator": "0", "createTime": "2023-06-02 10:57:58", "lastModifier": "0", "lastModifyTime": "2023-06-02 10:57:58", "revisionRule": "", "revisionSeq": 1, "revisionValue": "", "versionRule": "0", "versionSeq": 1, "versionValue": "1", "lcStatus": "", "lcStatusText": "", "ts": "2023-06-02 10:57:58.648", "owner": "1", "copyFromVersion": "", "secretGrade": -1, "secretGradeText": "", "lctid": "", "data": {}, "defaultValue": "", "metaListId": "XJ-43fc3-a604-4fd8-a2c9-482712301285", "sourceClassifyId": "XJ-FC9B6-FE27-241F-5FCA-ED4DC17CF95B", "sourceClassifyName": "产品", "targetAttrId": "", "targetClassifyId": "D2DC11DD-B28A-8874-B656-10A1E0569FF3", "viewModeId": "XJ-B5416-4928-CFB8-84F5-1955AA890763", "viewModeName": "", "targetAttrKey": "", "targetAttrName": "", "sourceAttrKey": "secondfl", "sourceAttrName": "二级管理分类", "viewModelName": "", "viewName": "采购视图", "targetClassifyName": "螺栓", "dockingPreAttrRangeVoList": [], "$cellEdit": false, "$index": 11 }, { "oid": "C2F69279-BAD6-45B2-98A0-69F1E1DBD6E7", "id": "", "name": "", "description": "", "revisionOid": "4cb208a9-8e78-4d67-8498-c9a0f8430ad2", "nameOid": "2d14dfe4-272a-4884-9bb6-bb2461d37d5a", "btmname": "japplyform", "lastR": "1", "firstR": "1", "lastV": "1", "firstV": "1", "creator": "0", "createTime": "2023-06-02 10:57:58", "lastModifier": "0", "lastModifyTime": "2023-06-02 10:57:58", "revisionRule": "", "revisionSeq": 1, "revisionValue": "", "versionRule": "0", "versionSeq": 1, "versionValue": "1", "lcStatus": "", "lcStatusText": "", "ts": "2023-06-02 10:57:58.648", "owner": "1", "copyFromVersion": "", "secretGrade": -1, "secretGradeText": "", "lctid": "", "data": {}, "defaultValue": "", "metaListId": "XJ-8e06b-b297-4738-ad6d-0b1b0064ae3e", "sourceClassifyId": "XJ-FC9B6-FE27-241F-5FCA-ED4DC17CF95B", "sourceClassifyName": "产品", "targetAttrId": "", "targetClassifyId": "D2DC11DD-B28A-8874-B656-10A1E0569FF3", "viewModeId": "XJ-B5416-4928-CFB8-84F5-1955AA890763", "viewModeName": "", "targetAttrKey": "", "targetAttrName": "", "sourceAttrKey": "thrifl", "sourceAttrName": "三级管理分类", "viewModelName": "", "viewName": "采购视图", "targetClassifyName": "螺栓", "dockingPreAttrRangeVoList": [], "$cellEdit": false, "$index": 12 }, { "oid": "75FDBBFD-A69F-4B09-925D-583C1AF96307", "id": "", "name": "", "description": "", "revisionOid": "5a64c3be-bf36-41ce-8feb-34eac91ff3d4", "nameOid": "06a63d3a-db67-4b97-970a-403f1db18021", "btmname": "japplyform", "lastR": "1", "firstR": "1", "lastV": "1", "firstV": "1", "creator": "0", "createTime": "2023-06-02 10:57:58", "lastModifier": "0", "lastModifyTime": "2023-06-02 10:57:58", "revisionRule": "", "revisionSeq": 1, "revisionValue": "", "versionRule": "0", "versionSeq": 1, "versionValue": "1", "lcStatus": "", "lcStatusText": "", "ts": "2023-06-02 10:57:58.648", "owner": "1", "copyFromVersion": "", "secretGrade": -1, "secretGradeText": "", "lctid": "", "data": {}, "defaultValue": "", "metaListId": "XJ-618cd-475b-4235-8783-20fd3e19e397", "sourceClassifyId": "XJ-FC9B6-FE27-241F-5FCA-ED4DC17CF95B", "sourceClassifyName": "产品", "targetAttrId": "", "targetClassifyId": "D2DC11DD-B28A-8874-B656-10A1E0569FF3", "viewModeId": "XJ-B5416-4928-CFB8-84F5-1955AA890763", "viewModeName": "", "targetAttrKey": "", "targetAttrName": "", "sourceAttrKey": "xiaoshouwl", "sourceAttrName": "销售物料", "viewModelName": "", "viewName": "采购视图", "targetClassifyName": "螺栓", "dockingPreAttrRangeVoList": [], "$cellEdit": false, "$index": 13 }, { "oid": "6118CBF1-E0F1-4DE4-8801-4BB0E6C4F4EB", "id": "", "name": "", "description": "", "revisionOid": "b7216ddc-56bd-4f74-a247-b47c8fcbb661", "nameOid": "9772d9f8-93fa-4995-9802-79255bbbc6db", "btmname": "japplyform", "lastR": "1", "firstR": "1", "lastV": "1", "firstV": "1", "creator": "0", "createTime": "2023-06-02 10:57:58", "lastModifier": "0", "lastModifyTime": "2023-06-02 10:57:58", "revisionRule": "", "revisionSeq": 1, "revisionValue": "", "versionRule": "0", "versionSeq": 1, "versionValue": "1", "lcStatus": "", "lcStatusText": "", "ts": "2023-06-02 10:57:58.648", "owner": "1", "copyFromVersion": "", "secretGrade": -1, "secretGradeText": "", "lctid": "", "data": {}, "defaultValue": "", "metaListId": "XJ-3de12-01e3-4a96-9323-ee025f57fe75", "sourceClassifyId": "XJ-FC9B6-FE27-241F-5FCA-ED4DC17CF95B", "sourceClassifyName": "产品", "targetAttrId": "", "targetClassifyId": "D2DC11DD-B28A-8874-B656-10A1E0569FF3", "viewModeId": "XJ-B5416-4928-CFB8-84F5-1955AA890763", "viewModeName": "", "targetAttrKey": "", "targetAttrName": "", "sourceAttrKey": "xinghaoguige", "sourceAttrName": "规格型号", "viewModelName": "", "viewName": "采购视图", "targetClassifyName": "螺栓", "dockingPreAttrRangeVoList": [], "$cellEdit": false, "$index": 14 }, { "oid": "614E51BE-C77F-4723-9E3D-E6C73C85E4DA", "id": "", "name": "", "description": "", "revisionOid": "97b1e20e-ed0e-42a8-bf29-a009df5b5b08", "nameOid": "05626bfd-48f6-4401-b1fb-0b8ce5d4628b", "btmname": "japplyform", "lastR": "1", "firstR": "1", "lastV": "1", "firstV": "1", "creator": "0", "createTime": "2023-06-02 10:57:58", "lastModifier": "0", "lastModifyTime": "2023-06-02 10:57:58", "revisionRule": "", "revisionSeq": 1, "revisionValue": "", "versionRule": "0", "versionSeq": 1, "versionValue": "1", "lcStatus": "", "lcStatusText": "", "ts": "2023-06-02 10:57:58.648", "owner": "1", "copyFromVersion": "", "secretGrade": -1, "secretGradeText": "", "lctid": "", "data": {}, "defaultValue": "", "metaListId": "XJ-059FA-B513-114A-318C-9D7FB3E06736", "sourceClassifyId": "XJ-FC9B6-FE27-241F-5FCA-ED4DC17CF95B", "sourceClassifyName": "产品", "targetAttrId": "", "targetClassifyId": "D2DC11DD-B28A-8874-B656-10A1E0569FF3", "viewModeId": "XJ-B5416-4928-CFB8-84F5-1955AA890763", "viewModeName": "", "targetAttrKey": "", "targetAttrName": "", "sourceAttrKey": "jiliangdw", "sourceAttrName": "计量单位", "viewModelName": "", "viewName": "采购视图", "targetClassifyName": "螺栓", "dockingPreAttrRangeVoList": [], "$cellEdit": false, "$index": 15 }, { "oid": "D8FF1A88-D9E9-4585-A82F-B36B61EB89BF", "id": "", "name": "", "description": "", "revisionOid": "aaa415b8-3220-41b2-aeea-35dfe1d0f660", "nameOid": "6f167320-b672-45ba-985f-53bd2be5a7f6", "btmname": "japplyform", "lastR": "1", "firstR": "1", "lastV": "1", "firstV": "1", "creator": "0", "createTime": "2023-06-02 10:57:58", "lastModifier": "0", "lastModifyTime": "2023-06-02 10:57:58", "revisionRule": "", "revisionSeq": 1, "revisionValue": "", "versionRule": "0", "versionSeq": 1, "versionValue": "1", "lcStatus": "", "lcStatusText": "", "ts": "2023-06-02 10:57:58.648", "owner": "1", "copyFromVersion": "", "secretGrade": -1, "secretGradeText": "", "lctid": "", "data": {}, "defaultValue": "", "metaListId": "XJ-4C611-FC2A-C4EB-D85E-74B008515EAB", "sourceClassifyId": "XJ-FC9B6-FE27-241F-5FCA-ED4DC17CF95B", "sourceClassifyName": "产品", "targetAttrId": "", "targetClassifyId": "D2DC11DD-B28A-8874-B656-10A1E0569FF3", "viewModeId": "XJ-B5416-4928-CFB8-84F5-1955AA890763", "viewModeName": "", "targetAttrKey": "", "targetAttrName": "", "sourceAttrKey": "chukufangshi", "sourceAttrName": "出库方式", "viewModelName": "", "viewName": "采购视图", "targetClassifyName": "螺栓", "dockingPreAttrRangeVoList": [], "$cellEdit": false, "$index": 16 }, { "oid": "EF4ABCFB-755A-4F16-858E-43CF52FE6629", "id": "", "name": "", "description": "", "revisionOid": "589992f1-b6a9-4380-bab5-59f70c76b010", "nameOid": "57515957-02ed-40df-a0ad-745a59f87a67", "btmname": "japplyform", "lastR": "1", "firstR": "1", "lastV": "1", "firstV": "1", "creator": "0", "createTime": "2023-06-02 10:57:58", "lastModifier": "0", "lastModifyTime": "2023-06-02 10:57:58", "revisionRule": "", "revisionSeq": 1, "revisionValue": "", "versionRule": "0", "versionSeq": 1, "versionValue": "1", "lcStatus": "", "lcStatusText": "", "ts": "2023-06-02 10:57:58.648", "owner": "1", "copyFromVersion": "", "secretGrade": -1, "secretGradeText": "", "lctid": "", "data": {}, "defaultValue": "", "metaListId": "XJ-43953-2216-4171-b1a6-139244e63a95", "sourceClassifyId": "XJ-FC9B6-FE27-241F-5FCA-ED4DC17CF95B", "sourceClassifyName": "产品", "targetAttrId": "", "targetClassifyId": "D2DC11DD-B28A-8874-B656-10A1E0569FF3", "viewModeId": "XJ-B5416-4928-CFB8-84F5-1955AA890763", "viewModeName": "", "targetAttrKey": "", "targetAttrName": "", "sourceAttrKey": "description", "sourceAttrName": "备注说明", "viewModelName": "", "viewName": "采购视图", "targetClassifyName": "螺栓", "dockingPreAttrRangeVoList": [], "$cellEdit": false, "$index": 17 }, { "oid": "7EED66A2-9A94-4CDA-A475-964DA724F722", "id": "", "name": "", "description": "", "revisionOid": "70483c08-8c9a-4dc9-bd82-01f35bcebab1", "nameOid": "a568101c-6b70-4a3b-9022-7849c4167189", "btmname": "japplyform", "lastR": "1", "firstR": "1", "lastV": "1", "firstV": "1", "creator": "0", "createTime": "2023-06-02 10:57:58", "lastModifier": "0", "lastModifyTime": "2023-06-02 10:57:58", "revisionRule": "", "revisionSeq": 1, "revisionValue": "", "versionRule": "0", "versionSeq": 1, "versionValue": "1", "lcStatus": "", "lcStatusText": "", "ts": "2023-06-02 10:57:58.648", "owner": "1", "copyFromVersion": "", "secretGrade": -1, "secretGradeText": "", "lctid": "", "data": {}, "defaultValue": "", "metaListId": "XJ-D6882-1BA9-BBA6-2344-B433A6FDCA39", "sourceClassifyId": "XJ-FC9B6-FE27-241F-5FCA-ED4DC17CF95B", "sourceClassifyName": "产品", "targetAttrId": "", "targetClassifyId": "D2DC11DD-B28A-8874-B656-10A1E0569FF3", "viewModeId": "XJ-B5416-4928-CFB8-84F5-1955AA890763", "viewModeName": "", "targetAttrKey": "", "targetAttrName": "", "sourceAttrKey": "hesuanfenlei", "sourceAttrName": "核算分类", "viewModelName": "", "viewName": "采购视图", "targetClassifyName": "螺栓", "dockingPreAttrRangeVoList": [], "$cellEdit": false, "$index": 18 }, { "oid": "2A6DA1F1-AD1C-46D2-BC81-1BB116F790BD", "id": "", "name": "", "description": "", "revisionOid": "1b50dd67-638a-467d-b315-608007e7e440", "nameOid": "5ff49028-0e07-4ab3-bcfd-0a1469435696", "btmname": "japplyform", "lastR": "1", "firstR": "1", "lastV": "1", "firstV": "1", "creator": "0", "createTime": "2023-06-02 10:57:58", "lastModifier": "0", "lastModifyTime": "2023-06-02 10:57:58", "revisionRule": "", "revisionSeq": 1, "revisionValue": "", "versionRule": "0", "versionSeq": 1, "versionValue": "1", "lcStatus": "", "lcStatusText": "", "ts": "2023-06-02 10:57:58.648", "owner": "1", "copyFromVersion": "", "secretGrade": -1, "secretGradeText": "", "lctid": "", "data": {}, "defaultValue": "", "metaListId": "XJ-E34DA-ABF6-9813-8AB0-7651E4B2D54B", "sourceClassifyId": "XJ-FC9B6-FE27-241F-5FCA-ED4DC17CF95B", "sourceClassifyName": "产品", "targetAttrId": "", "targetClassifyId": "D2DC11DD-B28A-8874-B656-10A1E0569FF3", "viewModeId": "XJ-B5416-4928-CFB8-84F5-1955AA890764", "viewModeName": "", "targetAttrKey": "", "targetAttrName": "", "sourceAttrKey": "materialtype", "sourceAttrName": "物料类型", "viewModelName": "", "viewName": "销售视图", "targetClassifyName": "螺栓", "dockingPreAttrRangeVoList": [], "$cellEdit": false, "$index": 19 }, { "oid": "B6F71DAA-CAD0-498C-988D-6D14DDA55DED", "id": "", "name": "", "description": "", "revisionOid": "fb74ab8e-8f63-4542-925e-9d6c4ac9bc4c", "nameOid": "6e2ac133-2ac8-4739-b50b-6b4247f77881", "btmname": "japplyform", "lastR": "1", "firstR": "1", "lastV": "1", "firstV": "1", "creator": "0", "createTime": "2023-06-02 10:57:58", "lastModifier": "0", "lastModifyTime": "2023-06-02 10:57:58", "revisionRule": "", "revisionSeq": 1, "revisionValue": "", "versionRule": "0", "versionSeq": 1, "versionValue": "1", "lcStatus": "", "lcStatusText": "", "ts": "2023-06-02 10:57:58.648", "owner": "1", "copyFromVersion": "", "secretGrade": -1, "secretGradeText": "", "lctid": "", "data": {}, "defaultValue": "", "metaListId": "XJ-38D7E-E51A-81B3-558D-FF1212DFC757", "sourceClassifyId": "XJ-FC9B6-FE27-241F-5FCA-ED4DC17CF95B", "sourceClassifyName": "产品", "targetAttrId": "", "targetClassifyId": "D2DC11DD-B28A-8874-B656-10A1E0569FF3", "viewModeId": "XJ-B5416-4928-CFB8-84F5-1955AA890764", "viewModeName": "", "targetAttrKey": "", "targetAttrName": "", "sourceAttrKey": "tuhao", "sourceAttrName": "图号", "viewModelName": "", "viewName": "销售视图", "targetClassifyName": "螺栓", "dockingPreAttrRangeVoList": [], "$cellEdit": false, "$index": 20 }, { "oid": "1EE65761-7C78-4D1B-95FD-6CFEEA7A941E", "id": "", "name": "", "description": "", "revisionOid": "02a2f43f-e752-49d1-9abd-a67bbc563f67", "nameOid": "70937fe4-ca24-4afa-9517-09140811e4f7", "btmname": "japplyform", "lastR": "1", "firstR": "1", "lastV": "1", "firstV": "1", "creator": "0", "createTime": "2023-06-02 10:57:58", "lastModifier": "0", "lastModifyTime": "2023-06-02 10:57:58", "revisionRule": "", "revisionSeq": 1, "revisionValue": "", "versionRule": "0", "versionSeq": 1, "versionValue": "1", "lcStatus": "", "lcStatusText": "", "ts": "2023-06-02 10:57:58.648", "owner": "1", "copyFromVersion": "", "secretGrade": -1, "secretGradeText": "", "lctid": "", "data": {}, "defaultValue": "", "metaListId": "XJ-BF978-7354-CE66-415B-16ABD3ED036D", "sourceClassifyId": "XJ-FC9B6-FE27-241F-5FCA-ED4DC17CF95B", "sourceClassifyName": "产品", "targetAttrId": "", "targetClassifyId": "D2DC11DD-B28A-8874-B656-10A1E0569FF3", "viewModeId": "XJ-B5416-4928-CFB8-84F5-1955AA890764", "viewModeName": "", "targetAttrKey": "", "targetAttrName": "", "sourceAttrKey": "zhibaoqi", "sourceAttrName": "质保期", "viewModelName": "", "viewName": "销售视图", "targetClassifyName": "螺栓", "dockingPreAttrRangeVoList": [], "$cellEdit": false, "$index": 21 }, { "oid": "6D33C42D-3754-427E-8963-C4BB381A7B30", "id": "", "name": "", "description": "", "revisionOid": "5060a52a-d967-47c8-af78-c7aadb453bc4", "nameOid": "710d539e-a753-4d3b-83da-d51906879f4c", "btmname": "japplyform", "lastR": "1", "firstR": "1", "lastV": "1", "firstV": "1", "creator": "0", "createTime": "2023-06-02 10:57:58", "lastModifier": "0", "lastModifyTime": "2023-06-02 10:57:58", "revisionRule": "", "revisionSeq": 1, "revisionValue": "", "versionRule": "0", "versionSeq": 1, "versionValue": "1", "lcStatus": "", "lcStatusText": "", "ts": "2023-06-02 10:57:58.648", "owner": "1", "copyFromVersion": "", "secretGrade": -1, "secretGradeText": "", "lctid": "", "data": {}, "defaultValue": "", "metaListId": "XJ-46119-D74B-4818-9A89-6235E2234395", "sourceClassifyId": "XJ-FC9B6-FE27-241F-5FCA-ED4DC17CF95B", "sourceClassifyName": "产品", "targetAttrId": "", "targetClassifyId": "D2DC11DD-B28A-8874-B656-10A1E0569FF3", "viewModeId": "XJ-B5416-4928-CFB8-84F5-1955AA890764", "viewModeName": "", "targetAttrKey": "", "targetAttrName": "", "sourceAttrKey": "revisionvalue", "sourceAttrName": "版本", "viewModelName": "", "viewName": "销售视图", "targetClassifyName": "螺栓", "dockingPreAttrRangeVoList": [], "$cellEdit": false, "$index": 22 }, { "oid": "4BE71AA3-F86B-4E7B-B1A8-60C77D6D0F9D", "id": "", "name": "", "description": "", "revisionOid": "79c57b17-8856-42da-8336-f7cc90c08ba0", "nameOid": "e8b61f38-9fd3-4344-9bec-45989173da90", "btmname": "japplyform", "lastR": "1", "firstR": "1", "lastV": "1", "firstV": "1", "creator": "0", "createTime": "2023-06-02 10:57:58", "lastModifier": "0", "lastModifyTime": "2023-06-02 10:57:58", "revisionRule": "", "revisionSeq": 1, "revisionValue": "", "versionRule": "0", "versionSeq": 1, "versionValue": "1", "lcStatus": "", "lcStatusText": "", "ts": "2023-06-02 10:57:58.648", "owner": "1", "copyFromVersion": "", "secretGrade": -1, "secretGradeText": "", "lctid": "", "data": {}, "defaultValue": "", "metaListId": "XJ-752FC-DC6E-361E-B960-607D7FF908E6", "sourceClassifyId": "XJ-FC9B6-FE27-241F-5FCA-ED4DC17CF95B", "sourceClassifyName": "产品", "targetAttrId": "", "targetClassifyId": "D2DC11DD-B28A-8874-B656-10A1E0569FF3", "viewModeId": "XJ-B5416-4928-CFB8-84F5-1955AA890764", "viewModeName": "", "targetAttrKey": "", "targetAttrName": "", "sourceAttrKey": "creator", "sourceAttrName": "创建人", "viewModelName": "", "viewName": "销售视图", "targetClassifyName": "螺栓", "dockingPreAttrRangeVoList": [], "$cellEdit": false, "$index": 23 } |
| | | ] |
| | | const rangeData = [ |
| | | { |
| | | "oid": "2023022114232", |
| | | "id": "", |
| | | "name": "", |
| | | "description": "", |
| | | "revisionOid": "097DC30F-CC8F-595D-0530-7C86C176FC61", |
| | | "nameOid": "D3FB491C-0571-3BB2-604E-563CC579CCAC", |
| | | "btmname": "jrange", |
| | | "lastR": "1", |
| | | "firstR": "1", |
| | | "lastV": "1", |
| | | "firstV": "1", |
| | | "creator": "1", |
| | | "createTime": "2023-03-30 23:35:13", |
| | | "lastModifier": "1", |
| | | "lastModifyTime": "2023-03-30 23:35:13", |
| | | "revisionRule": "", |
| | | "revisionSeq": 1, |
| | | "revisionValue": "", |
| | | "versionRule": "0", |
| | | "versionSeq": 1, |
| | | "versionValue": "1", |
| | | "lcStatus": "Exist", |
| | | "lcStatusText": "", |
| | | "ts": "2023-03-30 23:35:13.027", |
| | | "owner": "1", |
| | | "copyFromVersion": "", |
| | | "secretGrade": -1, |
| | | "secretGradeText": "", |
| | | "lctid": "defaultLC", |
| | | "data": {}, |
| | | "metaListId": "XJ-752FC-DC6E-361E-B960-607D7FF908E6", |
| | | "numText": "材料", |
| | | "numTextValue": "1001", |
| | | "targetNumText": "材料", |
| | | "targetNumTextValue": "7" |
| | | } |
| | | ] |
| | | const options = { |
| | | menu: 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, |
| | | } |
| | | return { |
| | | // 表单值 |
| | | form: { |
| | | // 新增属性查询值 |
| | | name: '', |
| | | // 集团树显示值 |
| | | groupValue: '' |
| | | }, |
| | | // 检测新增按钮状态 |
| | | disabledPush:true, |
| | | // 表格加载中 |
| | | loading: false, |
| | | // 穿梭框数据 |
| | | transferData: [], |
| | | // 穿梭框双向绑定数据 |
| | | transferValue: [], |
| | | // dialog弹窗开关 |
| | | dialogPush: false, |
| | | // 属性映射表数据 |
| | | mappingData: mappingData, |
| | | // 属性映射取值表数据 |
| | | rangeData: rangeData, |
| | | // 主数据树搜索过滤 |
| | | filterText: '', |
| | | // 属性映射取值表配置 |
| | | optinoRange: { |
| | | title: '属性映射取值范围', |
| | | maxHeight: '300px', |
| | | header: false, |
| | | rowKey: 'oid', |
| | | column: [ |
| | | { label: '属性集团枚举值', prop: 'numTextValue', minWidth: 80 }, |
| | | { label: '集团属性枚举显示名称', prop: 'numText', minWidth: 80 }, |
| | | { label: 'MDM枚举值', prop: 'targetNumTextValue', minWidth: 80, cell: true, blur: (value) => window.handleBlur(value, 'range') }, |
| | | { label: 'MDM枚举显示名称', prop: 'targetNumText', minWidth: 80, cell: true, blur: (value) => window.handleBlur(value, 'range') }, |
| | | ], |
| | | ...options |
| | | }, |
| | | // 属性映射表配置 |
| | | optionMapping: { |
| | | maxHeight: '500px', |
| | | header: true, |
| | | rowKey: 'oid', |
| | | selection: false, |
| | | column: [ |
| | | { label: '集团分类', prop: 'sourceClassifyName', minWidth: 80 }, |
| | | { label: '所属视图', prop: 'viewName', minWidth: 80 }, |
| | | { label: '集团属性', prop: 'sourceAttrName', minWidth: 80 }, |
| | | { label: '分类名称', prop: 'targetClassifyName', minWidth: 80 }, |
| | | { |
| | | label: '属性名称', |
| | | prop: 'targetAttrName', |
| | | minWidth: 80, |
| | | }, |
| | | { |
| | | label: '默认值', |
| | | prop: 'defaultValue', |
| | | minWidth: 140, |
| | | cell: true, |
| | | blur: (value) => window.handleBlur(value, 'mapping') |
| | | }, |
| | | ], |
| | | ...options |
| | | }, |
| | | // 主数据分类树 |
| | | treeData: [], |
| | | // 集团分类树 |
| | | groupTreeData: [], |
| | | // 树popos替换值 |
| | | defaultProps: { |
| | | children: 'children', |
| | | label: 'name', |
| | | id: 'oid', |
| | | isLeaf: '' |
| | | }, |
| | | transferProps: { |
| | | key: 'value', |
| | | label: 'label' |
| | | |
| | | }, |
| | | // 集团分类树值 |
| | | groupVal: '', |
| | | // 左侧树选择的id值 |
| | | treeParam: {}, |
| | | // 表格选择的行 |
| | | rangeForm: {}, |
| | | mappingForm: {}, |
| | | // 定时器 |
| | | times: null, |
| | | } |
| | | }, |
| | | watch: { |
| | | filterText(val) { |
| | | this.$refs.tree.filter(val); |
| | | } |
| | | }, |
| | | created() { |
| | | this.getReferCodeClassifyTree() |
| | | pinyin.setOptions({ checkPolyphone: false, charCase: 1 }); |
| | | }, |
| | | mounted() { |
| | | let that = this |
| | | window.handleBlur = that.handleBlur |
| | | |
| | | }, |
| | | methods: { |
| | | // 接口左侧树 |
| | | async getReferCodeClassifyTree() { |
| | | this.treeData = [] |
| | | const param = { |
| | | parentBtmName: "jclass", |
| | | valueField: "oid", |
| | | textField: "name", |
| | | parentFieldName: "id" |
| | | } |
| | | const response = await referCodeClassifyTree(param) |
| | | if (response.status === 200) { |
| | | let data = response.data; |
| | | this.treeData = data.map(item => item.children ? { ...item, ...{ isLeaf: false } } : { ...item, ...{ isLeaf: true } }) |
| | | } |
| | | }, |
| | | // 接口获取属性映射 |
| | | async getGridAttrMapping(oid) { |
| | | this.mappingData = [] |
| | | this.loading = true |
| | | const response = await gridAttrMapping({ sourceClassifyId: oid, ...this.treeParam }) |
| | | if (response.status === 200) { |
| | | this.loading = false |
| | | this.mappingData = response.data.data |
| | | } |
| | | }, |
| | | // 接口获取属性映射取值范围 |
| | | async getGridAttrRanges(oid) { |
| | | this.rangeData = [] |
| | | const response = await gridAttrRanges({ meatId: oid }) |
| | | if (response.status === 200) { |
| | | this.rangeData = response.data |
| | | } |
| | | }, |
| | | // 接口获取主数据分类属性信息 |
| | | async getListCodeByClassId(oid) { |
| | | this.transferData = [] |
| | | pinyin.setOptions({ checkPolyphone: false, charCase: 1 }); |
| | | const response = await listCodeAttributeByClassId({ codeClassifyId: oid }) |
| | | if (response.status === 200) { |
| | | const data = response.data.data |
| | | let objs = data.map(item => { |
| | | let pinYin = pinyin.getFullChars(item.name) |
| | | let renPing = pinyin.getCamelChars(item.name) |
| | | const { name, oid } = item |
| | | const obj = { pinyins: pinYin, renPing: renPing, disabled: false, label: name, value: oid } |
| | | return obj |
| | | }) |
| | | this.transferData = objs |
| | | this.optionMapping.column[4].dicData = objs |
| | | console.log(objs) |
| | | } |
| | | }, |
| | | // 接口获取集团分类树 |
| | | async referTree(oid, checked) { |
| | | this.groupTreeData = [] |
| | | const response = await referTree({ 'conditionMap[codeclsfid]': oid, parentOid: null }) |
| | | if (response.status === 200) { |
| | | if (checked) { |
| | | let items = response.data.map(item => { |
| | | let obj = {} |
| | | if (item.checked) obj = { ...item } |
| | | else obj = null |
| | | return obj |
| | | }) |
| | | var r = items.filter(s => { return s && s.trim() }); |
| | | this.groupTreeData = r |
| | | } else { |
| | | this.groupTreeData = response.data |
| | | } |
| | | } |
| | | }, |
| | | // 左侧树过滤搜索 |
| | | filterNode(value, data) { |
| | | if (!value) return true; |
| | | return data.name.indexOf(value) !== -1; |
| | | }, |
| | | // 保存按钮 |
| | | async handleSave() { |
| | | console.log(this.mappingData) |
| | | // const response = await batchAddSave({ dockingPreAttrMappingVOList: this.tableData }) |
| | | // console.log(response) |
| | | }, |
| | | // 同步数据 |
| | | async handleSync() { |
| | | const response = await syncClassifyModel({ dockingPreAttrMappingVOList: this.tableData }) |
| | | }, |
| | | // 新增弹窗查询按钮 |
| | | handleQuery(event) { |
| | | this.form.name = event |
| | | }, |
| | | handelTransferSave() { |
| | | let that = this |
| | | console.log(that.mappingForm) |
| | | if (Object.keys(that.mappingForm).length==0) { |
| | | this.$message({ |
| | | type: "error", |
| | | message: "请选择一条数据!" |
| | | }); |
| | | } else { |
| | | const findRow = that.mappingData.findIndex(item => item.metaListId === that.mappingForm.metaListId) |
| | | const findtra = that.transferData.findIndex(item => item.value === that.transferValue[0].value) |
| | | console.log(findRow) |
| | | that.mappingData[findRow].targetAttrName = that.transferValue[0].label |
| | | that.mappingData[findRow].targetAttrId = that.transferValue[0].value |
| | | that.transferData[findtra].disabled = true |
| | | that.transferValue = [] |
| | | that.form.name = '' |
| | | that.dialogPush = false |
| | | } |
| | | |
| | | }, |
| | | // 穿梭框查询数据过滤 |
| | | filterMethod(query, item) { |
| | | return item.pinyins.indexOf(this.form.name) > -1; |
| | | }, |
| | | // 左侧树点击 |
| | | handelTreeCell(event) { |
| | | if (event.leaf) { |
| | | this.treeParam.codeClassifyId = event.oid |
| | | this.form.groupValue = '' |
| | | this.groupVal = '' |
| | | this.tableData = [] |
| | | this.referTree(event.oid, event.checked) |
| | | this.getListCodeByClassId(event.oid) |
| | | } |
| | | }, |
| | | // 集团分类树点击 |
| | | handleNodeClick(data) { |
| | | this.form.groupValue = data.name |
| | | this.groupVal = data.name |
| | | this.$refs.selectTree.blur() |
| | | this.getGridAttrMapping(data.oid) |
| | | }, |
| | | // 集团分类失去焦点 |
| | | inputBlur() { |
| | | this.tableColumnIndex = '' |
| | | this.tableRowIndex = null |
| | | }, |
| | | // 失去焦点 |
| | | handleBlur(value, event) { |
| | | if (event === 'range') this.$refs.crudRange.rowCell(this.rangeForm, this.rangeForm.$index) |
| | | if (event === 'mapping') this.$refs.crudMapping.rowCell(this.mappingForm, this.mappingForm.$index) |
| | | }, |
| | | // 集团映射属性行选择单元格编辑(双击) |
| | | handleMapingRowClick(row, column, cell, event) { |
| | | console.log(row) |
| | | clearTimeout(this.times) |
| | | this.mappingForm = row |
| | | if (column.label === '默认值' || column.label === '属性名称') this.$refs.crudMapping.rowCell(row, row.$index) |
| | | }, |
| | | // 集团映射属性行选择(单击) |
| | | handleMapingClick(row, column, cell, event) { |
| | | clearTimeout(this.times) |
| | | this.mappingForm = row |
| | | this.times = setTimeout(() => { |
| | | this.$refs.crudMapping.toggleSelection([row]); |
| | | }, 300) |
| | | }, |
| | | // 属性取值范围单元格编辑(双击) |
| | | handleRowClick(row, column, cell, event) { |
| | | this.rangeForm = row |
| | | this.$refs.crudRange.rowCell(row, row.$index) |
| | | }, |
| | | // 属性取值范围单元格编辑后 |
| | | handleUpdate(row, index, done, loading) { |
| | | console.log(row) |
| | | console.log(index) |
| | | const findRow = this.mappingData.findIndex(item => item.metaListId === row.metaListId) |
| | | this.mappingData[findRow].dockingPreAttrRangeVoList = [row] |
| | | console.log('修改后', row) |
| | | this.$message({ |
| | | showClose: true, |
| | | message: "修改成功", |
| | | type: "success", |
| | | }); |
| | | done(); |
| | | }, |
| | | // 属性取值范围单元格编辑后 |
| | | handleMapingUpdate(row, index, done, loading) { |
| | | console.log(row) |
| | | console.log('修改后', row) |
| | | this.$message({ |
| | | showClose: true, |
| | | message: "修改成功", |
| | | type: "success", |
| | | }); |
| | | done(); |
| | | }, |
| | | // 集团映射属性选择(单选) |
| | | selectionChange(selection) { |
| | | if (selection.length > 1) { |
| | | const nowVal = selection.shift(); |
| | | this.$refs.crudMapping.toggleRowSelection(nowVal, false); |
| | | } else if (selection.length === 1) { |
| | | // 对单选数据的操作写在这里 |
| | | this.disabledPush = false |
| | | // this.getGridAttrRanges(row.metaListId) |
| | | } |
| | | }, |
| | | setCurrentRow(selection, row) { |
| | | console.log(row) |
| | | this.mappingForm = row |
| | | this.disabledPush = false |
| | | }, |
| | | handleSelectAll(selection) { |
| | | console.log(selection) |
| | | this.$refs.crudMapping.toggleSelection() |
| | | } |
| | | components: { |
| | | integrationTransfer |
| | | }, |
| | | name: 'Integration', |
| | | data() { |
| | | const options = { |
| | | menu: 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, |
| | | } |
| | | return { |
| | | selectRow: "", |
| | | targetNameList: [], // 元数据返回名称 |
| | | defaultCheckedKeys: [], |
| | | isNodeDisabled: true, |
| | | // 表单值 |
| | | form: { |
| | | // 集团树显示值 |
| | | groupValue: '' |
| | | }, |
| | | // 检测新增按钮状态 |
| | | disabledPush: true, |
| | | // 表格加载中 |
| | | loading: false, |
| | | // 穿梭框数据 |
| | | transferData: [], |
| | | // dialog弹窗开关 |
| | | dialogPush: false, |
| | | // 属性映射表数据 |
| | | mappingData: [], |
| | | // 属性映射取值表数据 |
| | | rangeData: [], |
| | | // 主数据树搜索过滤 |
| | | filterText: '', |
| | | // 属性映射取值表配置 |
| | | optinoRange: { |
| | | title: '属性映射取值范围', |
| | | maxHeight: '280px', |
| | | rowKey: 'oid', |
| | | refreshBtn: false, |
| | | column: [ |
| | | {label: '属性集团枚举值', prop: 'numTextValue', minWidth: 80}, |
| | | {label: '集团属性枚举显示名称', prop: 'numText', minWidth: 80}, |
| | | { |
| | | label: 'CODE枚举值', |
| | | prop: 'targetNumTextValue', |
| | | minWidth: 80, |
| | | cell: true, |
| | | blur: (value) => window.handleBlur(value, 'range') |
| | | }, |
| | | { |
| | | label: 'CODE枚举显示名称', |
| | | prop: 'targetNumText', |
| | | minWidth: 80, |
| | | cell: true, |
| | | blur: (value) => window.handleBlur(value, 'range') |
| | | }, |
| | | ], |
| | | ...options |
| | | }, |
| | | // 属性映射表配置 |
| | | optionMapping: { |
| | | maxHeight: '280px', |
| | | header: true, |
| | | rowKey: 'oid', |
| | | selection: false, |
| | | refreshBtn: false, |
| | | delBtn: false, |
| | | addBtn: false, |
| | | columnBtn: false, |
| | | searchShow: true, |
| | | emptyBtn: false, |
| | | searchBtn: false, |
| | | searchShowBtn: false, |
| | | cellBtn: true, |
| | | border: true, |
| | | searchMenuSpan: 8, |
| | | highlightCurrentRow: true, |
| | | $cellEdit: true, |
| | | column: [ |
| | | {label: '', prop: 'radio', width: 60, hide: false}, |
| | | {label: '集团分类', prop: 'sourceClassifyName', minWidth: 80}, |
| | | {label: '所属视图', prop: 'viewName', minWidth: 80}, |
| | | {label: '集团属性', prop: 'sourceAttrName', minWidth: 80}, |
| | | {label: '分类名称', prop: 'targetClassifyName', minWidth: 80}, |
| | | { |
| | | label: '属性名称', |
| | | prop: 'targetAttrName', |
| | | type: 'select', |
| | | cell: true, |
| | | filterable: true, |
| | | minWidth: 80, |
| | | props: { |
| | | label: 'targetAttrName', |
| | | value: 'targetAttrName' |
| | | }, |
| | | dicData: [], |
| | | }, |
| | | // { |
| | | // label: '默认值', |
| | | // prop: 'defaultValue', |
| | | // minWidth: 140, |
| | | // cell: true, |
| | | // blur: (value) => window.handleBlur(value, 'mapping') |
| | | // }, |
| | | ], |
| | | }, |
| | | // 主数据分类树 |
| | | treeData: [], |
| | | // 集团分类树 |
| | | groupTreeData: [], |
| | | // 树prpos替换值 |
| | | defaultProps: { |
| | | children: 'children', |
| | | label: 'name', |
| | | id: 'oid', |
| | | isLeaf: '', |
| | | // disabled:()=>{ |
| | | // return true |
| | | // } |
| | | }, |
| | | transferProps: { |
| | | key: 'oid', |
| | | label: 'name' |
| | | |
| | | }, |
| | | // 集团分类树值 |
| | | groupVal: '', |
| | | // 左侧树选择的id值 |
| | | treeParam: {}, |
| | | // 表格选择的行 |
| | | rangeForm: {}, |
| | | mappingForm: {}, |
| | | // 定时器 |
| | | times: null, |
| | | TreeOid: "", |
| | | tableSelectId: '' |
| | | |
| | | } |
| | | }, |
| | | watch: { |
| | | filterText(val) { |
| | | this.$refs.tree.filter(val); |
| | | } |
| | | }, |
| | | created() { |
| | | this.getReferCodeClassifyTree() |
| | | pinyin.setOptions({checkPolyphone: false, charCase: 1}); |
| | | }, |
| | | mounted() { |
| | | let that = this |
| | | window.handleBlur = that.handleBlur |
| | | }, |
| | | computed: { |
| | | filtermapping() { |
| | | const data = this.mappingData.filter(item => { |
| | | return !(Object.prototype.hasOwnProperty.call(item, 'targetAttrName') && (item.targetAttrName === null || item.targetAttrName === undefined || item.targetAttrName === "")) |
| | | }) |
| | | const transfer = data.map(obj => { |
| | | return obj.targetAttrName |
| | | }) |
| | | return transfer |
| | | }, |
| | | targetColumn() { |
| | | return this.optionMapping.column.find(column => column.prop === 'targetAttrName'); |
| | | } |
| | | }, |
| | | methods: { |
| | | handlerAuto() { |
| | | if (!this.TreeOid || this.TreeOid === "") { |
| | | return; |
| | | } |
| | | // 过滤出集团属性的key值 |
| | | const groupArray = this.mappingData ? this.mappingData.map(obj => obj.sourceAttrKey) : []; |
| | | // 获取到需要自动填充的值 |
| | | getByGroupAttrMapping({classifyId: this.TreeOid, groupAttrKeyList: groupArray}) |
| | | .then(res => { |
| | | // 单独把返回值的groupAttrKey放一个数组,然后过滤出返回值的groupAttrKey是否等于表格数据中的sourceAttrKey |
| | | // const groupReturnData = res.data && res.data.data ? res.data.data.map(item => item.groupAttrKey) : []; |
| | | const groupReturnData = res.data.data; |
| | | // 过滤匹配 |
| | | // console.log(groupReturnData) |
| | | this.mappingData.forEach(mappingItem => { |
| | | groupReturnData.forEach(groupItem => { |
| | | if (mappingItem.sourceAttrKey === groupItem.groupAttrKey) { |
| | | const result = this.transferData.find(obj => obj.id.toLowerCase() === groupItem.codeMetaAttrKey.toLowerCase()); |
| | | if (result) { |
| | | mappingItem.targetAttrId = groupItem.codeMetaAttrOid.toLowerCase(); |
| | | mappingItem.targetAttrName = groupItem.codeMetaAttrName.toLowerCase(); |
| | | mappingItem.targetAttrKey = groupItem.codeMetaAttrKey.toLowerCase(); |
| | | } else { |
| | | mappingItem.targetAttrId = ''; |
| | | mappingItem.targetAttrName = ''; |
| | | mappingItem.targetAttrKey = ''; |
| | | } |
| | | } |
| | | }) |
| | | }) |
| | | this.$message.success('填充成功!'); |
| | | }) |
| | | .catch(error => { |
| | | console.log(error) |
| | | this.$message.error('填充失败,请稍后再试!'); |
| | | }); |
| | | }, |
| | | handlerBottomAuto() { |
| | | if (this.rangeData.length <= 0) { |
| | | this.$message.warning('请选择一条枚举类型属性!') |
| | | return |
| | | } |
| | | getEnumAttrByClsOidAndAttrId({classifyId: this.TreeOid, codeMetaAttrKey: this.tableSelectId}).then(res => { |
| | | const data = res.data.data; |
| | | this.rangeData.forEach(rangeItem => { |
| | | data.forEach(dataItem => { |
| | | const similarity = this.calculateSimilarity(rangeItem.numText, dataItem.itemName); |
| | | if (similarity > 70) { |
| | | rangeItem.targetNumTextValue = rangeItem.numTextValue; |
| | | rangeItem.targetNumText = dataItem.itemName; |
| | | } |
| | | }) |
| | | }) |
| | | |
| | | }) |
| | | }, |
| | | calculateSimilarity(str1, str2) { |
| | | // 计算编辑距离 |
| | | function editDistance(s1, s2) { |
| | | s1 = s1.toLowerCase(); |
| | | s2 = s2.toLowerCase(); |
| | | |
| | | const costs = []; |
| | | for (let i = 0; i <= s1.length; i++) { |
| | | let lastValue = i; |
| | | for (let j = 0; j <= s2.length; j++) { |
| | | if (i === 0) |
| | | costs[j] = j; |
| | | else { |
| | | if (j > 0) { |
| | | let newValue = costs[j - 1]; |
| | | if (s1.charAt(i - 1) !== s2.charAt(j - 1)) |
| | | newValue = Math.min(Math.min(newValue, lastValue), |
| | | costs[j]) + 1; |
| | | costs[j - 1] = lastValue; |
| | | lastValue = newValue; |
| | | } |
| | | } |
| | | } |
| | | if (i > 0) |
| | | costs[s2.length] = lastValue; |
| | | } |
| | | return costs[s2.length]; |
| | | } |
| | | |
| | | // 计算相似度百分比 |
| | | function similarityPercent(s1, s2) { |
| | | let maxLength = Math.max(s1.length, s2.length); |
| | | let distance = editDistance(s1, s2); |
| | | return ((maxLength - distance) / maxLength) * 100; |
| | | } |
| | | |
| | | // 调用相似度计算函数并返回百分比形式的相似度 |
| | | const similarity = similarityPercent(str1, str2); |
| | | return similarity; |
| | | }, |
| | | 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 = [] |
| | | const param = { |
| | | parentBtmName: "jclass", |
| | | valueField: "oid", |
| | | textField: "name", |
| | | parentFieldName: "id" |
| | | } |
| | | const response = await referCodeClassifyTree(param) |
| | | if (response.status === 200) { |
| | | let data = response.data; |
| | | this.treeData = data.map(item => item.children ? {...item, ...{isLeaf: false}} : {...item, ...{isLeaf: true}}) |
| | | } |
| | | }, |
| | | // 接口获取属性映射 |
| | | async getGridAttrMapping(oid) { |
| | | this.mappingData = [] |
| | | this.loading = true |
| | | const response = await gridAttrMapping({sourceClassifyId: oid, ...this.treeParam}) |
| | | if (response.status === 200) { |
| | | this.loading = false |
| | | this.mappingData = response.data.data |
| | | |
| | | // 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; |
| | | // } |
| | | // } |
| | | } |
| | | }, |
| | | // 接口获取属性映射取值范围 |
| | | async getGridAttrRanges(oid) { |
| | | this.rangeData = [] |
| | | const response = await gridAttrRanges({meatId: oid}) |
| | | if (response.status === 200) { |
| | | // console.log(response.data) |
| | | this.rangeData = response.data.data |
| | | } |
| | | }, |
| | | // 接口获取主数据分类属性信息 |
| | | async getListCodeByClassId(oid) { |
| | | this.transferData = [] |
| | | pinyin.setOptions({checkPolyphone: false, charCase: 1}); |
| | | const response = await listCodeAttributeByClassId({codeClassifyId: oid}) |
| | | if (response.status === 200) { |
| | | const data = response.data.data |
| | | this.transferData = data; |
| | | this.getTargetName(data) |
| | | // console.log(data) |
| | | } |
| | | }, |
| | | // 接口获取集团分类树 |
| | | async referTree(oid) { |
| | | this.groupTreeData = []; |
| | | const response = await referTree({'conditionMap[codeclsfid]': oid, parentOid: '0'}); |
| | | if (response.status === 200) { |
| | | this.groupTreeData = response.data; // 将获取到的数据赋值给集团分类树数据 |
| | | |
| | | await this.filterCheckedNodes(this.groupTreeData, this.defaultCheckedKeys); |
| | | await this.$nextTick(() => { |
| | | this.$refs.groupTree.setCheckedKeys(this.defaultCheckedKeys); |
| | | }); |
| | | |
| | | this.handlerTreeData(this.groupTreeData); |
| | | |
| | | this.defaultCheckedKeys = []; |
| | | } |
| | | }, |
| | | // 过滤出来checked为true的节点 |
| | | filterCheckedNodes(data, checkedNodes) { |
| | | data.forEach(node => { |
| | | if (node.checked) { |
| | | checkedNodes.push(node.oid); |
| | | this.getGridAttrMapping(node.oid); |
| | | this.form.groupValue = node.oid; |
| | | this.groupVal = node.name; |
| | | } |
| | | |
| | | if (node.children && node.children.length > 0) { |
| | | this.filterCheckedNodes(node.children, checkedNodes); |
| | | } |
| | | }); |
| | | }, |
| | | // 过滤处理每个节点 |
| | | handlerTreeNode(node) { |
| | | // 根据节点禁用状态设置节点是否禁用 |
| | | this.$set(node, 'disabled', !node.checked); |
| | | if (node.children && node.children.length > 0) { |
| | | // 递归循环处理所有子节点 |
| | | node.children.forEach(child => this.handlerTreeNode(child)); |
| | | } |
| | | }, |
| | | // 检查所有节点是否都是未禁用状态 |
| | | allNodeChecked(data) { |
| | | for (const node of data) { |
| | | // 如果存在禁用节点返回false |
| | | if (node.checked) { |
| | | return false; |
| | | } |
| | | // 如果存在子节点且子节点存在禁用节点,则返回false |
| | | if (node.children && !this.allNodeChecked(node.children)) { |
| | | return false; |
| | | } |
| | | } |
| | | // 没有禁用节点返回true |
| | | return true; |
| | | }, |
| | | // 集团分类树禁用数据处理整合方法 |
| | | handlerTreeData(data) { |
| | | if (this.allNodeChecked(data)) { |
| | | // 如果所有节点都未禁用将所有节点设置为false |
| | | data.forEach(node => { |
| | | this.$set(node, 'disabled', false); // Vue 3 中可能不需要这样做 |
| | | }); |
| | | return; |
| | | } |
| | | // 查找禁用节点 |
| | | let checkedNode = data.find(node => node.checked); |
| | | data.forEach(node => { |
| | | // 如果节点不是禁用节点设置为true |
| | | this.$set(node, 'disabled', node !== checkedNode); |
| | | if (node.children && node.children.length > 0) { |
| | | // 调用循环节点 |
| | | this.handlerTreeNode(node); |
| | | } |
| | | }); |
| | | }, |
| | | // 左侧树过滤搜索 |
| | | filterNode(value, data) { |
| | | if (!value) return true; |
| | | return data.name.indexOf(value) !== -1; |
| | | }, |
| | | // 保存按钮 |
| | | 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 && !item.targetAttrId && !item.targetAttrKey) { |
| | | const {targetAttrId, targetAttrKey, targetAttrName} = await getTargetCorresponding(item); |
| | | Object.assign(item, {targetAttrId, targetAttrKey, targetAttrName}); |
| | | } |
| | | } |
| | | this.mappingData[this.selectRow].dockingPreAttrRangeVoList = (this.rangeData) |
| | | const response = await batchAddSave({dockingPreAttrMappingVOList: this.mappingData}) |
| | | if (response.status === 200) { |
| | | this.$message({ |
| | | type: "success", |
| | | message: "保存成功!" |
| | | }); |
| | | } |
| | | }, |
| | | // 同步数据 |
| | | async handleSync(type = 'all') { |
| | | let param = {operationType: type} |
| | | if (type === 'one') { |
| | | param.classifyId = this.form.groupValue |
| | | } |
| | | if (this.form.groupValue === '' && type === 'one') { |
| | | this.$message({ |
| | | type: "error", |
| | | message: "请选择一条集团分类" |
| | | }); |
| | | } else { |
| | | try { |
| | | const response = await syncClassifyModel(param); |
| | | if (response.status === 200) { |
| | | this.$message.success(response.data.msg) |
| | | } |
| | | } catch (error) { |
| | | console.error(error); |
| | | } |
| | | } |
| | | }, |
| | | handelTransferSave(event) { |
| | | // console.log(event) |
| | | let that = this |
| | | const transferValue = event.value |
| | | if (Object.keys(that.mappingForm).length == 0) { |
| | | this.$message({ |
| | | type: "error", |
| | | message: "请选择一条数据!" |
| | | }); |
| | | } else { |
| | | const findRow = that.mappingData.findIndex(item => item.metaListId === that.mappingForm.metaListId) |
| | | that.mappingData[findRow].targetAttrName = transferValue[0].name; |
| | | that.mappingData[findRow].targetAttrId = transferValue[0].oid; |
| | | that.mappingData[findRow].targetAttrKey = transferValue[0].id; |
| | | this.dialogPush = false; |
| | | } |
| | | |
| | | }, |
| | | // 左侧树点击 |
| | | handelTreeCell(event) { |
| | | this.TreeOid = event.oid; |
| | | this.treeParam.codeClassifyId = event.oid |
| | | this.form.groupValue = '' |
| | | this.groupVal = '' |
| | | this.tableData = [] |
| | | this.mappingData = [] |
| | | this.referTree(event.oid) |
| | | this.getListCodeByClassId(event.oid) |
| | | }, |
| | | // 集团分类树选择 |
| | | handleCheck(data) { |
| | | this.form.groupValue = data.oid |
| | | this.groupVal = data.name |
| | | this.$refs.selectTree.blur() |
| | | this.getGridAttrMapping(data.oid) |
| | | }, |
| | | // 集团分类失去焦点 |
| | | inputBlur() { |
| | | this.tableColumnIndex = '' |
| | | this.tableRowIndex = null |
| | | }, |
| | | // 失去焦点 |
| | | handleBlur(value, event) { |
| | | if (event === 'range') this.$refs.crudRange.rowCell(this.rangeForm, this.rangeForm.$index) |
| | | if (event === 'mapping') this.$refs.crudMapping.rowCell(this.mappingForm, this.mappingForm.$index) |
| | | }, |
| | | // 集团映射属性行选择单元格编辑(双击) |
| | | handleMapingRowClick(row, column) { |
| | | clearTimeout(this.times) |
| | | this.mappingForm = row |
| | | if (column.label === '默认值' || column.label === '属性名称') this.$refs.crudMapping.rowCell(row, row.$index) |
| | | }, |
| | | // 集团映射属性行选择(单击) |
| | | handleMapingClick(row) { |
| | | // console.log(row) |
| | | this.tableSelectId = row.targetAttrKey || ""; |
| | | this.selectRow = row.$index; |
| | | clearTimeout(this.times) |
| | | this.mappingForm = row |
| | | this.times = setTimeout(() => { |
| | | this.$refs.crudMapping.toggleSelection([row]); |
| | | }, 300) |
| | | }, |
| | | // 属性取值范围单元格编辑(双击) |
| | | handleRowClick(row) { |
| | | this.rangeForm = row |
| | | this.$refs.crudRange.rowCell(row, row.$index) |
| | | }, |
| | | // 属性取值范围单元格编辑后 |
| | | handleUpdate(row, index, done) { |
| | | const findRow = this.mappingData.findIndex(item => item.metaListId === row.metaListId) |
| | | this.rangeData[index] = row |
| | | this.mappingData[findRow].dockingPreAttrRangeVoList = (this.rangeData) |
| | | 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: targetAttrId.toLowerCase(), |
| | | targetAttrKey: targetAttrKey.toLowerCase(), |
| | | targetAttrName: targetAttrName.toLowerCase() |
| | | }); |
| | | |
| | | const response = await batchAddSave({dockingPreAttrMappingVOList: [row]}); |
| | | |
| | | if (response.status === 200) { |
| | | this.$message({ |
| | | type: "success", |
| | | message: "修改成功!" |
| | | }); |
| | | } |
| | | } catch (error) { |
| | | console.error('处理映射更新时出错:', error); |
| | | } finally { |
| | | done(); |
| | | } |
| | | }, |
| | | // 集团映射属性选择(单选) |
| | | selectionChange(selection) { |
| | | if (selection.length > 1) { |
| | | const nowVal = selection.shift(); |
| | | this.$refs.crudMapping.toggleRowSelection(nowVal, false); |
| | | } else if (selection.length === 1) { |
| | | // 对单选数据的操作写在这里 |
| | | this.disabledPush = false |
| | | this.getGridAttrRanges(this.mappingForm.metaListId) |
| | | } |
| | | }, |
| | | setCurrentRow(selection, row) { |
| | | console.log(selection, row) |
| | | this.mappingForm = row |
| | | this.disabledPush = false |
| | | }, |
| | | handleSelectAll(selection) { |
| | | this.$refs.crudMapping.toggleSelection() |
| | | }, |
| | | |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .text_tip { |
| | | padding: 10px 0; |
| | | color: #F56C6C; |
| | | } |
| | | |
| | | .setstyle { |
| | | min-height: 200px; |
| | | padding: 0 !important; |
| | | margin: 0; |
| | | overflow: auto; |
| | | cursor: default !important; |
| | | min-height: 200px; |
| | | padding: 0 !important; |
| | | margin: 0; |
| | | overflow: auto; |
| | | cursor: default !important; |
| | | } |
| | | |
| | | ::v-deep(.el-transfer-panel__list) { |
| | | ::v-deep { |
| | | .el-transfer-panel__list { |
| | | width: 100%; |
| | | height: 370px; |
| | | } |
| | | } |
| | | |
| | | ::v-deep(.el-transfer-panel__body) { |
| | | .el-transfer-panel__body { |
| | | height: 370px; |
| | | } |
| | | } |
| | | |
| | | ::v-deep(.el-input) { |
| | | .el-input { |
| | | width: auto; |
| | | } |
| | | |
| | | .el-transfer-panel { |
| | | width: 270px; |
| | | } |
| | | |
| | | .el-scrollbar__view { |
| | | height: 100px; |
| | | } |
| | | } |
| | | |
| | | ::v-deep(.el-transfer-panel) { |
| | | width: 270px; |
| | | } |
| | | </style> |
| | | </style> |