From 8d27f95cf6e3b3289e90828ecef72e0c74f804b0 Mon Sep 17 00:00:00 2001
From: wangyuhang <139@qq.com>
Date: 星期五, 18 七月 2025 15:42:47 +0800
Subject: [PATCH] 导入修改,修改项目名称

---
 src/views/system/manage/index.vue |  117 +++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 91 insertions(+), 26 deletions(-)

diff --git a/src/views/system/manage/index.vue b/src/views/system/manage/index.vue
index bffe1b9..d452151 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,25 +138,51 @@
         </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 { listCompany, addCompany, updStatus, delCompany, updateCompany, getCompany } from "@/api/system/company/company";
-// import exportExcelCom from './components/export'
-import { listManage } from "@/api/system/manage";
+import { getToken } from "@/utils/auth";
+import {
+  listCompany,
+  addCompany,
+  updStatus,
+  delCompany,
+  updateCompany,
+  getCompany
+} from "@/api/system/company/company";
+import { listManage ,exportTemplate} from "@/api/system/manage";
 import { computed } from "vue";
 import { judgeStatus, companyStatus, scopeList } from '@/utils/mapList/index.ts'
 import useSettingsStore from "@/store/modules/settings";
-import { download } from '@/utils/request'; // 涓嬭浇鏂囦欢
+import {download as downloadHttp, download} from '@/utils/request'; // 涓嬭浇鏂囦欢
 const thcolor = computed(() => useSettingsStore().theme);
 const { proxy } = getCurrentInstance();
 const { sys_normal_disable } = proxy.useDict("sys_normal_disable");
@@ -207,6 +233,35 @@
   },
 });
 
+/*** 璁″垝瀵煎叆鍙傛暟 */
+const upload = reactive({
+  // 鏄惁鏄剧ず寮瑰嚭灞傦紙鐢ㄦ埛瀵煎叆锛�
+  open: false,
+  // 寮瑰嚭灞傛爣棰橈紙鐢ㄦ埛瀵煎叆锛�
+  title: "",
+  // 鏄惁绂佺敤涓婁紶
+  isUploading: false,
+  // 鏄惁鏇存柊宸茬粡瀛樺湪鐨勭敤鎴锋暟鎹�
+  updateSupport: 0,
+  // 璁剧疆涓婁紶鐨勮姹傚ご閮�
+  headers: { Authorization: "Bearer " + getToken() },
+  // 涓婁紶鐨勫湴鍧�
+  url: import.meta.env.VITE_APP_BASE_API + "/system/manage/importData",
+});
+/**鏂囦欢涓婁紶涓鐞� */
+const handleFileUploadProgress = (event, file, fileList) => {
+  upload.isUploading = true;
+};
+/** 鏂囦欢涓婁紶鎴愬姛澶勭悊 */
+const handleFileSuccess = (response, file, fileList) => {
+  upload.open = false;
+  upload.isUploading = false;
+  proxy.$refs["uploadRef"].handleRemove(file);
+  proxy.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "瀵煎叆缁撴灉", {
+    dangerouslyUseHTMLString: true,
+  });
+  getList();
+};
 const { queryParams, form, rules } = toRefs(data);
 const recordRow = ref([])
 /** 鏌ヨ浼佷笟鍒楄〃 */
@@ -304,6 +359,30 @@
     })
     .catch(() => { });
 }
+
+/** 瀵煎叆鎸夐挳鎿嶄綔 */
+function handleImport() {
+  upload.title = "璁″垝瀵煎叆";
+  upload.open = true;
+}
+
+/** 鎻愪氦涓婁紶鏂囦欢 */
+function submitFileForm() {
+  proxy.$refs["uploadRef"].submit();
+}
+
+/** 涓嬭浇妯℃澘鎿嶄綔 */
+function importTemplate() {
+  exportTemplate().then(val => {
+    downloadHttp('/tool/file/download', {
+      fileName: val.msg,
+      delete: true
+    }, "璁″垝淇℃伅妯℃澘.xlsx")
+  })
+}
+
+
+
 // 淇敼浼佷笟淇℃伅
 function changeCompanyNews(row, event) {
   if (loading.value) {
@@ -314,21 +393,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