duy 1 сар өмнө
parent
commit
7193276209

+ 8 - 0
src/api/modules/archiveFile/archiveFile.js

@@ -105,5 +105,13 @@ export default {
             method: 'post',
             params: form,
         }, msg)
+    },
+         //查找替换
+    async findAndReplace(form, msg = true) {
+        return HcApi({
+            url: '/api/blade-archive/archiveFile/findAndReplace',
+            method: 'post',
+            data: form,
+        }, msg)
     },
 }

+ 127 - 0
src/views/file/collection.vue

@@ -34,6 +34,11 @@
                     <el-button :disabled="tableCheckedKeys.length <= 0" hc-btn type="danger" @click="delModalClick">删除</el-button>
                 </HcTooltip>
                 <el-button :disabled="tableCheckedKeys.length <= 0" :loading="onlineLoading" color="#e03997" hc-btn @click="batchOnline">在线验签</el-button>
+                <HcTooltip keys="file_collection_btn_look">
+                    <el-button hc-btn :disabled="tableCheckedKeys.length <= 0" type="success" @click="replaceClick">
+                        查找替换
+                    </el-button>
+                </HcTooltip>
             </template>
             <template #extra>
                 <HcTooltip keys="file_collection_sort_date">
@@ -447,6 +452,71 @@
                 </hc-body>
             </hc-new-card>
         </hc-new-drawer>
+        <!-- 查找替换弹窗 -->
+        <hc-new-dialog v-model="showReplaceModal" widths="50vw" :loading="saveReplaceLoad" @save="saveReplace">
+            <template #header>
+                <div class="text-1xl mt-2 text-center font-bold">
+                    {{ replaceTitle }}
+                </div>
+            </template>
+            <div class="replace-dialog-content">
+                <div class="text-center">
+                    <el-radio-group v-model="tabPosition" 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="ruleForm"
+                    label-width="auto"
+                    size="large"
+                >
+                    <el-form-item v-if="tabPosition !== '3'" label="查找内容" prop="query">
+                        <el-input v-model="ruleForm.query" placeholder="请输入原内容" />
+                    </el-form-item>
+                    <el-form-item v-if="tabPosition === '1'" label="新增内容" prop="replace">
+                        <el-input
+                            v-model="ruleForm.replace"
+                            placeholder="请输入新增内容"
+                        />
+                    </el-form-item>
+                    <el-form-item v-if="tabPosition === '2'" label="替换内容" prop="replace">
+                        <el-input
+                            v-model="ruleForm.replace"
+                            placeholder="请输入替换后内容"
+                        />
+                    </el-form-item>
+                    <el-form-item v-if="tabPosition === '3'" label="删除内容" prop="query">
+                        <el-input
+                            v-model="ruleForm.query"
+                            placeholder="请输入原内容"
+                        />
+                    </el-form-item>
+                    <el-form-item v-if="tabPosition === '1'" label="定位条件" prop="position">
+                        <el-select
+                            v-model="ruleForm.position"
+                            placeholder="请选择"
+                        >
+                            <el-option
+                                label="前"
+                                :value="1"
+                            />
+                            <el-option
+                                label="后"
+                                :value="2"
+                            />
+                        </el-select>
+                    </el-form-item>
+                    <!-- <el-form-item label="作用范围">
+                        <span>{{ checkInfo }}</span>
+                    </el-form-item>
+                </el-form> -->
+                </el-form>
+            </div>
+        </hc-new-dialog>
     </hc-body>
 </template>
 
@@ -1915,6 +1985,63 @@ const dateClick = async () => {
        
     } 
 }
+
+// 查找替换弹窗相关变量
+const showReplaceModal = ref(false)
+
+
+// 查找替换弹窗相关变量
+
+const replaceTitle = ref('查找替换')
+
+
+
+// 触发查找替换弹窗显示
+const replaceClick = () => {
+
+
+    if (tableCheckedKeys.value.length === 0) {
+        window.$message?.warning('请选择需要更新的案卷')
+        return
+    }
+        // 检查是否有被锁定的案卷
+    const lockedArchives = tableCheckedKeys.value.filter(item => item.isLock === 1)
+    if (lockedArchives.length > 0) {
+        window.$message.warning('选择的案卷中包含被锁定的项,无法操作')
+        return
+    }
+       
+    showReplaceModal.value = true
+    ruleForm.value = {}
+}
+const changeTab = ()=>{
+    ruleForm.value = {}
+}
+const tabPosition = ref('1')
+const ruleFormRef = ref(null)
+const ruleForm = ref({})
+const saveReplaceLoad = ref(false)
+const saveReplace = async ()=>{
+        const rows = tableCheckedKeys.value
+    let ids = ''
+    ids = arrToId(rows)
+    saveReplaceLoad.value = true
+
+    const { error, code, data, msg } = await archiveFileApi.findAndReplace({
+       ...ruleForm.value,
+       ids,
+       type:tabPosition.value,
+    })
+    
+    saveReplaceLoad.value = false
+    if (!error && code === 200) {
+        window.$message?.success(msg)
+        showReplaceModal.value = false
+        getTableData()
+    } else {
+        window.$message?.warning(msg)
+    }
+}
 </script>
 
 <style lang="scss">