瀏覽代碼

立即更新立卷修改

duy 3 周之前
父節點
當前提交
9ff1a1f435
共有 2 個文件被更改,包括 33 次插入7 次删除
  1. 17 4
      src/components/tree/hc-tree.vue
  2. 16 3
      src/views/archives/rolling/rolling.vue

+ 17 - 4
src/components/tree/hc-tree.vue

@@ -2,7 +2,8 @@
     <el-radio-group v-model="radioKeys" @change="treeRadioChange">
         <ElTree
             ref="ElTreeRef" class="tree-line el-radio-group hc-tree-node" :class="ui" :props="ElTreeProps" :load="ElTreeLoadNode" lazy accordion highlight-current node-key="id"
-            :default-expanded-keys="defaultExpandedCids" :indent="0" @node-click="ElTreeClick" @node-contextmenu="ElTreeLabelContextMenu2"
+            :default-expanded-keys="defaultExpandedCids" :indent="0" :show-checkbox="isCheck" @node-click="ElTreeClick" @node-contextmenu="ElTreeLabelContextMenu2"
+            @check-change="handleCheckChange"
         >
             <template #default="{ node, data }">
                 <div :id="`${idPrefix}${data.id}`" class="data-custom-tree-node">
@@ -121,11 +122,15 @@ const props = defineProps({
         type:Boolean,
         default:false,
     },
+    isCheck:{
+        type:Boolean,
+        default:false,
+    },
 
 })
 
 //事件
-const emit = defineEmits(['menuTap', 'nodeTap', 'nodeLoading', 'radioChange', 'noderadio'])
+const emit = defineEmits(['menuTap', 'nodeTap', 'nodeLoading', 'radioChange', 'noderadio', 'nodeCheckChange'])
 //变量
 const ElTreeRef = ref(null)
 const treeRefNode = ref(null)
@@ -145,6 +150,7 @@ const radioKeys = ref(Number(props.radioKey))
 const isOwn = ref(props.isOwn)
 const isShowNumber = ref(props.isShowNumber)
 const isShowMenu = ref(props.isShowMenu)
+const isCheck = ref(props.isCheck)
 
 //监听
 watch(() => [
@@ -158,8 +164,9 @@ watch(() => [
     props.isOwn,
     props.isShowNumber,
     props.isShowMenu,
+    props.isCheck,
 
-], ([menus, AutoKeys, expandKeys, UserProjectId, UserContractId, UserIdPrefix, radioKey, own, num, ishowmenu]) => {
+], ([menus, AutoKeys, expandKeys, UserProjectId, UserContractId, UserIdPrefix, radioKey, own, num, ishowmenu, isshowCheck]) => {
     menusData.value = menus
     isAutoKeys.value = AutoKeys
     TreeExpandKey.value = expandKeys
@@ -170,7 +177,8 @@ watch(() => [
     isOwn.value = own
     isShowNumber.value = num
     isShowMenu.value = ishowmenu
-    console.log(isShowNumber.value, 'isShowNumber.value')
+    isCheck.value = isshowCheck
+
     
 })
 
@@ -329,6 +337,11 @@ const ElTreeClick = async (data, node) => {
         emit('nodeTap', { node, data, keys: [] })
     }
 }
+const handleCheckChange = (data, checked, indeterminate) => {
+    const checkedNodes = ElTreeRef.value.getCheckedNodes()
+    const checkedKeys = ElTreeRef.value.getCheckedKeys()
+    emit('nodeCheckChange', { checkedNodes, checkedKeys })
+}
 
 //处理自动展开的节点KEY
 const getNodeExpandKeys = async (node, newKeys) => {

+ 16 - 3
src/views/archives/rolling/rolling.vue

@@ -2,8 +2,11 @@
     <hc-body :loading="treeLoading" :project-nmae="projectInfo?.name" split>
         <template #tree>
             <HcTree
+                ref="rollingTreeRef"
                 :auto-expand-keys="treeAutoExpandKeys" :contract-id="contractId" :project-id="projectId"
-                @node-tap="nodeElTreeClick" @node-loading="treeNodeLoading" @menu-tap="ElTreeMenuClick"
+                :is-check="true" @node-tap="nodeElTreeClick" @node-loading="treeNodeLoading"
+                @menu-tap="ElTreeMenuClick"
+                @node-check-change="ECheckChange"
             />
         </template>
         <hc-new-card title="已形成的案卷">
@@ -184,8 +187,8 @@ const getClassIfyList = async () => {
     console.log(ElTreeData.value, 'ElTreeData')
 }
 //自动展开缓存
-const TreeAutoExpandKeys = ref(getStoreValue('scanningTreeExpandKeys') || [])
 
+const rollingTreeRef = ref(null)
 //项目树被点击
 const treeAutoExpandKeys = ref(getStoreValue('rollingExpandKeys') || [])
 const nodeElTreeClick = ({ node, data, keys, key }) => {
@@ -204,6 +207,13 @@ const ElTreeMenuClick = async ({ key, node, data, keys }) => {
     setStoreValue('rollingExpandKeys', keys)
     treeAutoExpandKeys.value = keys || []
 
+}
+//树节点被选中
+const checkTreeKeys = ref([])
+const ECheckChange = ({ checkedNodes, checkedKeys }) => {
+
+    checkTreeKeys.value = checkedKeys
+   
 }
 //预览pdf
 const viewPdf = async (id) => {
@@ -239,13 +249,16 @@ const updateArchive = async () => {
         const { error, code, data, msg } = await tuningApi.archiveAutoMethod({
             projectId: projectId.value,
             contractId: contractId.value,
-            nodeId: searchForm.value.nodeIds,
+            // nodeId: searchForm.value.nodeIds,
+            nodeId:  checkTreeKeys.value.length > 0 ? checkTreeKeys.value.join(',') : searchForm.value.nodeIds,
         })
         updateArchiveLoad.value = false
+         rollingTreeRef.value?.ElTreeRef?.setCheckedKeys([]) // 清除选中状态
         if (!error && code === 200) {
             window.$message?.success(data)
             count.value = 0
             Verification(true)
+           
         }
     }
 }