Эх сурвалжийг харах

修复资料填报树的显示问题

ZaiZai 2 жил өмнө
parent
commit
46c218cba3

+ 96 - 122
src/views/data-fill/components/HcTreeData.vue

@@ -1,33 +1,36 @@
 <template>
-    <ElTree 
-    class="hc-tree-node tree-line el-radio-group" 
-    :class="[ui,submitCounts?'tree-line1':'']"
-     ref="ElTreeRef" :props="ElTreeProps" 
-     :data="datas" highlight-current accordion 
-     node-key="primaryKeyId"
-    :default-expanded-keys="TreeExpandKey" 
-    @node-click="ElTreeClick" 
-    @node-contextmenu="ElTreeLabelContextMenu" 
-    v-loading="ElTreeLoadNode"
-    :indent="0"  
-    :filter-node-method="filterNode"
-    :default-expand-all="false"
+    <ElTree
+        ref="ElTreeRef"
+        v-loading="ElTreeLoadNode"
+        :class="[ui,submitCounts?'tree-line1':'']" :data="datas"
+        :default-expand-all="false" :default-expanded-keys="TreeExpandKey" :filter-node-method="filterNode"
+        :indent="0"
+        :props="ElTreeProps"
+        accordion
+        class="hc-tree-node tree-line el-radio-group"
+        highlight-current
+        node-key="primaryKeyId"
+        @node-click="ElTreeClick"
+        @node-contextmenu="ElTreeLabelContextMenu"
     >
         <template #default="{ node, data }">
-            <div class="data-custom-tree-node" :id="`${idPrefix}${data['primaryKeyId']}`">
+            <div :id="`${idPrefix}${data['primaryKeyId']}`" class="data-custom-tree-node">
                 <!--树组件,节点名称-->
-                <div class="label" :class="node.level === 1?'level-name':''"  style="display: flex;justify-content: space-between;">
-                  
-                        <span :class="data?.colorStatus === 2?'text-blue':data?.colorStatus === 3?'text-orange':data?.colorStatus === 4?'text-green':''" v-if="isColor">{{ node.label }}</span>
-                        <span v-else>{{ node.label }}</span>
-                  
-                     <!-- <div class="text-blue submit-counts" v-if="submitCounts">【{{ data.submitCounts ?? 0 }}】</div> -->
+                <div :class="node.level === 1?'level-name':''" class="label">
+                    <span
+                        v-if="isColor"
+                        :class="data?.colorStatus === 2?'text-blue':data?.colorStatus === 3?'text-orange':data?.colorStatus === 4?'text-green':''">{{
+                            node.label
+                        }}</span>
+                    <span v-else>{{ node.label }}</span>
                 </div>
-                <div class="text-blue submit-counts" v-if="isSubmitCounts">【{{ data.submitCounts ?? 0 }}】</div>
+                <div v-if="isSubmitCounts" class="text-blue submit-counts">【{{ data.submitCounts ?? 0 }}】</div>
                 <!--树组件,操作菜单-->
-                <div class="menu-icon1" :class="node.showTreeMenu?'show':''" v-if="node.level !== 1 && menusData.length > 0" @click.stop>
-                    <div class="cu-tree-node-popover-menu-icon" @click.prevent.stop="ElTreeLabelContextMenu($event,data,node)">
-                        <HcIcon name="menu" ui="text-2xl"/>
+                <div v-if="node.level !== 1 && menusData.length > 0" :class="node.showTreeMenu?'show':''"
+                     class="menu-icon1" @click.stop>
+                    <div class="cu-tree-node-popover-menu-icon"
+                         @click.prevent.stop="ElTreeLabelContextMenu($event,data,node)">
+                        <HcIcon name="apps" ui="text-2xl"/>
                     </div>
                 </div>
                 <!--树组件,操作菜单 END-->
@@ -35,21 +38,21 @@
         </template>
     </ElTree>
     <!--右键菜单-->
-    <HcContextMenu ref="contextMenuRef" :datas="menusData" @item-click="handleMenuSelect" v-if="menusData.length > 0">
+    <HcContextMenu v-if="menusData.length > 0" ref="contextMenuRef" :datas="menusData" @item-click="handleMenuSelect">
         <template #mark="{item}">
-            <HcIcon :name="item.icon" :fill="treeRefData?.isFirst" class="menu-item-icon"/>
-            <span class="menu-item-name">{{treeRefData?.isFirst ? '取消标记为首件' : '标记为首件'}}</span>
+            <HcIcon :fill="treeRefData?.isFirst" :name="item.icon" class="menu-item-icon"/>
+            <span class="menu-item-name">{{ treeRefData?.isFirst ? '取消标记为首件' : '标记为首件' }}</span>
         </template>
         <template #sort="{item}">
-            <HcIcon :name="item.icon" :line="false" class="menu-item-icon"/>
-            <span class="menu-item-name">{{item.label}}</span>
+            <HcIcon :line="false" :name="item.icon" class="menu-item-icon"/>
+            <span class="menu-item-name">{{ item.label }}</span>
         </template>
     </HcContextMenu>
 </template>
 
 <script setup>
-import {ref,watch,nextTick} from "vue";
-import {getArrValue,getObjValue} from "vue-utils-plus"
+import {ref, watch, nextTick} from "vue";
+import {getArrValue, getObjValue} from "vue-utils-plus"
 //参数
 const props = defineProps({
     menus: {
@@ -88,17 +91,17 @@ const props = defineProps({
         type: Boolean,
         default: false
     },
-    searchTreeVal:{
-      type: String,
-        default: '11'  
+    searchTreeVal: {
+        type: String,
+        default: '11'
     },
-    ui:{
-         type: String,
+    ui: {
+        type: String,
         default: ''
     },
-    ElTreeLoadNode:{
-        type:Boolean,
-        default:true
+    ElTreeLoadNode: {
+        type: Boolean,
+        default: true
     }
 })
 
@@ -117,8 +120,8 @@ const isAutoKeys = ref(props.isAutoKeys)
 const TreeExpandKey = ref(props.autoExpandKeys)
 const idPrefix = ref(props.idPrefix);
 const isSubmitCounts = ref(props.submitCounts);
-const searchInfo=ref(props.searchTreeVal)
-const ElTreeLoadNodevalue=ref(props.ElTreeLoadNode)
+const searchInfo = ref(props.searchTreeVal)
+const ElTreeLoadNodevalue = ref(props.ElTreeLoadNode)
 //监听
 watch(() => [
     props.menus,
@@ -129,37 +132,36 @@ watch(() => [
     props.submitCounts,
     props.searchTreeVal,
     props.ElTreeLoadNode
-], ([menus, isMark, AutoKeys, expandKeys, UserIdPrefix, submitCounts,searchTreeVal,elTreeLoadNode]) => {
+], ([menus, isMark, AutoKeys, expandKeys, UserIdPrefix, submitCounts, searchTreeVal, elTreeLoadNode]) => {
     menusData.value = menus
     menuMark.value = isMark
     isAutoKeys.value = AutoKeys
     TreeExpandKey.value = expandKeys
     idPrefix.value = UserIdPrefix
     isSubmitCounts.value = submitCounts
-    searchInfo.value=searchTreeVal
-    ElTreeLoadNodevalue.value=elTreeLoadNode
+    searchInfo.value = searchTreeVal
+    ElTreeLoadNodevalue.value = elTreeLoadNode
 })
 watch(searchInfo, (val) => {
-    if(val){
-        nextTick(()=> {
-              emit('changetreelaod',true)
-             ElTreeRef?.value.filter(val)
-        })
-        
-    }else{
-        emit('changeSearch')
-    }
-   
-},
+        if (val) {
+            nextTick(() => {
+                emit('changetreelaod', true)
+                ElTreeRef?.value.filter(val)
+            })
+
+        } else {
+            emit('changeSearch')
+        }
 
-{immediate:true}
+    },
 
+    {immediate: true}
 )
 //事件
-const emit = defineEmits(['menuTap','nodeTap','changeSearch','changetreelaod'])
+const emit = defineEmits(['menuTap', 'nodeTap', 'changeSearch', 'changetreelaod'])
 
 //节点被点击
-const ElTreeClick = async (data,node) => {
+const ElTreeClick = async (data, node) => {
     if (isAutoKeys.value) {
         let autoKeysArr = []
         await getNodeExpandKeys(node, autoKeysArr)
@@ -192,7 +194,7 @@ const getNodeExpandKeys = async (node, newKeys) => {
 }
 //鼠标右键事件
 const contextMenuRef = ref(null)
-const ElTreeLabelContextMenu = (e,data,node) => {
+const ElTreeLabelContextMenu = (e, data, node) => {
     const rows = menusData.value || [];
     if (node.level !== 1 && rows.length > 0) {
         e.preventDefault();
@@ -204,7 +206,7 @@ const ElTreeLabelContextMenu = (e,data,node) => {
 }
 
 //鼠标右键菜单被点击
-const handleMenuSelect = async({key}) => {
+const handleMenuSelect = async ({key}) => {
     const node = treeRefNode.value;
     const data = treeRefData.value;
     //如果为标记菜单
@@ -220,12 +222,12 @@ const handleMenuSelect = async({key}) => {
             let autoKeysArr = []
             await getNodeExpandKeys(node, autoKeysArr)
             const autoKeys = autoKeysArr.reverse()
-            emit('menuTap', {key, node, data,keys:autoKeys})
+            emit('menuTap', {key, node, data, keys: autoKeys})
         }
     }
 }
 //设置树菜单的标记数据
-const setElTreeMenuMark = (keys,isFirst) => {
+const setElTreeMenuMark = (keys, isFirst) => {
     keys.forEach(item => {
         //根据 data 或者 key 拿到 Tree 组件中的 node
         let node = ElTreeRef.value.getNode(item)
@@ -240,34 +242,34 @@ const removeElTreeNode = (key) => {
     //删除 Tree 中的一个节点,使用此方法必须设置 node-key 属性
     ElTreeRef.value.remove(node)
 }
- const getReturnNode=(node,_array,value)=>{
-      
-        let isPass = node.data &&  node.data.title && node.data.title.indexOf(value) !== -1;
-        isPass?_array.push(isPass):'';
-        if(!isPass && node.level!=1 && node.parent){
-          getReturnNode(node.parent,_array,value);
-        }
-        //  setTimeout(()=>{
-        //       emit('changetreelaod',false)
-        //  },3000)
- }
-const filterNode = (value, data,node) => {
-    if(!value){
-            return true;
-        }
-        let level = node.title;
-        let _array = [];//这里使用数组存储 只是为了存储值。
-        getReturnNode(node,_array,value);
-        let result = false;
-        _array.forEach((item)=>{
-            result = result || item;
-        });
-       setTimeout(()=>{
-            emit('changetreelaod',false)
-       },1000)
-        return result;
-        
+const getReturnNode = (node, _array, value) => {
+
+    let isPass = node.data && node.data.title && node.data.title.indexOf(value) !== -1;
+    isPass ? _array.push(isPass) : '';
+    if (!isPass && node.level != 1 && node.parent) {
+        getReturnNode(node.parent, _array, value);
     }
+    //  setTimeout(()=>{
+    //       emit('changetreelaod',false)
+    //  },3000)
+}
+const filterNode = (value, data, node) => {
+    if (!value) {
+        return true;
+    }
+    let level = node.title;
+    let _array = [];//这里使用数组存储 只是为了存储值。
+    getReturnNode(node, _array, value);
+    let result = false;
+    _array.forEach((item) => {
+        result = result || item;
+    });
+    setTimeout(() => {
+        emit('changetreelaod', false)
+    }, 1000)
+    return result;
+
+}
 // 暴露出去
 defineExpose({
     setElTreeMenuMark,
@@ -278,40 +280,10 @@ defineExpose({
 
 <style lang="scss" scoped>
 @import "../../../styles/app/tree.scss";
-// .el-radio-group {
-//    width: auto;
-   
-// }
 .el-radio-group {
     width: 100% !important;
-    display:inline-grid;
+    display: inline-grid;
 }
-// .data-custom-tree-node {
-//     .menu-icon {
-//         position: relative;
-//         font-size: 20px;
-//         opacity: 0;
-//         pointer-events: none;
-//         transition: opacity 0.2s;
-//         .cu-tree-node-popover-menu-icon {
-//             display: flex;
-//             align-items: center;
-//             justify-content: center;
-//         }
-//     }
-//     &:hover {
-//         .menu-icon {
-//             opacity: 1;
-//             pointer-events: all;
-//             cursor: context-menu;
-//         }
-//     }
-//     .menu-icon.show {
-//         opacity: 1;
-//         pointer-events: all;
-//         cursor: context-menu;
-//     }
-// }
 .data-custom-tree-node {
     flex: 1;
     white-space: nowrap;
@@ -325,11 +297,12 @@ defineExpose({
     }
     .submit-counts {
         position: unset;
+        font-size: 14px;
     }
     .menu-icon1 {
         position: unset;
         vertical-align: bottom;
-        display:inline-block;
+        display: inline-block;
         pointer-events: none;
         transition: opacity 0.2s;
         opacity: 0;
@@ -357,6 +330,7 @@ defineExpose({
 }
 </style>
 <style lang="scss">
+
 .el-tree.hc-tree-node .el-tree-node {
     white-space: nowrap;
     overflow: hidden;
@@ -367,4 +341,4 @@ defineExpose({
         text-overflow: ellipsis;
     }
 }
-</style>
+</style>

+ 66 - 66
src/views/data-fill/components/WbsTree.vue

@@ -1,20 +1,33 @@
 <template>
-    <ElTree class="hc-tree-node tree-line el-radio-group" :class="[ui,submitCounts?'tree-line1':'']" ref="ElTreeRef" :props="ElTreeProps" :load="ElTreeLoadNode" lazy highlight-current accordion node-key="primaryKeyId"
-            :default-expanded-keys="defaultExpandedCids" @node-click="ElTreeClick" @node-contextmenu="ElTreeLabelContextMenu" :indent="0"  :key="treeKey" >
-        <template #default="{ node, data }"  >
-            <div class="data-custom-tree-node" :id="`${idPrefix}${data['primaryKeyId']}`">
+    <ElTree :key="treeKey" ref="ElTreeRef"
+            :class="[ui,submitCounts?'tree-line1':'']" :default-expanded-keys="defaultExpandedCids" :indent="0"
+            :load="ElTreeLoadNode"
+            :props="ElTreeProps" accordion
+            class="hc-tree-node tree-line el-radio-group" highlight-current
+            lazy node-key="primaryKeyId" @node-click="ElTreeClick"
+            @node-contextmenu="ElTreeLabelContextMenu">
+        <template #default="{ node, data }">
+            <div :id="`${idPrefix}${data['primaryKeyId']}`" class="data-custom-tree-node">
                 <!--树组件,节点名称-->
-                <div class="label" :class="node.level === 1?'level-name':''">
-                    <span :class="data?.colorStatus === 2?'text-blue':data?.colorStatus === 3?'text-orange':data?.colorStatus === 4?'text-green':''" v-if="isColor">{{ node.label }}</span>
+                <div :class="node.level === 1?'level-name':''" class="label">
+                    <span
+                        v-if="isColor"
+                        :class="data?.colorStatus === 2?'text-blue':data?.colorStatus === 3?'text-orange':data?.colorStatus === 4?'text-green':''">{{
+                            node.label
+                        }}</span>
                     <span v-else>{{ node.label }}</span>
                 </div>
 
                 <!--树组件,统计数量-->
-                <div class="text-blue submit-counts" v-if="isSubmitCounts">【{{ data.submitCounts ?? 0 }}】</div>
+                <div v-if="isSubmitCounts" class="text-blue submit-counts">
+                    【{{ data.submitCounts ?? 0 }}】
+                </div>
 
                 <!--树组件,操作菜单-->
-                <div class="menu-icon1" :class="node.showTreeMenu?'show':''" v-if="node.level !== 1 && menusData.length > 0">
-                    <div class="cu-tree-node-popover-menu-icon" @click.prevent.stop="ElTreeLabelContextMenu($event,data,node)">
+                <div v-if="node.level !== 1 && menusData.length > 0" :class="node.showTreeMenu?'show':''"
+                     class="menu-icon1">
+                    <div class="cu-tree-node-popover-menu-icon"
+                         @click.prevent.stop="ElTreeLabelContextMenu($event,data,node)">
                         <HcIcon name="apps" ui="text-2xl"/>
                     </div>
                 </div>
@@ -23,22 +36,23 @@
         </template>
     </ElTree>
     <!--右键菜单-->
-    <HcContextMenu ref="contextMenuRef" :datas="menusData" @item-click="handleMenuSelect" v-if="menusData.length > 0" @closed="handleMenuClosed">
+    <HcContextMenu v-if="menusData.length > 0" ref="contextMenuRef" :datas="menusData" @closed="handleMenuClosed"
+                   @item-click="handleMenuSelect">
         <template #mark="{item}">
-            <HcIcon :name="item.icon" :fill="treeRefData?.isFirst" class="menu-item-icon"/>
-            <span class="menu-item-name">{{treeRefData?.isFirst ? '取消标记为首件' : '标记为首件'}}</span>
+            <HcIcon :fill="treeRefData?.isFirst" :name="item.icon" class="menu-item-icon"/>
+            <span class="menu-item-name">{{ treeRefData?.isFirst ? '取消标记为首件' : '标记为首件' }}</span>
         </template>
         <template #sort="{item}">
-            <HcIcon :name="item.icon" :line="false" class="menu-item-icon"/>
-            <span class="menu-item-name">{{item.label}}</span>
+            <HcIcon :line="false" :name="item.icon" class="menu-item-icon"/>
+            <span class="menu-item-name">{{ item.label }}</span>
         </template>
     </HcContextMenu>
 </template>
 
 <script setup>
-import {ref,nextTick,watch} from "vue";
+import {ref, nextTick, watch} from "vue";
 import dataFillQuery from '~api/data-fill/query';
-import {isItem,getArrValue,getObjValue,isValueNull} from "vue-utils-plus"
+import {isItem, getArrValue, getObjValue, isValueNull} from "vue-utils-plus"
 
 //参数
 const props = defineProps({
@@ -47,11 +61,11 @@ const props = defineProps({
         default: () => ([])
     },
     projectId: {
-        type: [String,Number],
+        type: [String, Number],
         default: ''
     },
     contractId: {
-        type: [String,Number],
+        type: [String, Number],
         default: ''
     },
     autoExpandKeys: {
@@ -86,12 +100,12 @@ const props = defineProps({
         type: Boolean,
         default: false
     },
-     classifyType: {
+    classifyType: {
         type: String,
 
     },
-    treeKey:{
-         type: [String,Number],
+    treeKey: {
+        type: [String, Number],
     }
 })
 
@@ -112,8 +126,8 @@ const projectId = ref(props.projectId);
 const contractId = ref(props.contractId);
 const idPrefix = ref(props.idPrefix);
 const isSubmitCounts = ref(props.submitCounts);
-const classifyTypedata=ref(props.classifyType);
-const treeKeyData=ref(props.treeKey)
+const classifyTypedata = ref(props.classifyType);
+const treeKeyData = ref(props.treeKey)
 
 //监听
 watch(() => [
@@ -127,7 +141,7 @@ watch(() => [
     props.submitCounts,
     props.classifyType,
     props.treeKey,
-], ([menus, isMark, AutoKeys, expandKeys, UserProjectId, UserContractId, UserIdPrefix, submitCounts,ClassifyType,TreeKey]) => {
+], ([menus, isMark, AutoKeys, expandKeys, UserProjectId, UserContractId, UserIdPrefix, submitCounts, ClassifyType, TreeKey]) => {
     menusData.value = menus
     menuMark.value = isMark
     isAutoKeys.value = AutoKeys
@@ -136,22 +150,22 @@ watch(() => [
     contractId.value = UserContractId
     idPrefix.value = UserIdPrefix
     isSubmitCounts.value = submitCounts
-    classifyTypedata.value=ClassifyType
-    treeKeyData.value=TreeKey
+    classifyTypedata.value = ClassifyType
+    treeKeyData.value = TreeKey
 })
 
 //事件
-const emit = defineEmits(['menuTap','nodeTap', 'nodeLoading'])
+const emit = defineEmits(['menuTap', 'nodeTap', 'nodeLoading'])
 
 //树形结构异步加载数据
 const defaultExpandedCids = ref([])
-const rootNode=ref({})
-const rootResolve=ref(null)
+const rootNode = ref({})
+const rootResolve = ref(null)
 const ElTreeLoadNode = async (node, resolve) => {
     let contractIdRelation = '', parentId = '', primaryKeyId = '';
     if (node.level !== 0) {
-       rootNode.value = node
-       rootResolve.value = resolve
+        rootNode.value = node
+        rootResolve.value = resolve
         const nodeData = getObjValue(node?.data);
         contractIdRelation = nodeData?.contractIdRelation || ''
         parentId = contractIdRelation ? nodeData?.primaryKeyId : nodeData?.id
@@ -163,7 +177,7 @@ const ElTreeLoadNode = async (node, resolve) => {
         contractIdRelation,
         primaryKeyId,
         parentId,
-        classifyType:classifyTypedata.value
+        classifyType: classifyTypedata.value
     })
     //处理数据
     if (!error && code === 200) {
@@ -171,10 +185,10 @@ const ElTreeLoadNode = async (node, resolve) => {
         const keys = TreeExpandKey.value || []
         const resData = getArrValue(data)
         if (keys.length > 0) {
-            let lastKey = keys[keys.length-1];
+            let lastKey = keys[keys.length - 1];
             for (const item of resData) {
                 //自动展开
-                if (isItem(keys,item?.primaryKeyId)) {
+                if (isItem(keys, item?.primaryKeyId)) {
                     defaultExpandedArr.push(item?.primaryKeyId)
                 }
                 //最后一个,选中点击
@@ -204,31 +218,16 @@ const ElTreeLoadNode = async (node, resolve) => {
         resolve([])
     }
 }
- // 刷新tree
-//   const  resetNode=async()=>{
-//       const theChildren = rootNode?.value.childNodes
-//       theChildren?.splice(0, theChildren.length)
-//         nextTick(()=>{
-//         // ElTreeRef?.value. ElTreeLoadNode(rootNode.value, rootResolve.value)
-//          ElTreeLoadNode(rootNode.value, rootResolve.value)
-
-//         })
-//      return 11111111
-
-//  }
 
 watch(classifyTypedata, (val) => {
-    if(val){
-        classifyTypedata.value=val
-    }
-
-},
-
-{immediate:true}
-
+        if (val) {
+            classifyTypedata.value = val
+        }
+    },
+    {immediate: true}
 )
 //节点被点击
-const ElTreeClick = async (data,node) => {
+const ElTreeClick = async (data, node) => {
     if (isAutoKeys.value) {
         let autoKeysArr = []
         await getNodeExpandKeys(node, autoKeysArr)
@@ -251,7 +250,7 @@ const getNodeExpandKeys = async (node, newKeys) => {
 
 //鼠标右键事件
 const contextMenuRef = ref(null)
-const ElTreeLabelContextMenu = (e,data,node) => {
+const ElTreeLabelContextMenu = (e, data, node) => {
     const rows = menusData.value || [];
     if (node.level !== 1 && rows.length > 0) {
         e.preventDefault();
@@ -264,7 +263,7 @@ const ElTreeLabelContextMenu = (e,data,node) => {
 }
 
 //鼠标右键菜单被点击
-const handleMenuSelect = async({key}) => {
+const handleMenuSelect = async ({key}) => {
     const node = treeRefNode.value;
     const data = treeRefData.value;
 
@@ -276,12 +275,12 @@ const handleMenuSelect = async({key}) => {
             emit('menuTap', {key: 'mark', node, data})
         }
     } else {
-     if (isAutoKeys.value) {
-        let autoKeysArr = []
-        await getNodeExpandKeys(node, autoKeysArr)
-        const autoKeys = autoKeysArr.reverse()
-         emit('menuTap', {key, node, data,keys:autoKeys})
-    }
+        if (isAutoKeys.value) {
+            let autoKeysArr = []
+            await getNodeExpandKeys(node, autoKeysArr)
+            const autoKeys = autoKeysArr.reverse()
+            emit('menuTap', {key, node, data, keys: autoKeys})
+        }
 
     }
 }
@@ -294,7 +293,7 @@ const handleMenuClosed = () => {
 }
 
 //设置树菜单的标记数据
-const setElTreeMenuMark = (keys,isFirst) => {
+const setElTreeMenuMark = (keys, isFirst) => {
     keys.forEach(item => {
         //根据 data 或者 key 拿到 Tree 组件中的 node
         let node = ElTreeRef.value.getNode(item)
@@ -322,7 +321,7 @@ defineExpose({
 @import "../../../styles/app/tree.scss";
 .el-radio-group {
     width: 100% !important;
-    display:inline-grid;
+    display: inline-grid;
 }
 
 .data-custom-tree-node {
@@ -338,11 +337,12 @@ defineExpose({
     }
     .submit-counts {
         position: unset;
+        font-size: 14px;
     }
     .menu-icon1 {
         position: unset;
         vertical-align: bottom;
-        display:inline-block;
+        display: inline-block;
         pointer-events: none;
         transition: opacity 0.2s;
         opacity: 0;

+ 174 - 161
src/views/data-fill/query.vue

@@ -1,46 +1,48 @@
 <template>
     <div class="hc-layout-box">
-        <div class="hc-layout-left-box" id="wbs-left-tree" :style="'width:' + leftWidth + 'px;'">
+        <div id="wbs-left-tree" :style="'width:' + leftWidth + 'px;'" class="hc-layout-left-box">
             <div class="hc-project-box">
                 <div class="hc-project-icon-box">
                     <HcIcon name="stack"/>
                 </div>
                 <div class="ml-2 project-name-box">
-                    <span class="text-xl text-cut project-alias">{{projectInfo['projectAlias']}}</span>
-                    <div class="text-xs text-cut project-name">{{projectInfo['name']}}</div>
+                    <span class="text-xl text-cut project-alias">{{ projectInfo['projectAlias'] }}</span>
+                    <div class="text-xs text-cut project-name">{{ projectInfo['name'] }}</div>
                 </div>
             </div>
             <div class="hc-tree-box">
                 <div class="hc-search-tree-val">
-                    <el-input v-model="searchTreeVal" block size="large" placeholder="请输入名称关键词检索" clearable @keyup="searchTreeKeyUp" >
+                    <el-input v-model="searchTreeVal" block clearable placeholder="请输入名称关键词检索" size="large"
+                              @keyup="searchTreeKeyUp">
                         <template #suffix>
                             <HcIcon name="search-2" ui="text-xl iscusor" @click="searchTreeClick"/>
                         </template>
                     </el-input>
                 </div>
-                <div class="hc-tree-scrollbar" v-loading="treeLoading" element-loading-text="获取数据中...">
+                <div v-loading="treeLoading" class="hc-tree-scrollbar" element-loading-text="获取数据中...">
                     <el-scrollbar>
                         <KeepAlive>
                             <template v-if="isSearchTree">
-                                <HcTreeData :datas="searchTreeData" :autoExpandKeys="treeAutoExpandKeys" :submitCounts="true" isColor 
-                                @nodeTap="wbsElTreeClick" 
-                                :searchTreeVal="searchTreeVal"
-                                @changeSearch="changeisSearch"
-                                @changetreelaod="changetreelaod"
-                                :ElTreeLoadNode="searchElTreeLoadNode"
+                                <HcTreeData :ElTreeLoadNode="searchElTreeLoadNode" :autoExpandKeys="treeAutoExpandKeys"
+                                            :datas="searchTreeData" :searchTreeVal="searchTreeVal"
+                                            :submitCounts="true"
+                                            isColor
+                                            @changeSearch="changeisSearch"
+                                            @changetreelaod="changetreelaod"
+                                            @nodeTap="wbsElTreeClick"
                                 />
                             </template>
                             <template v-else>
-                                <WbsTree 
-                                :autoExpandKeys="treeAutoExpandKeys" 
-                                :projectId="projectId" 
-                                :contractId="contractId" 
-                                :submitCounts="true" 
-                                :treeKey="wbstreeKey"
-                                isColor 
-                                @nodeTap="wbsElTreeClick"
-                                :classifyType="contractTypeTabKey"
-                                ref="wbstree"
+                                <WbsTree
+                                    ref="wbstree"
+                                    :autoExpandKeys="treeAutoExpandKeys"
+                                    :classifyType="contractTypeTabKey"
+                                    :contractId="contractId"
+                                    :projectId="projectId"
+                                    :submitCounts="true"
+                                    :treeKey="wbstreeKey"
+                                    isColor
+                                    @nodeTap="wbsElTreeClick"
                                 />
                             </template>
                         </KeepAlive>
@@ -60,37 +62,42 @@
             <HcCard :scrollbar="false" actionSize="lg">
                 <template #header>
                     <HcTooltip keys="query_report">
-                        <el-button type="primary" hc-btn :disabled="tableCheckedKeys.length <= 0" :loading="reportLoading" @click="reportModalClick">
+                        <el-button :disabled="tableCheckedKeys.length <= 0" :loading="reportLoading" hc-btn
+                                   type="primary" @click="reportModalClick">
                             <HcIcon name="send-plane-2"/>
                             <span>上报</span>
                         </el-button>
                     </HcTooltip>
                     <HcTooltip keys="query_download">
-                        <el-button hc-btn :disabled="tableCheckedKeys.length <= 0" :loading="downloadLoading" @click="batchDownload">
+                        <el-button :disabled="tableCheckedKeys.length <= 0" :loading="downloadLoading" hc-btn
+                                   @click="batchDownload">
                             <HcIcon name="download"/>
                             <span>下载</span>
                         </el-button>
                     </HcTooltip>
                     <HcTooltip keys="query_print">
-                        <el-button hc-btn :disabled="tableCheckedKeys.length <= 0" :loading="printLoading" @click="batchPrint">
+                        <el-button :disabled="tableCheckedKeys.length <= 0" :loading="printLoading" hc-btn
+                                   @click="batchPrint">
                             <HcIcon name="printer"/>
                             <span>打印</span>
                         </el-button>
                     </HcTooltip>
                     <HcTooltip keys="query_abolish">
-                        <el-button hc-btn :disabled="tableCheckedKeys.length <= 0" @click="batchAbolishClick">
+                        <el-button :disabled="tableCheckedKeys.length <= 0" hc-btn @click="batchAbolishClick">
                             <HcIcon name="delete-bin-3"/>
                             <span>废除</span>
                         </el-button>
                     </HcTooltip>
                     <HcTooltip keys="query_local_attestation">
-                        <el-button hc-btn :disabled="tableCheckedKeys.length <= 0" :loading="localLoading" @click="batchLocal">
+                        <el-button :disabled="tableCheckedKeys.length <= 0" :loading="localLoading" hc-btn
+                                   @click="batchLocal">
                             <HcIcon name="folder-download"/>
                             <span>本地验签</span>
                         </el-button>
                     </HcTooltip>
                     <HcTooltip keys="query_online_attestation">
-                        <el-button hc-btn :disabled="tableCheckedKeys.length <= 0" :loading="onlineLoading" @click="batchOnline">
+                        <el-button :disabled="tableCheckedKeys.length <= 0" :loading="onlineLoading" hc-btn
+                                   @click="batchOnline">
                             <HcIcon name="cloud"/>
                             <span>在线验签</span>
                         </el-button>
@@ -99,22 +106,25 @@
                 <template #search>
                     <div class="flex items-center">
                         <div class="w-40">
-                            <el-select v-model="searchForm.taskStatus" placeholder="流程状态" clearable>
-                                <el-option v-for="item in processStatusData" :key="item.value" :label="item['dictValue']" :value="item['dictKey']"/>
+                            <el-select v-model="searchForm.taskStatus" clearable placeholder="流程状态">
+                                <el-option v-for="item in processStatusData" :key="item.value"
+                                           :label="item['dictValue']" :value="item['dictKey']"/>
                             </el-select>
                         </div>
                         <div class="w-40 ml-2">
-                            <el-select v-model="searchForm.fileUserIdAndName" placeholder="填报人" clearable>
-                                <el-option v-for="item in reportingPersonData" :key="item.value" :label="item['label']" :value="item['value']"/>
+                            <el-select v-model="searchForm.fileUserIdAndName" clearable placeholder="填报人">
+                                <el-option v-for="item in reportingPersonData" :key="item.value" :label="item['label']"
+                                           :value="item['value']"/>
                             </el-select>
                         </div>
                         <div class="w-40 ml-2">
-                            <el-select v-model="searchForm.sourceType" placeholder="文件类型" clearable>
-                                <el-option v-for="item in fileTypeData" :key="item.value" :label="item['dictValue']" :value="item['dictKey']"/>
+                            <el-select v-model="searchForm.sourceType" clearable placeholder="文件类型">
+                                <el-option v-for="item in fileTypeData" :key="item.value" :label="item['dictValue']"
+                                           :value="item['dictKey']"/>
                             </el-select>
                         </div>
                         <div class="w-32 ml-2">
-                            <el-select v-model="searchForm.reportNumber" placeholder="上报批次" clearable>
+                            <el-select v-model="searchForm.reportNumber" clearable placeholder="上报批次">
                                 <el-option v-for="item in reportBatchData" :key="item" :label="item" :value="item"/>
                             </el-select>
                         </div>
@@ -122,7 +132,8 @@
                             <HcDatePicker :dates="betweenTime" clearable @change="betweenTimeUpdate"/>
                         </div>
                         <div class="w-60 ml-2">
-                            <el-input v-model="searchForm.queryValue" placeholder="请输入名称关键词检索" clearable @keyup="keyUpEvent"/>
+                            <el-input v-model="searchForm.queryValue" clearable placeholder="请输入名称关键词检索"
+                                      @keyup="keyUpEvent"/>
                         </div>
                         <div class="ml-2">
                             <el-button type="primary" @click="searchClick">
@@ -134,17 +145,22 @@
                 </template>
                 <template #extra>
                     <template v-if="contractInfo?.contractType === 2 || contractInfo?.contractType === 3">
-                        <HcNewSwitch :datas="contractTypeTab" :keys="contractTypeTabKey" @change="contractTypeTabChange"/>
+                        <HcNewSwitch :datas="contractTypeTab" :keys="contractTypeTabKey"
+                                     @change="contractTypeTabChange"/>
                     </template>
                 </template>
-                <HcTable ref="tableListRef" :column="tableListColumn" :datas="tableListData" :loading="tableLoading" isCheck @selection-change="tableSelectionChange">
+                <HcTable ref="tableListRef" :column="tableListColumn" :datas="tableListData" :loading="tableLoading"
+                         isCheck @selection-change="tableSelectionChange">
                     <template #name="{row}">
-                        <span class="text-link" @click="tableRowName(row)">{{row?.name}}</span>
+                        <span class="text-link" @click="tableRowName(row)">{{ row?.name }}</span>
                     </template>
                     <template #waitingUserList="{row}">
                         <template v-for="item in row['waitingUserList']">
-                            <el-tag :type="`${item.status === 2 ? 'success' : item.status === 3 ? 'warning' : item.status === 999 ? 'danger' : 'info'}`"
-                                    class="mx-1" effect="dark" v-if="item['waitingUserName']">{{item['waitingUserName']}}</el-tag>
+                            <el-tag
+                                v-if="item['waitingUserName']"
+                                :type="`${item.status === 2 ? 'success' : item.status === 3 ? 'warning' : item.status === 999 ? 'danger' : 'info'}`"
+                                class="mx-1" effect="dark">{{ item['waitingUserName'] }}
+                            </el-tag>
                         </template>
                     </template>
                 </HcTable>
@@ -152,10 +168,10 @@
                     <div class="lr-dialog-footer">
                         <div class="left">
                             <span class="text-success">任务人员中:</span>
-                            <el-tag type="info" class="mx-1" effect="dark">未签字</el-tag>
-                            <el-tag type="success" class="mx-1" effect="dark">已签字</el-tag>
-                            <el-tag type="warning" class="mx-1" effect="dark">已废除</el-tag>
-                            <el-tag type="danger" class="mx-1" effect="dark">签字异常</el-tag>
+                            <el-tag class="mx-1" effect="dark" type="info">未签字</el-tag>
+                            <el-tag class="mx-1" effect="dark" type="success">已签字</el-tag>
+                            <el-tag class="mx-1" effect="dark" type="warning">已废除</el-tag>
+                            <el-tag class="mx-1" effect="dark" type="danger">签字异常</el-tag>
                         </div>
                         <div class="right">
                             <HcPages :pages="searchForm" @change="pageChange"/>
@@ -166,18 +182,18 @@
         </div>
 
         <!--批量上报审批-->
-        <HcReportModal title="批量上报审批"
-                    url="informationWriteQuery/batchTask"
-                    :show="showReportModal"
-                    :projectId="projectId"
-                    :contractId="contractId"
-                    :taskName="reportTaskName"
-                    :ids="reportIds"
-                    isDatas
-                    :datas="reportDatas"
-                    @hide="showReportModal = false"
-                    @finish="showReportFinish"
-                    @tagClose="reportTaskTagClose"
+        <HcReportModal :contractId="contractId"
+                       :datas="reportDatas"
+                       :ids="reportIds"
+                       :projectId="projectId"
+                       :show="showReportModal"
+                       :taskName="reportTaskName"
+                       isDatas
+                       title="批量上报审批"
+                       url="informationWriteQuery/batchTask"
+                       @finish="showReportFinish"
+                       @hide="showReportModal = false"
+                       @tagClose="reportTaskTagClose"
         />
     </div>
 </template>
@@ -194,7 +210,7 @@ import {eVisaTaskCheckApi} from "~api/other"
 
 //变量
 const useAppState = useAppStore()
-const {getObjValue, getArrValue, isObjNull} = isType()
+const {getObjValue, getArrValue} = isType()
 const projectId = ref(useAppState.getProjectId);
 const contractId = ref(useAppState.getContractId);
 const projectInfo = ref(useAppState.getProjectInfo);
@@ -202,13 +218,13 @@ const contractInfo = ref(useAppState.getContractInfo);
 const isCollapse = ref(useAppState.getCollapse)
 //变量
 const wbstree = ref(null)
-const wbstreeKey=ref(Math.random())
+const wbstreeKey = ref(Math.random())
 //树搜索
 const isSearchTree = ref(false)
 //监听
 watch(() => [
     useAppState.getCollapse,
-], ([Collapse,newsearchTreeVal]) => {
+], ([Collapse]) => {
     isCollapse.value = Collapse
 })
 
@@ -221,12 +237,12 @@ onMounted(() => {
     getReportNumber()
     getFirstTaskStatus()
     getDictBizClassify()
-    if(contractTypeTabKey.value==2){
-         getSearchTreeDataJl()
-    }else{
-         getSearchTreeData()
+    if (contractTypeTabKey.value == 2) {
+        getSearchTreeDataJl()
+    } else {
+        getSearchTreeData()
     }
-   
+
 
 })
 
@@ -236,53 +252,52 @@ const searchTreeData = ref([])
 
 //回车
 const treeLoading = ref(false)
-const getSearchTreeData=async()=>{
+const getSearchTreeData = async () => {
     //  treeLoading.value = true
-     searchElTreeLoadNode.value = true
-        const {error, code, data} = await queryApi.getTreeall({
-            contractId: contractId.value,
-            projectId: projectId.value,
-            wbsId:projectInfo?.value.referenceWbsTemplateId,
-            type:1
-        })
-        //判断状态
-        if (!error && code === 200) {
-            searchTreeData.value = getArrValue(data)
-            searchElTreeLoadNode.value = false
-            treeLoading.value = false
-        } else {
-            searchElTreeLoadNode.value = false
-            treeLoading.value = false
-            searchTreeData.value = []
-        }
-    
+    searchElTreeLoadNode.value = true
+    const {error, code, data} = await queryApi.getTreeall({
+        contractId: contractId.value,
+        projectId: projectId.value,
+        wbsId: projectInfo?.value.referenceWbsTemplateId,
+        type: 1
+    })
+    //判断状态
+    if (!error && code === 200) {
+        searchTreeData.value = getArrValue(data)
+        searchElTreeLoadNode.value = false
+        treeLoading.value = false
+    } else {
+        searchElTreeLoadNode.value = false
+        treeLoading.value = false
+        searchTreeData.value = []
+    }
+
 }
-const searchElTreeLoadNode=ref(true)
-const getSearchTreeDataJl=async()=>{
+const searchElTreeLoadNode = ref(true)
+const getSearchTreeDataJl = async () => {
     //  treeLoading.value = true
-       searchElTreeLoadNode.value = true
-        const {error, code, data} = await queryApi.getTreeallJl({
-            contractId: contractId.value,
-            type:1
-        })
-        //判断状态
-        if (!error && code === 200) {
-             searchElTreeLoadNode.value = false
-             
-            let searchobj=getObjValue(data)
-            let searcharr=[]
-            for (let key in searchobj) { 
-                    searcharr.push(searchobj[key][0])
-                }
-                searchTreeData.value =searcharr  
-                treeLoading.value = false
-           
-        } else {
-            treeLoading.value = false
-             searchElTreeLoadNode.value = false
-            searchTreeData.value = []
+    searchElTreeLoadNode.value = true
+    const {error, code, data} = await queryApi.getTreeallJl({
+        contractId: contractId.value,
+        type: 1
+    })
+    //判断状态
+    if (!error && code === 200) {
+        searchElTreeLoadNode.value = false
+
+        let searchobj = getObjValue(data)
+        let searcharr = []
+        for (let key in searchobj) {
+            searcharr.push(searchobj[key][0])
         }
-    
+        searchTreeData.value = searcharr
+        treeLoading.value = false
+
+    } else {
+        treeLoading.value = false
+        searchElTreeLoadNode.value = false
+        searchTreeData.value = []
+    }
 }
 const searchTreeKeyUp = (e) => {
     if (e.key === "Enter") {
@@ -291,30 +306,28 @@ const searchTreeKeyUp = (e) => {
 }
 
 const searchTreeClick = async () => {
-      treeLoading.value=true
-    if(searchElTreeLoadNode.value===true){
-        treeLoading.value=true
-       window?.$message?.warning('请加载完再次点击搜索')
-    }else{
-           isSearchTree.value=true
-            //   treeLoading.value=false
+    treeLoading.value = true
+    if (searchElTreeLoadNode.value === true) {
+        treeLoading.value = true
+        window?.$message?.warning('请加载完再次点击搜索')
+    } else {
+        isSearchTree.value = true
+        //   treeLoading.value=false
     }
-  
-    
- 
-   
+
+
 }
 
 //树相关的变量
 const primaryKeyId = ref('')
 const nodeItemInfo = ref({})
 const nodeDataInfo = ref({})
-const changeisSearch=()=>{
-    isSearchTree.value=false
+const changeisSearch = () => {
+    isSearchTree.value = false
 }
-const changetreelaod=(val)=>{
-    treeLoading.value=val
-   
+const changetreelaod = (val) => {
+    treeLoading.value = val
+
 }
 
 //树被点击
@@ -324,7 +337,7 @@ const wbsElTreeClick = ({node, data, keys}) => {
     primaryKeyId.value = data['primaryKeyId'] || ''
     //缓存自动展开
     treeAutoExpandKeys.value = keys
-    setStoreData('wbsTreeExpandKeys',keys)
+    setStoreData('wbsTreeExpandKeys', keys)
     //改变搜索表单数据
     searchForm.value.wbsId = data['primaryKeyId']
     searchForm.value.contractIdRelation = data['contractIdRelation']
@@ -358,7 +371,7 @@ const getFileUser = async () => {
 const getReportNumber = async () => {
     const {error, code, data} = await queryApi.getReportNumber({
         contractId: contractId.value,
-        projectId:projectId.value
+        projectId: projectId.value
     })
     //判断状态
     if (!error && code === 200) {
@@ -402,16 +415,16 @@ const searchForm = ref({
 
 //结构类型tab数据和相关处理
 // const contractTypeTabKey = ref('1')
- const { contractType } = contractInfo.value;
-const contractTypeTabKey = ref(contractType===2?'2':'1')
+const {contractType} = contractInfo.value;
+const contractTypeTabKey = ref(contractType === 2 ? '2' : '1')
 const contractTypeTab = ref([
-    {key:'1',  name: '施工数据'},
-    {key:'2', name: '监理数据'}
+    {key: '1', name: '施工数据'},
+    {key: '2', name: '监理数据'}
 ]);
 const contractTypeTabChange = (item) => {
     contractTypeTabKey.value = item?.key;
     //   window?.location?.reload()  //刷新页面
-        searchClick()
+    searchClick()
 }
 
 //获取合同段类型
@@ -421,16 +434,16 @@ const contractTypeTabChange = (item) => {
 //         return contractTypeTabKey.value ?? '1'
 
 //     } else {
-         
+
 //         return null
-       
+
 //     }
 // }
 
 
 //日期时间被选择
 const betweenTime = ref(null)
-const betweenTimeUpdate = ({arr,query}) => {
+const betweenTimeUpdate = ({arr, query}) => {
     betweenTime.value = arr
     searchForm.value.betweenTime = query
 }
@@ -446,13 +459,13 @@ const keyUpEvent = (e) => {
 //搜索
 const searchClick = () => {
     searchForm.value.current = 1;
-    wbstreeKey.value=Math.random()
-     getTableData()
+    wbstreeKey.value = Math.random()
+    getTableData()
 //      wbstree.value.resetNode().then((red)=>{
 //          if(red){
 //               getTableData()
 //          }
-    
+
 //  })
 
 }
@@ -468,12 +481,12 @@ const pageChange = ({current, size}) => {
 const tableListRef = ref(null)
 const tableLoading = ref(false)
 const tableListColumn = ref([
-    {key:'name', name: '文件名称'},
-    {key:'startTime', name: '开始时间'},
-    {key:'taskStatusStr', name: '流程状态'},
-    {key:'reportNumber', name: '上报批次'},
-    {key:'fileUserIdAndName', name: '填报人'},
-    {key:'waitingUserList', name: '任务人'}
+    {key: 'name', name: '文件名称'},
+    {key: 'startTime', name: '开始时间'},
+    {key: 'taskStatusStr', name: '流程状态'},
+    {key: 'reportNumber', name: '上报批次'},
+    {key: 'fileUserIdAndName', name: '填报人'},
+    {key: 'waitingUserList', name: '任务人'}
 ])
 
 const tableListData = ref([])
@@ -483,11 +496,11 @@ const getTableData = async () => {
         tableCheckedKeys.value = []
         tableLoading.value = true
         // const classifyType = getContractTypeKey();
-        const { error, code, data } = await queryApi.getPageData({
+        const {error, code, data} = await queryApi.getPageData({
             projectId: projectId.value,
             contractId: contractId.value,
             ...searchForm.value,
-            classifyType:  contractTypeTabKey.value
+            classifyType: contractTypeTabKey.value
         })
         //处理数据
         tableLoading.value = false
@@ -507,7 +520,7 @@ const getTableData = async () => {
 const tableCheckedKeys = ref([]);
 const tableSelectionChange = (rows) => {
     tableCheckedKeys.value = rows.filter((item) => {
-        return (item??'') !== '';
+        return (item ?? '') !== '';
     })
 }
 
@@ -515,9 +528,9 @@ const tableSelectionChange = (rows) => {
 const tableRowName = (row) => {
     //如果 evisaPdfUrl 不为空,使用evisaPdfUrl,反之使用pdfUrl
     if (row['evisaPdfUrl']) {
-        window.open(row['evisaPdfUrl'],'_blank')
+        window.open(row['evisaPdfUrl'], '_blank')
     } else if (row['pdfUrl']) {
-        window.open(row['pdfUrl'],'_blank')
+        window.open(row['pdfUrl'], '_blank')
     } else {
         window.$message?.warning('文件不存在')
     }
@@ -532,7 +545,7 @@ const reportLoading = ref(false)
 const reportModalClick = async () => {
     const rows = tableCheckedKeys.value;
     //判断是否满足条件
-    const result = rows.every(({status})=> {
+    const result = rows.every(({status}) => {
         return status === 0 || status === 3
     })
     //判断状态
@@ -570,7 +583,7 @@ const reportModalClick = async () => {
 //上报的审批内容移除
 const reportTaskTagClose = (index) => {
     const row = tableCheckedKeys.value[index];
-    tableListRef.value?.toggleRowSelection(row,false)
+    tableListRef.value?.toggleRowSelection(row, false)
 }
 
 //上报完成
@@ -586,12 +599,12 @@ const batchDownload = async () => {
     const ids = rowsToId(rows)
     //批量下载
     downloadLoading.value = true
-    const { error, disposition, res } = await queryApi.batchDownloadFileToZip({ids: ids})
+    const {error, disposition, res} = await queryApi.batchDownloadFileToZip({ids: ids})
     //处理数据
     downloadLoading.value = false
     if (!error) {
         if (disposition) {
-            downloadBlob(res,disposition)
+            downloadBlob(res, disposition)
         } else {
             window.$message?.error('数据异常')
         }
@@ -605,12 +618,12 @@ const batchPrint = async () => {
     const ids = rowsToId(rows)
     //批量下载
     printLoading.value = true
-    const { error, code, data } = await queryApi.batchPrint({ids: ids})
+    const {error, code, data} = await queryApi.batchPrint({ids: ids})
     //处理数据
     printLoading.value = false
-    const res = isString(data)? data ?? '': ''
+    const res = isString(data) ? data ?? '' : ''
     if (!error && code === 200 && res) {
-        window.open(res,'_blank')
+        window.open(res, '_blank')
     }
 }
 
@@ -618,7 +631,7 @@ const batchPrint = async () => {
 const batchAbolishClick = () => {
     const rows = tableCheckedKeys.value;
     //判断是否满足条件
-    const result = rows.every(({status})=> {
+    const result = rows.every(({status}) => {
         return status !== 0 && status !== 3
     })
     //判断状态
@@ -641,7 +654,7 @@ const batchAbolishClick = () => {
 }
 //废除勾选的已上报文件
 const batchAbolishSave = async (ids) => {
-    const { error, code } = await queryApi.batchAbolish({ids: ids})
+    const {error, code} = await queryApi.batchAbolish({ids: ids})
     //处理数据
     if (!error && code === 200) {
         window.$message?.success('批量废除成功')
@@ -655,7 +668,7 @@ const localLoading = ref(false)
 const batchLocal = async () => {
     const rows = tableCheckedKeys.value;
     //判断是否满足条件
-    const result = rows.every(({status})=> {
+    const result = rows.every(({status}) => {
         return status === 2
     })
     //判断状态
@@ -663,7 +676,7 @@ const batchLocal = async () => {
         const ids = rowsToId(rows)
         //请求数据
         localLoading.value = true
-        const { error, code, data } = await queryApi.localVerify({
+        const {error, code, data} = await queryApi.localVerify({
             ids: ids
         })
         //处理数据
@@ -690,7 +703,7 @@ const batchOnline = async () => {
     }
     //发起
     onlineLoading.value = true
-    const { error, code, data } = await queryApi.onlineVerify({
+    const {error, code, data} = await queryApi.onlineVerify({
         ids: rows[0]['id']
     })
     //处理数据
@@ -713,7 +726,7 @@ const onmousedown = () => {
     const leftNum = isCollapse.value ? 142 : 272
     document.onmousemove = (ve) => {
         let diffVal = ve.clientX - leftNum;
-        if(diffVal >= 310 && diffVal <= 900) {
+        if (diffVal >= 310 && diffVal <= 900) {
             leftWidth.value = diffVal;
         }
     }
@@ -726,7 +739,7 @@ const onmousedown = () => {
 
 <style lang="scss" scoped>
 @import "../../styles/data-fill/query.scss";
-.iscusor{
+.iscusor {
     cursor: pointer;
 }
 </style>