Procházet zdrojové kódy

查找替换接口调用

duy před 3 měsíci
rodič
revize
378c04e18c

+ 9 - 1
src/api/modules/archiveConfig/tuning.js

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

+ 121 - 1
src/views/archives/manage/tuning.vue

@@ -32,6 +32,11 @@
                         档号整理
                     </el-button>
                 </HcTooltip>
+                <HcTooltip keys="archives_tuning_update_four">
+                    <el-button hc-btn @click="replaceClick">
+                        查找替换
+                    </el-button>
+                </HcTooltip>
                 <HcTooltip keys="archives_tuning_update_four">
                     <el-button :loading="refreshFileFourLoading" hc-btn @click="refreshFileFourClick">
                         更新案卷四要素
@@ -75,7 +80,7 @@
                             </HcTooltip>
                         </template>
                         <template #name="{ row }">
-                            <span class="text-link" @click="viewPdf(row.id)"> <HcIcon v-if="row.isLock === 1" name="lock" />  <HcIcon v-else name="lock-unlock" /> {{ row?.name }}</span>
+                            <span class="text-link" @click="viewPdf(row.id)"> <HcIcon v-if="row.isLock === 1" name="lock" style=" color:red;font-weight: bold;" />  <HcIcon v-else name="lock-unlock" style=" color:red;font-weight: bold;" /> {{ row?.name }}</span>
                         </template>
                     </HcTable>
                 </div>
@@ -228,6 +233,63 @@
                 </div>
             </template>
         </hc-new-dialog>
+        
+        <!-- 查找替换弹窗 -->
+        <hc-new-dialog v-model="showReplaceModal" :title="replaceTitle" widths="50vw" @save="saveReplace">
+            <div class="replace-dialog-content">
+                <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>
+
+                <el-form
+                    ref="ruleFormRef"
+                    :model="ruleForm"
+                    label-width="auto"
+                >
+                    <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>
+            </div>
+        </hc-new-dialog>
     </hc-body>
 </template>
 
@@ -962,6 +1024,64 @@ const refreshFileFourClick = async ()=>{
 
 
 }
+
+// 查找替换弹窗相关变量
+const showReplaceModal = ref(false)
+
+
+// 查找替换弹窗相关变量
+
+const replaceTitle = ref('查找替换')
+const checkInfo = ref('')
+
+
+// 触发查找替换弹窗显示
+const replaceClick = () => {
+    checkInfo.value = ''
+
+    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
+    }
+       // 更新checkInfo的值
+    checkInfo.value = `共计${tableCheckedKeys.value.length}项,档号为${tableCheckedKeys.value.map(item => item.fileNumber).join(',')}`
+     ruleForm.value = {}
+    showReplaceModal.value = true
+}
+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 tuningApi.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" scoped>