From 0082b347d40f29d9b95a003cd589960079f47584 Mon Sep 17 00:00:00 2001
From: 王恒 <318726284@qq.com>
Date: 星期五, 18 七月 2025 14:25:29 +0800
Subject: [PATCH] '新增导入功能'

---
 src/views/system/manage/index.vue |   79 ++++++++++++++++++++++++++++-----------
 1 files changed, 56 insertions(+), 23 deletions(-)

diff --git a/src/views/system/manage/index.vue b/src/views/system/manage/index.vue
index bffe1b9..6223798 100644
--- a/src/views/system/manage/index.vue
+++ b/src/views/system/manage/index.vue
@@ -29,8 +29,8 @@
         <el-button type="primary" plain icon="Plus" @click="handleAdd()" v-hasPermi="['system:dept:add']">鏂板</el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button type="primary" plain icon="Upload" @click="exportExcel"
-          v-hasPermi="['system:dept:add']">瀵煎叆</el-button>
+        <el-button type="info" plain icon="Upload" @click="handleImport"
+          v-hasPermi="['system:user:import']">瀵煎叆</el-button>
       </el-col>
       <el-col :span="1.5">
         <el-button type="primary" plain icon="Download" @click="downLoadCode">瀵煎嚭</el-button>
@@ -138,20 +138,39 @@
         </div>
       </template>
     </el-dialog>
-    <exportExcelCom ref="exporttem" @resList="resList"></exportExcelCom>
     <exportRecord ref="exportRecordCom" :recordRow="recordRow" @uploadList="getList"></exportRecord>
     <judgeCom ref="judgeComRef" @upload="getList"></judgeCom>
     <createQrcode ref="createQrcodeRef"></createQrcode>
+
+    <!-- 璁″垝瀵煎叆瀵硅瘽妗� -->
+    <el-dialog :title="upload.title" v-model="upload.open" width="400px" append-to-body>
+      <el-upload ref="uploadRef" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
+        :action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
+        :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
+        <el-icon class="el-icon--upload"><upload-filled /></el-icon>
+        <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div>
+        <template #tip>
+          <div class="el-upload__tip text-center">
+            <div class="el-upload__tip"><el-checkbox v-model="upload.updateSupport" />鏄惁鏇存柊宸茬粡瀛樺湪鐨勮鍒掓暟鎹�</div>
+            <span>浠呭厑璁稿鍏ls銆亁lsx鏍煎紡鏂囦欢銆�</span>
+            <el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline"
+              @click="importTemplate">涓嬭浇妯℃澘</el-link>
+          </div>
+        </template>
+      </el-upload>
+      <template #footer>
+        <div class="dialog-footer">
+          <el-button type="primary" @click="submitFileForm">纭� 瀹�</el-button>
+          <el-button @click="upload.open = false">鍙� 娑�</el-button>
+        </div>
+      </template>
+    </el-dialog>
   </div>
 </template>
 
 <script setup name="Dept">
-// import FileUpload from '@/components/ImageUpload/index'
-// import exportRecord from './components/exportRecord'
-// import createQrcode from './components/createQrcode'
-// import judgeCom from './components/judge'
+import { getToken } from "@/utils/auth";
 import { listCompany, addCompany, updStatus, delCompany, updateCompany, getCompany } from "@/api/system/company/company";
-// import exportExcelCom from './components/export'
 import { listManage } from "@/api/system/manage";
 import { computed } from "vue";
 import { judgeStatus, companyStatus, scopeList } from '@/utils/mapList/index.ts'
@@ -205,6 +224,22 @@
     planFrequency: [{ required: true, message: "璁″垝棰戞涓嶈兘涓虹┖", trigger: "blur" }],
     planMonth: [{ required: true, message: "璁″垝鏈堜唤涓嶈兘涓虹┖", trigger: "blur" }],
   },
+});
+
+/*** 璁″垝瀵煎叆鍙傛暟 */
+const upload = reactive({
+  // 鏄惁鏄剧ず寮瑰嚭灞傦紙鐢ㄦ埛瀵煎叆锛�
+  open: false,
+  // 寮瑰嚭灞傛爣棰橈紙鐢ㄦ埛瀵煎叆锛�
+  title: "",
+  // 鏄惁绂佺敤涓婁紶
+  isUploading: false,
+  // 鏄惁鏇存柊宸茬粡瀛樺湪鐨勭敤鎴锋暟鎹�
+  updateSupport: 0,
+  // 璁剧疆涓婁紶鐨勮姹傚ご閮�
+  headers: { Authorization: "Bearer " + getToken() },
+  // 涓婁紶鐨勫湴鍧�
+  url: import.meta.env.VITE_APP_BASE_API + "/system/user/importData",
 });
 
 const { queryParams, form, rules } = toRefs(data);
@@ -304,6 +339,18 @@
     })
     .catch(() => { });
 }
+
+/** 瀵煎叆鎸夐挳鎿嶄綔 */
+function handleImport() {
+  upload.title = "璁″垝瀵煎叆";
+  upload.open = true;
+}
+
+/** 鎻愪氦涓婁紶鏂囦欢 */
+function submitFileForm() {
+  proxy.$refs["uploadRef"].submit();
+}
+
 // 淇敼浼佷笟淇℃伅
 function changeCompanyNews(row, event) {
   if (loading.value) {
@@ -314,21 +361,7 @@
     getList();
   })
 }
-// 瀵煎叆妯℃澘
-function exportExcel() {
-  exporttem.value.openDialog()
-}
-// 瀵煎叆璁板綍
-function exportRecordComOpen() {
-  exportRecordCom.value.openDialog()
-}
-function resList(row) {
-  recordRow.value = row
-  exportRecordCom.value.openDialog()
-}
-function checkJudge(row) {
-  judgeComRef.value.openDialog(row)
-}
+
 function createQrcodeHandler(row) {
   createQrcodeRef.value.openDialog(row)
 }

--
Gitblit v1.9.1