Browse Source

合同工程清单接口调试

duy 1 year ago
parent
commit
5fd403a40c

+ 6 - 0
src/api/modules/project/debit/contract.js

@@ -47,4 +47,10 @@ export const getImportTemplate = (form = {}, msg = true) => HcApi({
     url: '/api/blade-meter/contractInventoryForm/getImportTemplate',
     method: 'get',
     params: form,
+}, msg)
+//锁定节点
+export const lockNode = (form = {}, msg = true) => HcApi({
+    url: '/api/blade-meter/contractInventoryForm/lockNode',
+    method: 'get',
+    params: form,
 }, msg)

+ 86 - 33
src/views/project/debit/contract/check-list.vue

@@ -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([