|
@@ -13,8 +13,9 @@
|
|
<el-scrollbar>
|
|
<el-scrollbar>
|
|
<HcLazyTree
|
|
<HcLazyTree
|
|
:auto-expand-keys="treeAutoExpandKeys" is-counts is-type
|
|
:auto-expand-keys="treeAutoExpandKeys" is-counts is-type
|
|
- :menus="ElTreeMenu" ui="page-division-tree" @load="treeLoadNode"
|
|
|
|
- @menuTap="ElTreeMenuClick" @nodeLoading="treeNodeLoading" @nodeTap="wbsElTreeClick"
|
|
|
|
|
|
+ :menus="ElTreeMenu" ui="page-division-tree" is-load-menu
|
|
|
|
+ @load="treeLoadNode" @menu-tap="ElTreeMenuClick" @node-loading="treeNodeLoading"
|
|
|
|
+ @node-tap="wbsElTreeClick" @load-menu="loadMenu"
|
|
/>
|
|
/>
|
|
</el-scrollbar>
|
|
</el-scrollbar>
|
|
</div>
|
|
</div>
|
|
@@ -151,7 +152,7 @@
|
|
<div v-if="copyNodeTabKey !== '1'" class="copy-node-many-box">
|
|
<div v-if="copyNodeTabKey !== '1'" class="copy-node-many-box">
|
|
<div class="copy-node-many-tree">
|
|
<div class="copy-node-many-tree">
|
|
<el-scrollbar>
|
|
<el-scrollbar>
|
|
- <HcLazyTree :auto-expand-keys="TreeAutoExpandKeys" is-type @load="treeLoadNode" @nodeTap="copyNodeElTreeClick" />
|
|
|
|
|
|
+ <HcLazyTree :auto-expand-keys="TreeAutoExpandKeys" is-type @load="treeLoadNode" @node-tap="copyNodeElTreeClick" />
|
|
</el-scrollbar>
|
|
</el-scrollbar>
|
|
</div>
|
|
</div>
|
|
<div class="copy-node-many-table">
|
|
<div class="copy-node-many-table">
|
|
@@ -213,11 +214,11 @@
|
|
<el-alert :closable="false" title="双击节点,可编辑节点名称,编辑完成后,请按回车或输入框消失后,再点提交" type="warning" />
|
|
<el-alert :closable="false" title="双击节点,可编辑节点名称,编辑完成后,请按回车或输入框消失后,再点提交" type="warning" />
|
|
<HcTreeNode
|
|
<HcTreeNode
|
|
v-if="addTreeNodeType === '1'" :node-id="addTreeNodeId" :old-id="addTreeNodeOldId" :contract-id="contractId"
|
|
v-if="addTreeNodeType === '1'" :node-id="addTreeNodeId" :old-id="addTreeNodeOldId" :contract-id="contractId"
|
|
- :project-id="projectId" @check-change="addTreeNodeCheckChange"
|
|
|
|
|
|
+ :project-id="projectId" :is-custom="isCustom" @check-change="addTreeNodeCheckChange"
|
|
/>
|
|
/>
|
|
<HcTreeNode
|
|
<HcTreeNode
|
|
v-if="addTreeNodeType === '2'" :node-id="addTreeNodeId" :old-id="addTreeNodeOldId" :contract-id="contractId"
|
|
v-if="addTreeNodeType === '2'" :node-id="addTreeNodeId" :old-id="addTreeNodeOldId" :contract-id="contractId"
|
|
- :project-id="projectId" strictly @check-change="addTreeNodeCheckChange"
|
|
|
|
|
|
+ :project-id="projectId" strictly :is-custom="isCustom" @check-change="addTreeNodeCheckChange"
|
|
/>
|
|
/>
|
|
<template #footer>
|
|
<template #footer>
|
|
<div class="lr-dialog-footer">
|
|
<div class="lr-dialog-footer">
|
|
@@ -235,6 +236,11 @@
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
</hc-new-dialog>
|
|
</hc-new-dialog>
|
|
|
|
+ <!-- 新增自定义节点 -->
|
|
|
|
+ <hc-new-dialog v-model="addNodeModalCus" :loading="addNodeLoadingCus" loading-text="新增节点中,请耐心等待..." title="新增自定义节点" widths="720px" @save="addNodeClickCur">
|
|
|
|
+ <div>节点名称:</div>
|
|
|
|
+ <el-input v-model="nodeNameinput" placeholder="请输入节点名称" size="large" style="margin-top: 15px;" />
|
|
|
|
+ </hc-new-dialog>
|
|
|
|
|
|
<!-- 调整排序 -->
|
|
<!-- 调整排序 -->
|
|
<hc-new-dialog v-model="sortNodeModal" :loading="sortNodeLoading" title="调整排序" widths="700px" @save="sortNodeClick">
|
|
<hc-new-dialog v-model="sortNodeModal" :loading="sortNodeLoading" title="调整排序" widths="700px" @save="sortNodeClick">
|
|
@@ -288,7 +294,7 @@
|
|
<div class="hc-tree-title-box">未被系统识别:手动关联</div>
|
|
<div class="hc-tree-title-box">未被系统识别:手动关联</div>
|
|
<div class="hc-tree-bar-box">
|
|
<div class="hc-tree-bar-box">
|
|
<el-scrollbar>
|
|
<el-scrollbar>
|
|
- <HcTreeData1 :datas="unmatchedData" @relationTap="unmatchedTreeTap" />
|
|
|
|
|
|
+ <HcTreeData1 :datas="unmatchedData" @relation-tap="unmatchedTreeTap" />
|
|
</el-scrollbar>
|
|
</el-scrollbar>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -330,7 +336,7 @@
|
|
ui="hc-modal-table" widths="47rem" @save="relationSaveClick"
|
|
ui="hc-modal-table" widths="47rem" @save="relationSaveClick"
|
|
>
|
|
>
|
|
<el-scrollbar>
|
|
<el-scrollbar>
|
|
- <DivisionTree :datas="unmatchedTreeData" @nodeTap="divisionTreeClick" />
|
|
|
|
|
|
+ <DivisionTree :datas="unmatchedTreeData" @node-tap="divisionTreeClick" />
|
|
</el-scrollbar>
|
|
</el-scrollbar>
|
|
</hc-new-dialog>
|
|
</hc-new-dialog>
|
|
|
|
|
|
@@ -639,12 +645,22 @@ const ElTreeMenuClick = async ({ key, node, data, keys }) => {
|
|
setStoreValue('wbsTreeExpandKeys', keys)
|
|
setStoreValue('wbsTreeExpandKeys', keys)
|
|
TreeAutoExpandKeys.value = keys || []
|
|
TreeAutoExpandKeys.value = keys || []
|
|
if (key === 'add') {
|
|
if (key === 'add') {
|
|
|
|
+ isCustom.value = data?.isCustom
|
|
addTreeNodeId.value = data?.primaryKeyId
|
|
addTreeNodeId.value = data?.primaryKeyId
|
|
addTreeNodeOldId.value = data?.oldId
|
|
addTreeNodeOldId.value = data?.oldId
|
|
addNodeLoading.value = false
|
|
addNodeLoading.value = false
|
|
addNodeModal.value = true
|
|
addNodeModal.value = true
|
|
|
|
|
|
- } else if (key === 'copy') {
|
|
|
|
|
|
+ } else if (key === 'add1') {
|
|
|
|
+
|
|
|
|
+ addTreeNodeId.value = data?.primaryKeyId
|
|
|
|
+ addTreeNodeOldId.value = data?.oldId
|
|
|
|
+ addNodeLoadingCus.value = false
|
|
|
|
+ nodeNameinput.value = ''
|
|
|
|
+ addNodeModalCus.value = true
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+} else if (key === 'copy') {
|
|
const parent = deepClone(node?.parent?.data || {})
|
|
const parent = deepClone(node?.parent?.data || {})
|
|
formCopyNodeModel.value = { ...deepClone(data), parent: parent }
|
|
formCopyNodeModel.value = { ...deepClone(data), parent: parent }
|
|
copyNodeTabKey.value = '1'
|
|
copyNodeTabKey.value = '1'
|
|
@@ -676,7 +692,33 @@ const ElTreeMenuClick = async ({ key, node, data, keys }) => {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+const loadMenu = ({ node, item, level }, resolve)=>{
|
|
|
|
+ ElTreeMenu.value = [
|
|
|
|
+ { icon: 'add-circle', label: '新增节点', key: 'add' },
|
|
|
|
+ { icon: 'file-copy-2', label: '复制节点', key: 'copy' },
|
|
|
|
+ { icon: 'draft', label: '修改节点', key: 'edit' },
|
|
|
|
+ { icon: 'sort-asc', label: '调整排序', key: 'sort' },
|
|
|
|
+ { icon: 'delete-bin', label: '删除节点', key: 'del' },
|
|
|
|
+]
|
|
|
|
+ let menusArr = ElTreeMenu.value
|
|
|
|
+ const { childNodes } = node
|
|
|
|
+
|
|
|
|
+ //自定义节点类型下如果有划分节点,就不允许新增自定义节点
|
|
|
|
+ let iscan = false
|
|
|
|
+ iscan = childNodes.some(obj => obj.data.isCustom !== 1)
|
|
|
|
+ console.log(iscan, 'iscan')
|
|
|
|
+ const { isCustom } = item
|
|
|
|
+ if (isCustom === 1 && !iscan) {
|
|
|
|
+ menusArr.unshift( { icon: 'add-circle', label: '新增自定义节点', key: 'add1' })
|
|
|
|
+ resolve(menusArr)
|
|
|
|
+ } else if (level === 1) {
|
|
|
|
+ menusArr = [ { icon: 'add-circle', label: '新增自定义节点', key: 'add1' }]
|
|
|
|
+ resolve(menusArr)
|
|
|
|
+ } else {
|
|
|
|
+
|
|
|
|
+ resolve(menusArr)
|
|
|
|
+ }
|
|
|
|
+}
|
|
//编辑节点
|
|
//编辑节点
|
|
const editNodeModal = ref(false)
|
|
const editNodeModal = ref(false)
|
|
|
|
|
|
@@ -944,6 +986,11 @@ const addNodeModal = ref(false)
|
|
const addTreeNodeId = ref('')
|
|
const addTreeNodeId = ref('')
|
|
const addTreeNodeOldId = ref('')
|
|
const addTreeNodeOldId = ref('')
|
|
const addTreeNodeType = ref('1')
|
|
const addTreeNodeType = ref('1')
|
|
|
|
+const isCustom = ref(null)
|
|
|
|
+//新增自定义节点
|
|
|
|
+const addNodeModalCus = ref(false)
|
|
|
|
+const addNodeLoadingCus = ref(false)
|
|
|
|
+const nodeNameinput = ref('')
|
|
|
|
|
|
//选中的节点
|
|
//选中的节点
|
|
const allSelectedList = ref([])
|
|
const allSelectedList = ref([])
|
|
@@ -1000,7 +1047,23 @@ const addNodeClick = async () => {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+const addNodeClickCur = async ()=>{
|
|
|
|
+ //发起请求
|
|
|
|
+ addNodeLoadingCus.value = true
|
|
|
|
+ const { error, code } = await wbsApi.saveCustomAddContractNode({
|
|
|
|
+ nodeName: nodeNameinput.value,
|
|
|
|
+ nodeType: treeItemInfo.value?.nodeType || '',
|
|
|
|
+ partitionCode: treeItemInfo.value?.partitionCode || '',
|
|
|
|
+ primaryKeyId: treeItemInfo.value?.primaryKeyId || '',
|
|
|
|
+ })
|
|
|
|
+ //判断状态
|
|
|
|
+ addNodeLoadingCus.value = false
|
|
|
|
+ if (!error && code === 200) {
|
|
|
|
+ window?.$message?.success('新增成功')
|
|
|
|
+ addNodeModalCus.value = false
|
|
|
|
+ window?.location?.reload() //刷新页面
|
|
|
|
+ }
|
|
|
|
+}
|
|
//删除节点
|
|
//删除节点
|
|
const delModalClick = () => {
|
|
const delModalClick = () => {
|
|
|
|
|