Переглянути джерело

档案调整查找替换修改

duy 3 тижнів тому
батько
коміт
3232b1d5bf
1 змінених файлів з 141 додано та 2 видалено
  1. 141 2
      src/views/archives/manage/tuning.vue

+ 141 - 2
src/views/archives/manage/tuning.vue

@@ -86,7 +86,7 @@
                 </el-button>
                 <HcTooltip keys="archives_tuning_btn_combine">
                     <el-button hc-btn :disabled="tableCheckedKeys.length <= 0" @click="mergeClick">
-                        并卷
+                        重组
                     </el-button>
                 </HcTooltip>
                 <HcTooltip keys="archives_tuning_btn_num">
@@ -271,9 +271,15 @@
         </hc-new-dialog>
         <!-- 编辑案卷信息 -->
         <hc-new-dialog v-model="showUploadModal" :title="editTitle" widths="80vw">
+            <template #search>
+                <el-button hc-btn :disabled="tableCheckedKeysUpload.length <= 0" type="primary" @click="replaceClickCollect">
+                    查找替换
+                </el-button>
+            </template>
             <HcTable
+                ref="tableUploadRef"
                 :column="tableUploadColumn" :datas="tableUploadData" :index-style="{ width: 60 }"
-                :loading="uploadSaveLoading" is-new ui="hc-form-table"
+                :loading="uploadSaveLoading" is-new ui="hc-form-table" is-check @selection-change="uploadTableSelection"
             >
                 <template #name="{ row }">
                     <el-input v-model="row.name" :class="row.isFileNumber ? 'is-error' : ''" @input="tableIsInput($event, row, 'name')" />
@@ -413,6 +419,68 @@
         </hc-new-dialog>
         <!-- 展开案卷 -->
         <CarrySpotChecksDrawer :show="spotChecksDrawer" :file-id="fileId" :checkmeta-file-id="checkmetaFileId" @close="onCarrySpotChecksClose" />
+
+        <!-- 卷内编辑查找替换弹窗 -->
+        <hc-new-dialog v-model="showReplaceModalCollect" widths="50vw" :loading="saveReplaceLoadCollect" @save="saveReplaceCollect">
+            <template #header>
+                <div class="text-1xl mt-2 text-center font-bold">
+                    {{ replaceTitleCollect }}
+                </div>
+            </template>
+            <div class="replace-dialog-content">
+                <div class="text-center">
+                    <el-radio-group v-model="tabPositionCollect" style="margin-bottom: 30px" @change="changeTab">
+                        <el-radio-button value="1">新增</el-radio-button>
+                        <el-radio-button value="2">替换</el-radio-button>
+                        <el-radio-button value="3">删除</el-radio-button>
+                    </el-radio-group>
+                </div>
+
+                <el-form
+                    ref="ruleFormRef"
+                    :model="ruleFormCollect"
+                    label-width="auto"
+                    size="large"
+                >
+                    <el-form-item v-if="tabPositionCollect !== '3'" label="查找内容" prop="query">
+                        <el-input v-model="ruleFormCollect.query" placeholder="请输入原内容" />
+                    </el-form-item>
+                    <el-form-item v-if="tabPositionCollect === '1'" label="新增内容" prop="replace">
+                        <el-input
+                            v-model="ruleFormCollect.replace"
+                            placeholder="请输入新增内容"
+                        />
+                    </el-form-item>
+                    <el-form-item v-if="tabPositionCollect === '2'" label="替换内容" prop="replace">
+                        <el-input
+                            v-model="ruleFormCollect.replace"
+                            placeholder="请输入替换后内容"
+                        />
+                    </el-form-item>
+                    <el-form-item v-if="tabPositionCollect === '3'" label="删除内容" prop="query">
+                        <el-input
+                            v-model="ruleFormCollect.query"
+                            placeholder="请输入原内容"
+                        />
+                    </el-form-item>
+                    <el-form-item v-if="tabPositionCollect === '1'" label="定位条件" prop="position">
+                        <el-select
+                            v-model="ruleFormCollect.position"
+                            placeholder="请选择"
+                        >
+                            <el-option
+                                label="前"
+                                :value="1"
+                            />
+                            <el-option
+                                label="后"
+                                :value="2"
+                            />
+                        </el-select>
+                    </el-form-item>
+                </el-form>
+            </div>
+        </hc-new-dialog>
     </hc-body>
 </template>
 
@@ -425,6 +493,7 @@ import { rowsToId, rowsToIdNumArr } from '~uti/tools'
 
 import tuningApi from '~api/archiveConfig/tuning.js'
 import archiveFileApi from '~api/archiveFile/archiveFileAuto.js'
+import archiveFileApiCollect from '~api/archiveFile/archiveFile'
 import aiApi from '~api/ai/ai.js'
 import { HcDelMsg } from 'hc-vue3-ui'
 import { getStoreValue, setStoreValue } from '~src/utils/storage'
@@ -1004,6 +1073,7 @@ const batchEditClick = (type) => {
 
 
 //设置文件表头
+const tableUploadRef = ref(null)
 const tableUploadColumn = ref([])
 const setTableUploadColumn = (type) => {
     if (type === 1) {
@@ -1028,6 +1098,12 @@ const batchUploadCancel = () => {
     showUploadModal.value = false
     tableUploadData.value = []
 }
+//多选
+const tableCheckedKeysUpload = ref([])
+const uploadTableSelection = (rows) => {
+    tableCheckedKeysUpload.value = rows
+}
+
 //确认上传保存
 const batchUploadSaveApi = async (rows) => {
     uploadSaveLoading.value = true
@@ -1458,6 +1534,69 @@ const onCarrySpotChecksClose = () => {
 
 
 }
+
+//编辑卷内文件的查找替换
+const saveReplaceLoadCollect = ref(false)
+const showReplaceModalCollect = ref(false)
+const ruleFormCollect = ref({})
+const replaceClickCollect = ()=>{
+    
+    if (tableCheckedKeysUpload.value.length === 0) {
+        window.$message?.warning('请选择需要更新的案卷')
+        return
+    }
+        // 检查是否有被锁定的案卷
+    const lockedArchives = tableCheckedKeysUpload.value.filter(item => item.isLock === 1)
+    if (lockedArchives.length > 0) {
+        window.$message.warning('选择的案卷中包含被锁定的项,无法操作')
+        return
+    }
+       
+    showReplaceModalCollect.value = true
+    ruleFormCollect.value = {}
+}
+const saveReplaceCollect = async ()=>{
+    const rows = tableCheckedKeysUpload.value
+    let ids = ''
+    ids = arrToId(rows)
+     // 保存前去除空格
+  if (ruleFormCollect.value.query) {
+    ruleFormCollect.value.query = ruleFormCollect.value.query.trim()
+  }
+  if (ruleFormCollect.value.replace) {
+    ruleFormCollect.value.replace = ruleFormCollect.value.replace.trim()
+  }
+  
+    saveReplaceLoadCollect.value = true
+
+    const { error, code, data, msg } = await archiveFileApiCollect.findAndReplace({
+       ...ruleFormCollect.value,
+       ids,
+       type:tabPositionCollect.value,
+    })
+    
+    saveReplaceLoadCollect.value = false
+    if (!error && code === 200) {
+        window.$message?.success(msg)
+        showReplaceModalCollect.value = false
+       await getintableData()
+ 
+        intableData.value.forEach(item=>{
+            tableUploadData.value.forEach(ele=>{
+                if (item.id === ele.id) {
+                   ele.fileName = item.fileName
+                }
+            })
+        })
+        tableUploadRef.value.clearSelection()
+        
+    } else {
+        window.$message?.warning(msg)
+    }
+ 
+}
+const replaceTitleCollect = ref('查找替换')
+const tabPositionCollect = ref('1')
 </script>
 
 <style lang="scss" scoped>