From 8e030566addaad00a47f62737c5b011ba9a8c0f4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E2=80=9Cyiyousong=E2=80=9D?= <鈥測ousong_yi@foxmail.com鈥�>
Date: Fri, 14 Mar 2025 11:17:39 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E5=B7=A5=E4=BD=9C=E4=BA=BA=E5=91=98?=
 =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=AF=BC=E5=87=BA=EF=BC=8C=E7=AA=97=E5=8F=A3?=
 =?UTF-8?q?=E4=BF=A1=E6=81=AF=E6=B7=BB=E5=8A=A0=E8=87=AA=E5=AE=9A=E4=B9=89?=
 =?UTF-8?q?=E6=98=BE=E7=A4=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../basicset/dept/components/addwindow.vue    | 17 ++++++++++
 .../src/pages/basicset/workman/personnel.vue  | 32 +++++++++++++++++++
 base-manager-ui/admin/src/services/dept.js    |  4 +++
 3 files changed, 53 insertions(+)

diff --git a/base-manager-ui/admin/src/pages/basicset/dept/components/addwindow.vue b/base-manager-ui/admin/src/pages/basicset/dept/components/addwindow.vue
index 3f1ebd75..d40769c7 100644
--- a/base-manager-ui/admin/src/pages/basicset/dept/components/addwindow.vue
+++ b/base-manager-ui/admin/src/pages/basicset/dept/components/addwindow.vue
@@ -88,6 +88,17 @@
           </a-form-model-item>
         </a-col>
       </a-row>
+      <a-row>
+        <a-col :span="12">
+          <a-form-model-item class="upload" label="鑷畾涔夋樉绀�" prop="filePath">
+            <YUpload
+              accept=".png,.jpg,.jpeg,.svg"
+              :limit="1"
+              v-model="form.filePath"
+            ></YUpload>
+          </a-form-model-item>
+        </a-col>
+      </a-row>
       <a-row>
         <a-col span="12">
           <a-form-model-item label="鏃犱汉鍊煎畧" prop="duty">
@@ -199,11 +210,13 @@
 <script>
 import { addWindow } from "@/services/dept";
 import YSwitch from "@/components/yswitch/YSwitch.vue";
+import YUpload from "@/components/YUpload.vue";
 import { checkWindowNumber } from "@/utils/validate";
 import local from "@/utils/local";
 export default {
   components: {
     YSwitch,
+    YUpload,
   },
   data() {
     return {
@@ -232,6 +245,7 @@ export default {
         dutyEnglish: "", // 鏃犱汉鍊煎畧鏄剧ず鑻辨枃鍐呭
         nameDesc: "", // 绐楀彛灞忔樉绀哄悕绉�
         englishNameDesc: "", // 鑻辨枃鍚嶇О
+        filePath: "", // 鑷畾涔夋樉绀�
       },
       rules: {
         siteName: [
@@ -360,4 +374,7 @@ export default {
 /deep/.ant-form-explain {
   position: absolute;
 }
+.upload {
+  align-items: flex-start !important;
+}
 </style>
diff --git a/base-manager-ui/admin/src/pages/basicset/workman/personnel.vue b/base-manager-ui/admin/src/pages/basicset/workman/personnel.vue
index 6fefcf77..8ca155ae 100644
--- a/base-manager-ui/admin/src/pages/basicset/workman/personnel.vue
+++ b/base-manager-ui/admin/src/pages/basicset/workman/personnel.vue
@@ -175,6 +175,11 @@
                     鎵归噺瀵煎叆鐓х墖
                   </a> -->
                 </a-menu-item>
+                <a-menu-item key="4">
+                  <div style="color: #1890ff" @click="exportWorkman">
+                    瀵煎嚭宸ヤ綔浜哄憳
+                  </div>
+                </a-menu-item>
               </a-menu>
               <a-button style="margin-left: 8px">
                 鏇村鎿嶄綔 <a-icon type="down" />
@@ -309,6 +314,7 @@ import {
   downLoadTemplate,
   // uploadFile,
   uploadAllImg,
+  exportWorkman,
   // editWorkman,
   // importData,
 } from "@/services/dept";
@@ -629,6 +635,32 @@ export default {
         images: [url],
       });
     },
+    // 瀵煎嚭宸ヤ綔浜哄憳
+    async exportWorkman() {
+      this.loading = true;
+      let obj = {
+        siteId: this.siteId,
+        page: this.page,
+        size: this.size,
+        deptId: this.deptSearch,
+        windowId: this.windowSearch,
+      };
+      let value = `%${this.searchVal}%`;
+      obj[this.searchType] = value;
+
+      let res = await exportWorkman(obj, { responseType: "blob" });
+      const blob = new Blob([res.data], {
+        type: "application/octet-stream",
+      });
+      let fileName = "宸ヤ綔浜哄憳鍒楄〃" + this.$moment().format("YYYY-MM-DD");
+      const link = document.createElement("a");
+      link.href = URL.createObjectURL(blob);
+      link.setAttribute("download", `${fileName}.xlsx`); // 璁剧疆涓嬭浇鏂囦欢鍚嶇О
+      document.body.appendChild(link);
+      link.click();
+      document.body.appendChild(link);
+      this.loading = false;
+    },
   },
 };
 </script>
diff --git a/base-manager-ui/admin/src/services/dept.js b/base-manager-ui/admin/src/services/dept.js
index ca7cf013..cabff538 100644
--- a/base-manager-ui/admin/src/services/dept.js
+++ b/base-manager-ui/admin/src/services/dept.js
@@ -113,6 +113,10 @@ export function changePwd(data) {
 export function uploadAllImg(data) {
   return request(workman.doImportPic, METHOD.POST, data);
 }
+// 瀵煎嚭宸ヤ綔浜哄憳
+export function exportWorkman(data, config) {
+  return request(workman.exportExcel, METHOD.POST, data, config);
+}
 
 /**
  *  绐楀彛浜嬮」
-- 
2.24.3