Bläddra i källkod

自动识别修改

duy 1 vecka sedan
förälder
incheckning
f17c299ca5
1 ändrade filer med 180 tillägg och 3 borttagningar
  1. 180 3
      src/views/file/scan.vue

+ 180 - 3
src/views/file/scan.vue

@@ -29,7 +29,17 @@
                 </template>
                 <template #header>
                     <el-button hc-btn color="#12B9A7" class="text-white" :disabled="!folderId" @click="movesClick">移动</el-button>
-                    <el-button hc-btn color="#149BF4" class="text-white">自动识别</el-button>
+                    <!-- <el-button hc-btn color="#149BF4" class="text-white">自动识别</el-button> -->
+                    <HcTooltip keys="file_records_btn_split">
+                        <el-badge :value="taskMount" class="ml-1 mr-4 cursor-pointer" :offset="[5, 5]" @click.native.stop="taskCountClick">
+                            <el-button hc-btn style="background-color: #8B5CF6; border-color: #8B5CF6; color:white" @click.native.stop="splitClick">自动识别</el-button>
+                            <template #content="{ value }">
+                                <div class="custom-content">
+                                    <span>{{ value }}</span>
+                                </div>
+                            </template>
+                        </el-badge>
+                    </HcTooltip>
                     <el-button hc-btn class="text-white" color="#149BF4" :disabled="!tableCheckedKeys.length" @click="editClick">编辑</el-button>
                     <el-button v-del-com:[delClick] hc-btn type="danger" :disabled="!tableCheckedKeys.length">删除</el-button>
                 </template>
@@ -114,6 +124,47 @@
                 </template>
             </HcTable>
         </hc-new-dialog>
+        <!-- 自动识别列表信息 -->
+        <!-- 分解列表信息 -->
+        <hc-new-dialog v-model="splitListModal" title="分解列表信息" widths="50vw" :footer="false" height="500px" @close="splitListModalClose">
+            <HcTable
+                heights="calc(100% - 50px)"
+
+                :column="splitListColumn"
+                :datas="splitList"
+                :loading="splitListLoading"
+                is-new
+                :index-style="{ width: 70 }"
+            >
+                <template #fileNumber="{ row }">
+                    <span>{{ row.fileNumber }}</span>
+                </template>
+                <template #name="{ row }">
+                    <span>{{ row.name }}</span>
+                </template>
+                <template #status="{ row }">
+                    <span>{{ row.status }}</span>
+                </template>
+                <template #createTime="{ row }">
+                    <span>{{ row.createTime }}</span>
+                </template>
+            </HcTable>
+        </hc-new-dialog>
+        
+        <!-- 分解文件 -->
+        <hc-new-dialog v-model="splitModal" title="自动识别" widths="40vw" :loading="splitSaveLoad" @close="splitModalClose" @save="splitSave">
+            <div class="split-modal-content">
+                <div class="mb-6 text-4 font-bold">
+                    本次识别共
+                    <span class="text-red">【{{ splitInfo?.fileCount }}】</span>
+                    卷,预计耗费时长
+                    <span class="text-red">【{{ splitInfo?.taskTime }}】</span>
+                    分钟,分解完成之后,序号图标会变成      <HcIcon name="checkbox-circle" style="color:lightgreen" />
+                </div>
+                <div class="mb-6 text-orange">请不要重复提交,过会儿再来查看,识别好的文件在对应节点可查看</div>
+                <!-- <el-button type="primary" size="large" class="split-confirm-btn" hc-btn @click="splitModalClose">好的,我知道了</el-button> -->
+            </div>
+        </hc-new-dialog>
     </div>
 </template>
 
@@ -122,16 +173,19 @@ import { onMounted, ref } from 'vue'
 import scanApi from '~api/archiveFile/scanning'
 import { useAppStore } from '~src/store'
 import HcTree from '~src/components/tree/hc-tree.vue'
-import { arrToId, deepClone, getArrValue } from 'js-fast-way'
+import { arrToId, deepClone, getArrValue, getObjValue } from 'js-fast-way'
 import MenuItem from './MenuItem.vue' // 导入递归组件
 import { toPdfPage } from '~uti/btn-auth'
-import { rowsToId } from '~uti/tools'
+
+import tasksApi from '~api/tasks/data'
+import { HcFirmMsg, HcUploadFileApi } from 'hc-vue3-ui'
 const useAppState = useAppStore()
 const contractId = ref(useAppState.getContractId)
 const projectId = ref(useAppState.getProjectId)
 const folderLoading = ref(false)
 onMounted(()=>{
     getMenuFolderData()
+         getSplitInfo()
   
 })
 //菜单数据
@@ -399,6 +453,129 @@ const delClick = async (_, resolve) => {
     }
     resolve()
 }
+//自动识别功能
+
+const taskMount = ref('')
+const splitLoad = ref(false)
+const splitClick = async ()=>{
+    console.log('分解文件')
+    splitLoad.value = true
+    const rows = tableCheckedKeys.value
+    if (rows.length < 1) {
+        // await window.$message.warning('没有选择案卷时,将会对该合同段下所有案卷进行分解')
+         HcFirmMsg({
+        title: '操作确认',
+        text: '没有选择案卷时,将会对该合同段下所有案卷进行识别',
+    }, async (resolve) => {
+                     getSaveInfoData()
+                 resolve() //关闭弹窗的回调
+            })
+    } else {
+        getSaveInfoData()
+
+
+    }
+
+    // splitModal.value = true
+}
+const getSaveInfoData = async ()=>{
+    const rows = tableCheckedKeys.value
+    const { error, code, data, msg } = await tasksApi.getSaveInfo({
+                            contractId:contractId.value,
+                            projectId:projectId.value,
+                            ids:rows.map(item=>item.id).join(','),
+                            dataType:2,
+                        })
+                        splitLoad.value = false
+                        //处理数据
+                    
+                        
+                        if (!error && code === 200) {
+                            splitInfo.value = data
+                            splitModal.value = true
+                            splitInfo.value = getObjValue(data) || {}
+
+                        } else {
+                            window.$message.error(msg)
+                        }
+                        //  splitModal.value = true
+}
+const splitSaveLoad = ref(false)
+const splitSave = async ()=>{
+     const rows = tableCheckedKeys.value
+     splitSaveLoad.value = true
+
+              const { error, code, data, msg } = await tasksApi.saveSplit({
+                            contractId:contractId.value,
+                            projectId:projectId.value,
+                            ids:rows.map(item=>item.id).join(','),
+                            dataType:2,
+                        })
+                        splitSaveLoad.value = false
+                        //处理数据
+                    
+                        
+                        if (!error && code === 200) {
+                            splitInfo.value = data
+                            splitModal.value = true
+                            splitInfo.value = getObjValue(data) || {}
+                            window.$message.success(msg)
+                             getSplitInfo()
+                            splitModal.value = false
+
+
+                        } else {
+                            window.$message.error(msg)
+                        }
+}
+
+
+const splitInfo = ref({})
+const splitList = ref([
+    
+])
+// 在script setup中添加
+const splitListModal = ref(false)
+const splitListLoading = ref(false)
+const splitListColumn = ref([
+    { key: 'taskName', name: '任务名称' },
+    { key: 'finished', name: '完成数量', width: 100 },
+    { key: 'toolCount', name: '总条数', width: 100 },
+  
+])
+
+const splitListModalClose = () => {
+    splitListModal.value = false
+}
+
+// 修改taskCountClick方法
+const taskCountClick = async () => {
+    await getSplitInfo()
+    splitListModal.value = true
+}//查询任务信息
+const getSplitInfo = async ()=>{
+    const { error, code, data } = await tasksApi.selectTaskSplit({
+        contractId:contractId.value,
+        projectId:projectId.value,
+        dataType:2,
+
+    })
+    //处理数据
+    if (!error && code === 200) {
+        splitList.value = data['records']
+     
+        if (data['records'].length > 0) {
+            taskMount.value = data['total']
+        }
+    } else {
+        splitList.value = []
+        taskMount.value = ''
+    }
+}
+const splitModal = ref(false)
+const splitModalClose = ()=>{
+    splitModal.value = false
+}
 </script>
 
 <style scoped lang="scss">