Kaynağa Gözat

底层代码相关修改

duy 6 ay önce
ebeveyn
işleme
c56b929a03

+ 1 - 1
src/styles/app/main.scss

@@ -3,7 +3,7 @@ html, body, #app {
     height: 100%;
     font-size: 14px;
     background-color: #F0F2F5;
-    overflow: hidden;
+    // overflow: hidden;
 }
 
 embed {

+ 1 - 0
src/styles/data-fill/division.scss

@@ -8,6 +8,7 @@
         position: relative;
         margin-bottom: 24px;
         height: calc(100% - 298px);
+        // height: calc(100% - 238px);
     }
     .footer-box {
         position: relative;

+ 31 - 6
src/views/data-fill/collapse-form/index.vue

@@ -88,14 +88,14 @@
                             >
                                 评定汇总
                             </el-link>
-                            <!-- <el-link
+                            <el-link
                                 
                                 
                                 type="primary"
-                                @click.stop="autoClick(item, index)"
+                                @click="autoClick(item)"
                             >
                                 自动获取数据
-                            </el-link> -->
+                            </el-link>
                             <HcTooltip keys="wbs_copy_table">
                                 <el-link
                                     v-if="
@@ -935,7 +935,7 @@ const setTableFormMenu = (info) => {
     let newArr = [],
     infos = getObjValue(info)
     const isOpen = infos['isOpenRandomNumber'] ?? 0
-    // newArr.push({ label: '设置自动获取数据', key: 'auto' })
+     newArr.push({ label: '设置自动获取数据', key: 'auto' })
     if (isOpen === 1 && isStatus.value !== 3) {
         newArr.push({ label: '插入设计值/频率', key: 'design' })
     }
@@ -1984,6 +1984,24 @@ const getdownloadExcel = async (pKeyId) => {
 //下载模板
 const downModal = (item) => {
     const { pkeyId } = item
+    // if (isStatus.value === 3) {
+    //     window?.$messageBox?.alert('是否选择把数据一起导出?', '下载模板', {
+    //         showCancelButton: true,
+    //         confirmButtonText: '是',
+    //         cancelButtonText: '否',
+    //         callback: (action) => {
+    //             if (action === 'confirm') {
+    //                 console.log('数据')
+    //             } else if ( action === 'cancel') {
+    //                 console.log('清表')
+    //                 getdownloadExcel(pkeyId)
+    //             }
+    //         },
+    //     })
+    // } else {
+    //     console.log('清表')
+    //     getdownloadExcel(pkeyId)
+    // }
     getdownloadExcel(pkeyId)
 }
 
@@ -2126,9 +2144,13 @@ max = values[1]
     
     } 
 }
-const autoClick = async (item, index)=>{
+const autoClick = async (item)=>{
+    console.log(item, 'item')
+
     const { pkeyId } = item
-    CollapseChange(`item-${index}-${pkeyId}`)
+    // Close collapse panel
+    ActiveKey.value = ''
+    await nextTick()
     setTimeout(async () => {
         const refs = await getFormRef(pkeyId)
         const { error, code, msg, data } = await nodeBaseApi.getAllNodeBaseInfoByPkeyId(
@@ -2137,8 +2159,11 @@ const autoClick = async (item, index)=>{
                 pkeyId: pkeyId,
                 },
         )
+
         if (!error && code === 200) {
+        console.log(data, 'data')
         refs?.setFormData(data)
+
         } 
     }, 1000)
 }

+ 45 - 48
src/views/data-fill/components/HcTreeNode.vue

@@ -8,7 +8,6 @@
             :check-strictly="isStrictly"
             show-checkbox
             @check="ElTreeCheckChange"
-            @check-change="ElTreeCheckChange1"
         >
             <template #default="{ node, data }">
                 <div class="custom-tree-node">
@@ -67,6 +66,10 @@ const props = defineProps({
         type: [String, Number],
         default: '',
     },
+    onlyChildrenCheck: {
+        type: Boolean,
+        default: false,
+    },
 })
 
 //事件
@@ -96,8 +99,6 @@ watch(() => [
     projectId.value = pid
     contractId.value = cid
     isStrictly.value = strictly
-    console.log(strictly, 'strictly')
-    
     wbsId.value = wid
     isCustom.value = cus
 
@@ -106,8 +107,6 @@ watch(() => [
 //渲染完成
 onMounted(() => {
     ElTreeLoadNode()
-  
-    
 })
 
 //树形结构异步加载数据
@@ -161,53 +160,51 @@ const ElTreeLoadNode = async () => {
 }
 
 //被选择的
-const ElTreeCheckChange = (_, nodes) => {
-    console.log(nodes, 'nodes')
-
-    
-    if (isStrictly.value) {
-        const checkedNodes = ElTreeRef.value?.treeRef?.getCheckedNodes() || []
-   
-        // console.log(uncheckedNodes, 'uncheckedNodes')
-        
-        // 处理选中节点的子节点
-        checkedNodes.forEach(node => {
-            if (node.children && node.children.length > 0) {
-                node.children.forEach(child => {
-                    ElTreeRef.value?.treeRef?.setChecked(child.pKeyId, true, false)
-                })
+const ElTreeCheckChange = (data, nodes) => {
+    if (props.onlyChildrenCheck) {
+        const treeRef = ElTreeRef.value?.treeRef
+        if (treeRef) {
+            const currentNode = treeRef.getNode(data.pKeyId)
+            const isChecked = currentNode.checked
+            
+            // 递归获取所有子节点的ID
+            const getAllChildrenKeys = (node) => {
+                const keys = []
+                if (node.childNodes && node.childNodes.length > 0) {
+                    node.childNodes.forEach(child => {
+                        keys.push(child.data.pKeyId)
+                        keys.push(...getAllChildrenKeys(child))
+                    })
+                }
+                return keys
+            }
+            
+            if (!isChecked) {
+                // 取消选中时
+                if (!data.notExsitChild) {
+                    // 如果是父节点,递归取消选中当前节点及其所有子节点
+                    const allChildKeys = getAllChildrenKeys(currentNode)
+                    treeRef.setCheckedKeys([])
+                } else {
+                    // 如果是最底层节点,只取消选中当前节点
+                    treeRef.setCheckedKeys([])
+                }
+            } else {
+                // 选中时
+                if (!data.notExsitChild) {
+                    // 如果是父节点,递归选中当前节点及其所有子节点
+                    const allChildKeys = getAllChildrenKeys(currentNode)
+                    treeRef.setCheckedKeys([data.pKeyId, ...allChildKeys])
+                } else {
+                    // 如果是最底层节点,只选中当前节点
+                    treeRef.setCheckedKeys([data.pKeyId])
+                }
             }
-        })
-        
-     
-    }
-    const checkedNodes = ElTreeRef.value?.treeRef?.getCheckedNodes() || []
-    const checkedKeys = ElTreeRef.value?.treeRef?.getCheckedKeys() || []
-    const halfCheckedKeys = ElTreeRef.value?.treeRef?.getHalfCheckedKeys() || []
-    const halfCheckedNodes = ElTreeRef.value?.treeRef?.getHalfCheckedNodes() || []
-    console.log(checkedNodes, 'checkedNodes')
-    let objArr = {
-        checkedNodes: checkedNodes,
-        halfCheckedNodes:halfCheckedNodes,
-        halfCheckedKeys: halfCheckedKeys,
-        checkedKeys: checkedKeys,
-        }
-    
-    
-    emit('check-change', objArr)
-}
-const ElTreeCheckChange1 = (a, b, c) => {
-    if (!b && isStrictly.value) {
-        const uncheckedNodes = ElTreeRef.value?.treeRef?.getNode(a.pKeyId)?.data || null
-           // // 处理取消选中节点的子节点
-        if (uncheckedNodes && uncheckedNodes.children && uncheckedNodes.children.length > 0) {
-            uncheckedNodes.children.forEach(child => {
-                ElTreeRef.value?.treeRef?.setChecked(child.pKeyId, false, false)
-            })
         }
     }
-
+    emit('check-change', nodes)
 }
+
 //处理节点
 const ElTreeCheckedKeys = () => {
     const Nodes = ElTreeRef.value?.treeRef?.getCheckedNodes() || []

+ 10 - 8
src/views/data-fill/division.vue

@@ -39,7 +39,7 @@
             <div class="horizontal-drag-line" @mousedown="onmousedown" />
         </div>
         <div class="hc-page-content-box hc-division-page">
-            <!-- <div style="height: 50px" class="mb-2">
+            <div style="height: 50px" class="mb-2">
                 <hc-card class="text-right">
                     <el-button
                         hc-btn
@@ -59,7 +59,7 @@
                         <span>节点导入</span>
                     </el-button>
                 </hc-card>
-            </div> -->
+            </div>
             <div class="basic-info">
                 <HcNewCard title="当前节点基础信息">
                     <template #extra>
@@ -98,7 +98,7 @@
                             <HcIcon name="add" />
                             <span>引用元素表</span>
                         </el-button>
-                        <!-- <el-button
+                        <el-button
                             hc-btn
                             color="#3EB1A5"
                             class="text-white"
@@ -106,7 +106,7 @@
                         >
                             <HcIcon name="edit-2" />
                             <span>节点命名配置</span>
-                        </el-button> -->
+                        </el-button>
                     </template>
                     <HcTable
                         :column="tableProjectColumn"
@@ -564,6 +564,7 @@
                 :project-id="projectId"
                 :is-custom="isCustom"
                 :strictly="true"
+                only-children-check
                 @check-change="addTreeNodeCheckChange"
             />
             <HcTreeNode
@@ -572,7 +573,7 @@
                 :old-id="addTreeNodeOldId"
                 :contract-id="contractId"
                 :project-id="projectId"
-                :strictly="false"
+                :strictly="true"
                 :is-custom="isCustom"
                 @check-change="addTreeNodeCheckChange"
             />
@@ -581,11 +582,12 @@
                     <div class="left flex items-center">
                         <div class="mr-4">选中方式:</div>
                         <el-radio-group v-model="addTreeNodeType">
-                            <el-radio label="3">当前及子节点</el-radio>
-                            <el-radio class="ml-4" label="2">
+                            <el-radio value="3">当前及子节点</el-radio>
+                            <el-radio class="ml-4" :value="2">
                                 仅当前节点
                             </el-radio>
-                            <el-radio label="1">当前及父节点</el-radio>
+                            <el-radio value="1">当前及父节点</el-radio>
+                            <!-- <el-radio :value="1">当前及子节点</el-radio> -->
                         </el-radio-group>
                     </div>
                     <div class="right">

+ 1 - 1
src/views/data-fill/query.vue

@@ -602,7 +602,7 @@ const tableListColumn = ref([
     { key: 'taskStatusStr', name: '流程状态', width: 100, align: 'center' },
     { key: 'reportNumber', name: '上报批次', width: 80, align: 'center' },
     { key: 'fileUserIdAndName', name: '填报人', width: 190, align: 'center' },
-    { key: 'waitingUserList', name: '任务人', align: 'center' },
+    { key: 'waitingUserList', name: '任务人', width: 100, align: 'center' },
     //{ key: 'evisaFailedInfo', name: '电签失败原因' },
 ])
 

+ 18 - 11
src/views/data-fill/wbs.vue

@@ -145,12 +145,12 @@
                     @change="authBtnTabClick"
                 >
                     <template #extra>
-                        <!-- <div v-if="ListItemDatas.length > 0" class="mr-1 flex items-center justify-center whitespace-nowrap">
+                        <div v-if="ListItemDatas.length > 0" class="mr-1 flex items-center justify-center whitespace-nowrap">
                             <div class="font-500">  文件题名</div>
                             <div class="title-input h-[30px] flex items-center leading-[30px]" :style="{ width: titleInput ? '' : '100px' }">{{ titleInput }}</div>
                         </div>
-                         -->
-                        <!-- <HcTooltip keys="node_base_data">
+                        
+                        <HcTooltip keys="node_base_data">
                             <el-button
                                 hc-btn
                                 type="primary"
@@ -162,7 +162,7 @@
                             >
                                 节点基础数据
                             </el-button>
-                        </HcTooltip> -->
+                        </HcTooltip>
                         <HcTooltip keys="wbs_views_sort_btn">
                             <el-button
                                 v-if="nodeDataInfo?.nodeClass !== 2"
@@ -914,6 +914,7 @@
                 :wbs-id="projectInfo.referenceWbsTemplateId"
                 :project-id="projectId"
                 :is-custom="isCustom"
+                
                 @check-change="addTreeNodeCheckChange"
             />
             <HcTreeNode
@@ -925,6 +926,8 @@
                 :project-id="projectId"
                 :is-custom="isCustom"
                 :strictly="true"
+              
+                :only-children-check="true"
                 @check-change="addTreeNodeCheckChange"
             />
             <HcTreeNode
@@ -934,8 +937,11 @@
                 :contract-id="contractId"
                 :wbs-id="projectInfo.referenceWbsTemplateId"
                 :project-id="projectId"
-                :strictly="false"
+                strictly
+               
                 :is-custom="isCustom"
+              
+              
                 @check-change="addTreeNodeCheckChange"
             />
             <template #footer>
@@ -943,11 +949,12 @@
                     <div class="left flex items-center">
                         <div class="mr-4">选中方式:</div>
                         <el-radio-group v-model="addTreeNodeType">
-                            <el-radio label="3">当前及子节点</el-radio>
-                            <el-radio class="ml-4" label="2">
+                            <el-radio value="3">当前及子节点</el-radio>
+                            <el-radio class="ml-4" value="2">
                                 仅当前节点
                             </el-radio>
-                            <el-radio label="1">当前及父节点</el-radio>
+                            <el-radio value="1">当前及父节点</el-radio>
+                            <!-- <el-radio value="1">当前子节点</el-radio> -->
                         </el-radio-group>
                     </div>
                     <div class="right">
@@ -2563,7 +2570,7 @@ const addTreeNodeCheckChange = (nodes) => {
         halfArr = []
     //全选数据
     const keys = nodes.checkedNodes || []
-    console.log(keys, 'keys')
+
     for (let i = 0; i < keys.length; i++) {
         NodesArr.push({
             nodeName: keys[i].nodeName,
@@ -2572,7 +2579,7 @@ const addTreeNodeCheckChange = (nodes) => {
         })
     }
     allSelectedList.value = NodesArr
-    console.log(allSelectedList.value, ' allSelectedList.value')
+
     //半选数据
     const halfNodes = nodes.halfCheckedNodes || []
     for (let i = 0; i < halfNodes.length; i++) {
@@ -2583,7 +2590,7 @@ const addTreeNodeCheckChange = (nodes) => {
         })
     }
     halfSelectedList.value = halfArr
-    console.log(halfSelectedList.value, ' halfSelectedList.value')
+   
 }
 
 //新增节点

+ 8 - 8
src/views/other/components/ListItem.vue

@@ -8,7 +8,7 @@
                 >
                     <template #title>
                         <div class="hc-collapse-item-header">
-                            <div class="text-lg truncate item-title">{{ item.name }}</div>
+                            <div class="item-title truncate text-lg">{{ item.name }}</div>
                             <div class="hc-extra-text-box">
                                 <HcTooltip v-if="item.isCopeTab === 2" keys="wbs_del_table">
                                     <el-button
@@ -69,21 +69,21 @@
                             </div>
                         </div>
                         <div class="data-fill-table-tip-box">
-                            <div class="text-orange tip-title">
+                            <div class="tip-title text-orange">
                                 <HcIcon fill name="error" ui="text-2xl" />
                                 <span class="ml-1">提示</span>
                             </div>
-                            <div class="text-gray-400 tip-item">
+                            <div class="tip-item text-gray-400">
                                 1、灰色框代表可通过系统识别计算,公式自动引用,可通过公式计算少量数据,(表头数据及简单),也可只填写白色框数据
                             </div>
-                            <div class="text-gray-400 tip-item">
+                            <div class="tip-item text-gray-400">
                                 2、系统支持键盘中,shift +
                                 tab键向上一个填报框切换,tab向下一个填报框切换。暂不支持上下按键切换输入框
                             </div>
                             <div class="table-tip-foot">
                                 <div class="tip-left-btn">
                                     <HcTooltip keys="wbs_import_table">
-                                        <div class="text-gray-400 dow-text">
+                                        <div class="dow-text text-gray-400">
                                             <HcIcon name="publish" ui="text-lg" />
                                             <span class="ml-1">导入列表数据</span>
                                         </div>
@@ -128,7 +128,7 @@
     <hc-new-dialog v-model="IDVFModal" save-text="确认插入" title="插入设计值/频率" widths="600px" @close="closeIDVFModal" @save="IDVFModalSaveClick">
         <el-alert :closable="false" title="填写完设计值和频率,系统自动计算实测值" type="warning" />
         <el-form ref="formIDVFRef" :model="formIDVFModel" label-width="auto" size="large">
-            <div class="form-item-div text-center mb-3">
+            <div class="form-item-div mb-3 text-center">
                 <el-radio-group v-model="formIDVFModel.type" size="large">
                     <el-radio :value="1">公路工程</el-radio>
                     <el-radio :value="2" class="ml-4">水利水电</el-radio>
@@ -212,7 +212,7 @@
             </div>
             <div class="dialog-table-box">
                 <div class="dialog-search">
-                    <div class="w-64 ml-2">
+                    <div class="ml-2 w-64">
                         <HcDatePicker :dates="CTDbetweenTime" clearable @change="CTDbetweenTimeUpdate" />
                     </div>
                     <div class="ml-2">
@@ -357,7 +357,7 @@
             </div>
             <div class="dialog-table-box">
                 <div class="dialog-search">
-                    <div class="w-64 ml-2">
+                    <div class="ml-2 w-64">
                         <HcDatePicker :dates="filebetweenTime" clearable @change="filebetweenTimeUpdate" />
                     </div>
                     <div class="ml-2">