|
@@ -2,7 +2,7 @@
|
|
|
<div class="relative h-full flex">
|
|
|
<div :id="`hc_tree_card_${uuid}`">
|
|
|
<hc-new-card v-loading="treeLoaing" scrollbar>
|
|
|
- <HcDataTree :h-props="treeProps" :datas="treeData" is-load-menu :auto-expand-keys="autoExpandKeys" @menuTap="treeMenuTap" @nodeTap="treeNodeTap" @loadMenu="treeLoadMenu" />
|
|
|
+ <HcDataTree :h-props="treeProps" :datas="treeData" is-load-menu :auto-expand-keys="autoExpandKeys" tree-key="id" @menuTap="treeMenuTap" @nodeTap="treeNodeTap" @loadMenu="treeLoadMenu" />
|
|
|
</hc-new-card>
|
|
|
</div>
|
|
|
<div :id="`hc_table_card_${uuid}`" class="flex-1">
|
|
@@ -282,9 +282,10 @@ import { getHeader } from 'hc-vue3-ui'
|
|
|
import { useAppStore } from '~src/store'
|
|
|
import infoTable from './components/check-list/info-table.vue'
|
|
|
import infoTable1 from './components/check-list/info-table1.vue'
|
|
|
-import { addNode, deleteNode, getDetail, getFormTree, getImportTemplate, sortForm, updateForm } from '~api/project/debit/contract.js'
|
|
|
+import { addNode, deleteNode, getDetail, getFormTree, getImportTemplate, lockNode, sortForm, updateForm } from '~api/project/debit/contract.js'
|
|
|
import { getDictionary } from '~api/other'
|
|
|
import { getStoreValue, setStoreValue } from '~src/utils/storage'
|
|
|
+import { delMessageV2 } from '~com/message/index.js'
|
|
|
|
|
|
//变量
|
|
|
const useAppState = useAppStore()
|
|
@@ -301,6 +302,7 @@ onMounted(() => {
|
|
|
setSplitRef()
|
|
|
treeLoadNode()
|
|
|
getFormType()
|
|
|
+
|
|
|
})
|
|
|
|
|
|
//初始化设置拖动分割线
|
|
@@ -357,7 +359,7 @@ const treeLoadNode = async ()=>{
|
|
|
const isInfoView = ref(false)
|
|
|
const treeNodeTap = ({ node, data, keys }) => {
|
|
|
isInfoView.value = !!node.isLeaf
|
|
|
- console.log( isInfoView.value, ' isInfoView.value ')
|
|
|
+ console.log(keys, 'keys')
|
|
|
autoExpandKeys.value = keys || []
|
|
|
getTreeNodeDetail(data)
|
|
|
setStoreValue('autoExpandKeys', keys)
|
|
@@ -401,41 +403,92 @@ const menuType = ref('')
|
|
|
const treeItem = ref({})
|
|
|
const treeMenuTap = ({ key, data, node }) => {
|
|
|
treeItem.value = data
|
|
|
- if (key === 'add') {
|
|
|
- menuType.value = 'add'
|
|
|
- treeModalTitle.value = '新增合同工程清单'
|
|
|
- treeModalShow.value = true
|
|
|
- formModel.value = {
|
|
|
- isFormNode:1,
|
|
|
- formType:node.parent.data?.formType,
|
|
|
- contractId:contractId.value,
|
|
|
- projectId:projectId.value,
|
|
|
- parentId:data.id,
|
|
|
+ if (data?.isLock !== 1) {
|
|
|
+ if (key === 'add') {
|
|
|
+ menuType.value = 'add'
|
|
|
+ treeModalTitle.value = '新增合同工程清单'
|
|
|
+ treeModalShow.value = true
|
|
|
+ formModel.value = {
|
|
|
+ isFormNode:1,
|
|
|
+ formType:node.parent.data?.formType,
|
|
|
+ contractId:contractId.value,
|
|
|
+ projectId:projectId.value,
|
|
|
+ parentId:data.id,
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (key === 'edit') {
|
|
|
+ menuType.value = 'edit'
|
|
|
+ treeModalTitle.value = data.formName + ' - 修改合同工程清单'
|
|
|
+ treeModalShow.value = true
|
|
|
+ formModel.value = data
|
|
|
+ }
|
|
|
+ if (key === 'sort') {
|
|
|
+ let nodes = [], childNodes = []
|
|
|
+ childNodes = node?.parent?.childNodes || node?.parent?.children || []
|
|
|
+
|
|
|
+ for (let i = 0; i < childNodes.length; i++) {
|
|
|
+ const res = childNodes[i]?.data
|
|
|
+ nodes.push({
|
|
|
+ formName:res?.formName,
|
|
|
+ id:res?.id,
|
|
|
+ })
|
|
|
+ }
|
|
|
+ sortTableData.value = nodes
|
|
|
+ sortModalShow.value = true
|
|
|
+ // sortTableData.value = data.children
|
|
|
}
|
|
|
+ if (key === 'del') {
|
|
|
+ delModalClick()
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ window.$message.waring('当前节点为锁定状态,不允许操作')
|
|
|
}
|
|
|
- if (key === 'edit') {
|
|
|
- menuType.value = 'edit'
|
|
|
- treeModalTitle.value = data.formName + ' - 修改合同工程清单'
|
|
|
- treeModalShow.value = true
|
|
|
- formModel.value = data
|
|
|
+
|
|
|
+ if (key === 'lock') {
|
|
|
+ handleLockNode()
|
|
|
}
|
|
|
- if (key === 'sort') {
|
|
|
- let nodes = [], childNodes = []
|
|
|
- childNodes = node?.parent?.childNodes || node?.parent?.children || []
|
|
|
-
|
|
|
- for (let i = 0; i < childNodes.length; i++) {
|
|
|
- const res = childNodes[i]?.data
|
|
|
- nodes.push({
|
|
|
- formName:res?.formName,
|
|
|
- id:res?.id,
|
|
|
- })
|
|
|
- }
|
|
|
- sortTableData.value = nodes
|
|
|
- sortModalShow.value = true
|
|
|
- // sortTableData.value = data.children
|
|
|
+}
|
|
|
+//删除节点
|
|
|
+const delModalClick = () => {
|
|
|
+ delMessageV2(async (action, instance, done) => {
|
|
|
+ if (action === 'confirm') {
|
|
|
+ instance.confirmButtonLoading = true
|
|
|
+ removeContractTreeNode()
|
|
|
+ instance.confirmButtonLoading = false
|
|
|
+ done()
|
|
|
+ } else {
|
|
|
+ done()
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
+const removeContractTreeNode = async () => {
|
|
|
+ const loadingInstance = window.$loading.service({
|
|
|
+ fullscreen: true,
|
|
|
+ text: '删除节点中,请耐心等待...',
|
|
|
+ background: 'rgba(0, 0, 0, 0.7)',
|
|
|
+ })
|
|
|
+ const { error, code } = await deleteNode({
|
|
|
+ id: treeItem.value.id || '',
|
|
|
+ contractId:contractId.value,
|
|
|
+ })
|
|
|
+ loadingInstance.close()
|
|
|
+ if (!error && code === 200) {
|
|
|
+ window?.$message?.success('删除成功')
|
|
|
+ window?.location?.reload() //刷新页面
|
|
|
+ }
|
|
|
+}
|
|
|
+//锁定节点
|
|
|
+const handleLockNode = async ()=>{
|
|
|
+ const { error, code, msg } = await lockNode({
|
|
|
+ id: treeItem.value.id || '',
|
|
|
+ contractId:contractId.value,
|
|
|
+ status:treeItem.value?.isLock || '',
|
|
|
+ })
|
|
|
+ if (!error && code === 200) {
|
|
|
+ window?.$message?.success(msg)
|
|
|
+ window?.location?.reload() //刷新页面
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
//表格数据
|
|
|
const tableLoading = ref(false)
|
|
|
const tableColumn = ref([
|