From af4f913751c08fd6ef70cb183de2fb3c604bab38 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 31 十月 2025 16:33:15 +0800
Subject: [PATCH] 人力资源-添加导出功能

---
 src/views/collaborativeApproval/knowledgeBase/index.vue |   74 +++++++++++++++++++-----------------
 1 files changed, 39 insertions(+), 35 deletions(-)

diff --git a/src/views/collaborativeApproval/knowledgeBase/index.vue b/src/views/collaborativeApproval/knowledgeBase/index.vue
index f199321..cb643ad 100644
--- a/src/views/collaborativeApproval/knowledgeBase/index.vue
+++ b/src/views/collaborativeApproval/knowledgeBase/index.vue
@@ -24,11 +24,12 @@
         </el-button>
       </div>
       <div>
+        <el-button @click="handleExport" style="margin-right: 10px">瀵煎嚭</el-button>
         <el-button type="primary" @click="openForm('add')">鏂板鐭ヨ瘑</el-button>
         <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>
       </div>
     </div>
-    
+
     <div class="table_list">
       <PIMTable
         rowKey="id"
@@ -221,7 +222,7 @@
         <span class="dialog-footer">
           <el-button @click="viewDialogVisible = false">鍏抽棴</el-button>
           <el-button type="primary" @click="copyKnowledge">澶嶅埗鐭ヨ瘑</el-button>
-          <el-button type="success" @click="markAsFavorite">鏀惰棌</el-button>
+          <!-- <el-button type="success" @click="markAsFavorite">鏀惰棌@</el-button> -->
         </span>
       </template>
     </el-dialog>
@@ -230,10 +231,10 @@
 
 <script setup>
 import { Search } from "@element-plus/icons-vue";
-import { onMounted, ref, reactive, toRefs } from "vue";
+import { onMounted, ref, reactive, toRefs, getCurrentInstance } from "vue";
 import { ElMessage, ElMessageBox } from "element-plus";
 import PIMTable from "@/components/PIMTable/PIMTable.vue";
-import { listKnowledgeBase, delKnowledgeBaseBatch,addKnowledgeBase,updateKnowledgeBase } from "@/api/collaborativeApproval/knowledgeBase.js";
+import { listKnowledgeBase, delKnowledgeBase,addKnowledgeBase,updateKnowledgeBase } from "@/api/collaborativeApproval/knowledgeBase.js";
 
 // 琛ㄥ崟楠岃瘉瑙勫垯
 const rules = {
@@ -283,11 +284,11 @@
   currentKnowledge: {}
 });
 
-const { 
-  searchForm, 
-  tableLoading, 
-  page, 
-  tableData, 
+const {
+  searchForm,
+  tableLoading,
+  page,
+  tableData,
   selectedIds,
   form,
   dialogVisible,
@@ -473,13 +474,13 @@
   const now = new Date();
   const randomType = knowledgeTypes[Math.floor(Math.random() * knowledgeTypes.length)];
   const randomScenario = scenarios[Math.floor(Math.random() * scenarios.length)];
-  
+
   // 鐢熸垚闅忔満鏍囬
   let title = titleTemplates[Math.floor(Math.random() * titleTemplates.length)];
   title = title
     .replace('{type}', randomType.label)
     .replace('{scenario}', randomScenario);
-  
+
   const newKnowledge = {
     id: newId,
     title: title,
@@ -493,15 +494,15 @@
     usageCount: Math.floor(Math.random() * 20) + 1,
     createTime: now.toLocaleString()
   };
-  
+
   // 娣诲姞鍒版暟鎹紑澶�
   mockData.unshift(newKnowledge);
-  
+
   // 淇濇寔鏁版嵁閲忓湪鍚堢悊鑼冨洿鍐咃紙鏈�澶氫繚鐣�30鏉★級
   if (mockData.length > 30) {
     mockData = mockData.slice(0, 30);
   }
-  
+
   console.log(`[${new Date().toLocaleString()}] 鑷姩鐢熸垚鏂扮煡璇�: ${title}`);
 };
 
@@ -657,15 +658,15 @@
 // 澶嶅埗鐭ヨ瘑
 const copyKnowledge = () => {
   const knowledgeText = `
-鐭ヨ瘑鏍囬锛�${currentKnowledge.value.title}
-鐭ヨ瘑绫诲瀷锛�${getTypeLabel(currentKnowledge.value.type)}
-閫傜敤鍦烘櫙锛�${currentKnowledge.value.scenario}
-闂鎻忚堪锛�${currentKnowledge.value.problem}
-瑙e喅鏂规锛�${currentKnowledge.value.solution}
-鍏抽敭瑕佺偣锛�${currentKnowledge.value.keyPoints}
-鍒涘缓浜猴細${currentKnowledge.value.creator}
+    鐭ヨ瘑鏍囬锛�${currentKnowledge.value.title}
+    鐭ヨ瘑绫诲瀷锛�${getTypeLabel(currentKnowledge.value.type)}
+    閫傜敤鍦烘櫙锛�${currentKnowledge.value.scenario}
+    闂鎻忚堪锛�${currentKnowledge.value.problem}
+    瑙e喅鏂规锛�${currentKnowledge.value.solution}
+    鍏抽敭瑕佺偣锛�${currentKnowledge.value.keyPoints}
+    鍒涘缓浜猴細${currentKnowledge.value.creator}
   `.trim();
-  
+
   // 澶嶅埗鍒板壀璐存澘
   navigator.clipboard.writeText(knowledgeText).then(() => {
     ElMessage.success("鐭ヨ瘑鍐呭宸插鍒跺埌鍓创鏉�");
@@ -682,14 +683,14 @@
     mockData[index].usageCount += 1;
     currentKnowledge.value.usageCount += 1;
   }
-  
+
   ElMessage.success("宸叉敹钘忥紝浣跨敤娆℃暟+1");
 };
 
 // 鎻愪氦鐭ヨ瘑琛ㄥ崟
 const submitForm = async () => {
   try {
-    await formRef.value.validate();   
+    await formRef.value.validate();
     if (dialogType.value === "add") {
       // 鏂板鐭ヨ瘑
       addKnowledgeBase({...form.value}).then(res => {
@@ -723,27 +724,30 @@
     ElMessage.warning("璇烽�夋嫨瑕佸垹闄ょ殑鐭ヨ瘑");
     return;
   }
-  
+
   ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚垹闄わ紝鏄惁纭鍒犻櫎锛�", "鍒犻櫎", {
     confirmButtonText: "纭",
     cancelButtonText: "鍙栨秷",
     type: "warning",
   }).then(() => {
-    // 浠巑ockData涓垹闄ら�変腑鐨勯」
-    selectedIds.value.forEach(id => {
-      const index = mockData.findIndex(item => item.id === id);
-      if (index !== -1) {
-        mockData.splice(index, 1);
+    // console.log(selectedIds.value);
+    delKnowledgeBase(selectedIds.value).then(res => {
+      if(res.code == 200){
+        ElMessage.success("鍒犻櫎鎴愬姛");
+        selectedIds.value = [];
+        getList();
       }
-    });
-    
-    ElMessage.success("鍒犻櫎鎴愬姛");
-    selectedIds.value = [];
-    getList();
+    })
   }).catch(() => {
     // 鐢ㄦ埛鍙栨秷
   });
 };
+
+// 瀵煎嚭
+const { proxy } = getCurrentInstance()
+const handleExport = () => {
+  proxy.download('/knowledgeBase/export', { ...searchForm.value }, '鐭ヨ瘑搴�.xlsx')
+}
 </script>
 
 <style scoped>

--
Gitblit v1.9.3