Răsfoiți Sursa

档案分解文件修改

duy 2 luni în urmă
părinte
comite
62a329cb3d
2 a modificat fișierele cu 136 adăugiri și 10 ștergeri
  1. 16 0
      src/api/modules/tasks/data.js
  2. 120 10
      src/views/file/records.vue

+ 16 - 0
src/api/modules/tasks/data.js

@@ -98,4 +98,20 @@ export default {
             data: form,
         }, msg)
     },
+    //分解文件
+    async saveSplit(form, msg = true) {
+        return HcApi({
+            url: '/api/blade-archive/tasksplit/save',
+            method: 'post',
+            data: form,
+        }, msg)
+    },
+    //查询任务信息
+    async selectTaskSplit(form, msg = true) {
+        return HcApi({
+            url: '/api/blade-archive/tasksplit/selectTaskSplit',
+            method: 'get',
+            params: form,
+        }, msg)
+    },
 }

+ 120 - 10
src/views/file/records.vue

@@ -25,12 +25,19 @@
                 <HcTooltip keys="file_records_btn_upload_scanned_files">
                     <el-button type="primary" hc-btn @click="uploadModalClick">上传案卷</el-button>
                 </HcTooltip>
+                <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>
                 <HcTooltip keys="file_records_btn_moves">
                     <el-button type="primary" hc-btn @click="movesClick">跨目录移动</el-button>
                 </HcTooltip>
-                <!-- <HcTooltip keys="file_records_btn_split">
-                    <el-button hc-btn style="background-color: #8B5CF6; border-color: #8B5CF6; color:white" @click="splitClick">分解文件</el-button>
-                </HcTooltip> -->
             </template>
             <HcTable
                 ref="tableRef" :column="tableColumn" :datas="tableData" :loading="tableLoading"
@@ -44,6 +51,10 @@
                         </span>
                     </HcTooltip>
                 </template>
+                <template #splitStatus="{ row, index }">
+                    <span v-if="row.splitStatus === 1"> <HcIcon name="checkbox-circle" /></span>
+                    <span v-else> <HcIcon name="close-circle" /></span>
+                </template>
                 <template #name="{ row }">
                     <span class="text-link" @click="tableRowName(row)">{{ row?.name }}</span>
                 </template>
@@ -251,19 +262,44 @@
         </hc-new-dialog>
 
         <!-- 分解文件 -->
-        <hc-new-dialog v-model="splitModal" title="案卷分解" widths="60vw" is-row-footer @close="splitModalClose">
+        <hc-new-dialog v-model="splitModal" title="案卷分解" widths="40vw" is-row-footer @close="splitModalClose">
             <div class="split-modal-content">
-                <div class="mb-6 text-6">
+                <div class="mb-6 text-4 font-bold">
                     本次分解共
-                    <span class="text-red">【XX】</span>
+                    <span class="text-red">【{{ splitInfo?.toolCount }}】</span>
                     卷,预计耗费时长
-                    <span class="text-red">【XX】</span>
+                    <span class="text-red">【{{ splitInfo?.toolCount }}】</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>
+
+        <!-- 分解列表信息 -->
+        <hc-new-dialog v-model="splitListModal" title="分解列表信息" widths="80vw" is-table :footer="false" @close="splitListModalClose">
+            <HcTable
+           
+                :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-body>
 </template>
 
@@ -309,6 +345,8 @@ onMounted(() => {
     getStoragePeriod()
 
     getSecurityLevel()
+
+    getSplitInfo()
 })
 
 //替换文件
@@ -444,6 +482,7 @@ const tableColumn = ref([])
 //设置表头
 const setTableColumns = () => {
     tableColumn.value = [
+        { key:'splitStatus', name: '分解状态', width: 50, align: 'center' },
         { key:'fileNumber', name: '档号', width: 160, align: 'center' },
         { key:'name', name: '案卷题名' },
         { key:'secretLevel', name: '密级', width: 80, align: 'center' },
@@ -1407,10 +1446,67 @@ const onmousedown = () => {
         document.onmouseup = null
     }
 }
-
-const splitClick = ()=>{
+const taskMount = ref('')
+const splitLoad = ref(false)
+const splitClick = async ()=>{
     console.log('分解文件')
-    splitModal.value = true
+    splitLoad.value = true
+    const rows = tableCheckedKeys.value
+    if (rows.length < 1) {
+        await window.$message.warning('没有选择案卷时,将会对该合同段下所有案卷进行分解')
+    }
+    const { error, code, data } = await tasksApi.saveSplit({
+        contractId:contractId.value,
+        projectId:projectId.value,
+        ids:rows.map(item=>item.id).join(','),
+    })
+    splitLoad.value = false
+    //处理数据
+    if (!error && code === 200) {
+        splitInfo.value = data
+        console.log(data, 'data')
+        // await getSplitInfo()
+        splitModal.value = true
+    } 
+    // splitModal.value = true
+}
+
+const splitInfo = ref({})
+const splitList = ref([])
+// 在script setup中添加
+const splitListModal = ref(false)
+const splitListLoading = ref(false)
+const splitListColumn = ref([
+    { key: 'projectName', name: '项目名称' },
+    { key: 'finished', name: '完成数量' },
+    { key: 'toolCount', name: '总条数', width: 100 },
+  
+])
+
+const splitListModalClose = () => {
+    splitListModal.value = false
+}
+
+// 修改taskCountClick方法
+const taskCountClick = async () => {
+    splitListModal.value = true
+}//查询任务信息
+const getSplitInfo = async ()=>{
+    const { error, code, data } = await tasksApi.selectTaskSplit({
+        contractId:contractId.value,
+        projectId:projectId.value,
+    })
+    //处理数据
+    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 = ()=>{
@@ -1436,3 +1532,17 @@ const splitModalClose = ()=>{
     font-size: 16px !important;
 }
 </style>
+
+<style scoped>
+.item {
+  margin-top: 10px;
+  margin-right: 40px;
+}
+
+.custom-content {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  gap: 4px;
+}
+</style>