From cd95b584fe7da1ea63476871eabf512213a31e69 Mon Sep 17 00:00:00 2001
From: 王恒 <318726284@qq.com>
Date: 星期五, 18 七月 2025 17:42:03 +0800
Subject: [PATCH] '计划管理模块开发完成'

---
 src/api/system/manage.ts                                       |   18 +++++++++
 src/views/login.vue                                            |    2 
 src/views/system/manage/index.vue                              |   79 ++++++++++++++++++++++++---------------
 src/layout/components/Sidebar/Logo.vue                         |    4 +-
 src/views/infomanger/infoLook/components/createQrcode.vue      |    4 +-
 index.html                                                     |    2 
 src/views/infomanger/companymanger/components/createQrcode.vue |    4 +-
 package.json                                                   |    4 +-
 8 files changed, 77 insertions(+), 40 deletions(-)

diff --git a/index.html b/index.html
index 3c2e529..7fac20b 100644
--- a/index.html
+++ b/index.html
@@ -6,7 +6,7 @@
     <meta name="renderer" content="webkit" />
     <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
     <!-- <link rel="icon" href="/logo.ico" /> -->
-    <title>鎯犱紒鎵ф硶</title>
+    <title>瀵熷幙鎵爜鍏ヤ紒鐩戠潱骞冲彴</title>
     <script src='//webapi.amap.com/maps?v=2.0&key=a3472b04ae282cabb61670b13c7b90ab' type="text/javascript"></script>
     <script src="//webapi.amap.com/ui/1.1/main.js"></script>
     <!--[if lt IE 11
diff --git a/package.json b/package.json
index f725384..38aadb9 100644
--- a/package.json
+++ b/package.json
@@ -1,8 +1,8 @@
 {
   "name": "ruoyi",
   "version": "3.8.5",
-  "description": "鎯犱紒鎵ф硶",
-  "author": "鎯犱紒鎵ф硶",
+  "description": "瀵熷幙鎵爜鍏ヤ紒鐩戠潱骞冲彴",
+  "author": "瀵熷幙鎵爜鍏ヤ紒鐩戠潱骞冲彴",
   "scripts": {
     "build:prod": "vite build",
     "build:stage": "vite build --mode staging",
diff --git a/src/api/system/manage.ts b/src/api/system/manage.ts
index 52fca89..4dabcaf 100644
--- a/src/api/system/manage.ts
+++ b/src/api/system/manage.ts
@@ -42,3 +42,21 @@
     method: "delete",
   });
 }
+
+// 涓嬭浇妯℃澘 /system/manage/exportTemplate
+export function exportTemplate(data: any) {
+  return request({
+    url: `/system/manage/exportTemplate`,
+    method: 'get',
+    params: data
+  })
+}
+
+// 瀵煎嚭璁″垝绠$悊 /system/manage/exportTemplate
+export function exportManage(data: any) {
+    return request({
+      url: `/system/manage/export `,
+      method: 'get',
+      params: data
+    })
+  }
diff --git a/src/layout/components/Sidebar/Logo.vue b/src/layout/components/Sidebar/Logo.vue
index 47ef6a1..51c3d04 100644
--- a/src/layout/components/Sidebar/Logo.vue
+++ b/src/layout/components/Sidebar/Logo.vue
@@ -7,7 +7,7 @@
       </router-link>
       <router-link v-else key="expand" class="sidebar-logo-link" to="/home">
         <!-- <img v-if="logotxt" :src="logotxt" class="sidebar-logo-txt" /> -->
-        鎯犱紒鎵ф硶
+        瀵熷幙鎵爜鍏ヤ紒鐩戠潱骞冲彴
       </router-link>
     </transition>
   </div>
@@ -26,7 +26,7 @@
   },
 });
 
-const title = ref("鎯犱紒鎵ф硶");
+const title = ref("瀵熷幙鎵爜鍏ヤ紒鐩戠潱骞冲彴");
 const settingsStore = useSettingsStore();
 const sideTheme = computed(() => settingsStore.sideTheme);
 </script>
diff --git a/src/views/infomanger/companymanger/components/createQrcode.vue b/src/views/infomanger/companymanger/components/createQrcode.vue
index fe492f9..cc08bd0 100644
--- a/src/views/infomanger/companymanger/components/createQrcode.vue
+++ b/src/views/infomanger/companymanger/components/createQrcode.vue
@@ -2,7 +2,7 @@
   <el-dialog title="浜岀淮鐮�"  v-model="dialogVisible" width="300px" @close="closeDialog"> 
     <div class="text-center">
       <vueQr ref="query" background="#fff" :text="info.companyCode"></vueQr>
-      <div style="font-weight: bold;margin-bottom: 10px;">娌堜笜鎯犱紒鎵ф硶</div>
+      <div style="font-weight: bold;margin-bottom: 10px;">瀵熷幙鎵爜鍏ヤ紒鐩戠潱骞冲彴</div>
       <div>{{ info.companyName }}</div>
       <div style="margin-top: 10px;">
         <el-link @click="downImage" type="primary">涓嬭浇浼佷笟鐮�</el-link>
@@ -58,7 +58,7 @@
       ctx.fillStyle = '#000';
       // ctx.setFontWeight('bold')
       ctx.font ='bold 20px Arial'
-      wrapText(ctx, "娌堜笜鎯犱紒鎵ф硶", 180, 320, 350, 40)
+      wrapText(ctx, "瀵熷幙鎵爜鍏ヤ紒鐩戠潱骞冲彴", 180, 320, 350, 40)
       // ctx.setFontWeight('normal')
       ctx.font ="20px Arial"
       wrapText(ctx, text, 180, 350, 350, 20)
diff --git a/src/views/infomanger/infoLook/components/createQrcode.vue b/src/views/infomanger/infoLook/components/createQrcode.vue
index 87aa2da..16b4410 100644
--- a/src/views/infomanger/infoLook/components/createQrcode.vue
+++ b/src/views/infomanger/infoLook/components/createQrcode.vue
@@ -2,7 +2,7 @@
   <el-dialog title="浜岀淮鐮�"  v-model="dialogVisible" width="300px" @close="closeDialog"> 
     <div class="text-center">
       <vueQr ref="query" background="#fff" :text="info.companyCode"></vueQr>
-      <div style="font-weight: bold;margin-bottom: 10px;">娌堜笜鎯犱紒鎵ф硶</div>
+      <div style="font-weight: bold;margin-bottom: 10px;">瀵熷幙鎵爜鍏ヤ紒鐩戠潱骞冲彴</div>
 
       <div>{{ info.companyName }}</div>
       <div style="margin-top: 10px;">
@@ -59,7 +59,7 @@
       ctx.fillStyle = '#000';
       // ctx.setFontWeight('bold')
       ctx.font ='bold 20px Arial'
-      wrapText(ctx, "娌堜笜鎯犱紒鎵ф硶", 180, 320, 350, 40)
+      wrapText(ctx, "瀵熷幙鎵爜鍏ヤ紒鐩戠潱骞冲彴", 180, 320, 350, 40)
       // ctx.setFontWeight('normal')
       ctx.font ="20px Arial"
       wrapText(ctx, text, 180, 350, 350, 20)
diff --git a/src/views/login.vue b/src/views/login.vue
index c197700..2092eea 100644
--- a/src/views/login.vue
+++ b/src/views/login.vue
@@ -4,7 +4,7 @@
     <Particles id="tsparticles" :particlesInit="particlesInit" :particlesLoaded="particlesLoaded" :options="options" />
 
     <el-form ref="loginRef" :model="loginForm" :rules="loginRules" class="login-form">
-      <h3 class="title">娌堜笜鎯犱紒鎵ф硶</h3>
+      <h3 class="title">瀵熷幙鎵爜鍏ヤ紒鐩戠潱骞冲彴</h3>
       <el-form-item prop="username">
         <el-input v-model="loginForm.username" type="text" size="large" auto-complete="off" placeholder="璐﹀彿">
           <template #prefix><svg-icon icon-class="user" class="el-input__icon input-icon" /></template>
diff --git a/src/views/system/manage/index.vue b/src/views/system/manage/index.vue
index eed9aa5..f11806b 100644
--- a/src/views/system/manage/index.vue
+++ b/src/views/system/manage/index.vue
@@ -29,21 +29,21 @@
         <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="info" plain icon="Upload" @click="handleImport"
+        <el-button type="warning" 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>
+        <el-button type="success" plain icon="Download" @click="downLoadCode">瀵煎嚭</el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button type="primary" plain icon="Download" @click="downLoadCode">鍙戣捣缁煎悎鏌ヤ竴娆�</el-button>
+        <el-button type="primary" plain icon="View" @click="downLoadCode">鍙戣捣缁煎悎鏌ヤ竴娆�</el-button>
       </el-col>
     </el-row>
 
+    <!-- @selection-change="handleSelectionChange" -->
     <el-table v-if="refreshTable" v-loading="loading" :data="deptList" row-key="companyId"
-      :default-expand-all="isExpandAll" :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
-      @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
+      :default-expand-all="isExpandAll" :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
+      <!-- <el-table-column type="selection" width="55" align="center" /> -->
       <el-table-column prop="planNo" label="搴忓彿" width="55">
         <template #default="scope">{{ scope.$index + 1 }}</template>
       </el-table-column>
@@ -59,7 +59,7 @@
       <el-table-column prop="planFrequency" label="璁″垝棰戞" width="180"></el-table-column>
       <el-table-column prop="planMonth" label="璁″垝鏈堜唤" width="180"></el-table-column>
       <el-table-column prop="planStatus" label="鐘舵��" width="180"></el-table-column>
-      <el-table-column label="鎿嶄綔" align="center" fixed="right" class-name="small-padding fixed-width" width="240">
+      <el-table-column label="鎿嶄綔" align="center" fixed="right" class-name="small-padding fixed-width" width="180">
         <template #default="scope">
           <el-link type="info" @click="handleView(scope.row)">鏌ョ湅</el-link>
           <el-divider direction="vertical" />
@@ -232,11 +232,12 @@
 
 <script setup name="Dept">
 import { getToken } from "@/utils/auth";
-import { listCompany, addCompany, updStatus, delCompany, updateCompany, getCompany } from "@/api/system/company/company";
-import { listManage, addManage, getManage, updateManage, delManage } from "@/api/system/manage";
+import { listManage, addManage, getManage, updateManage, delManage, exportTemplate, exportManage } from "@/api/system/manage";
+
 import { computed } from "vue";
 import useSettingsStore from "@/store/modules/settings";
-import { download } from '@/utils/request'; // 涓嬭浇鏂囦欢
+// import { download } from '@/utils/request'; // 涓嬭浇鏂囦欢
+import { download as downloadHttp } from '@/utils/request'
 const { proxy } = getCurrentInstance();
 const { sys_normal_disable } = proxy.useDict("sys_normal_disable");
 const deptList = ref([]);
@@ -287,9 +288,22 @@
   // 璁剧疆涓婁紶鐨勮姹傚ご閮�
   headers: { Authorization: "Bearer " + getToken() },
   // 涓婁紶鐨勫湴鍧�
-  url: import.meta.env.VITE_APP_BASE_API + "/system/user/importData",
+  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);
 /** 鏌ヨ璁″垝鍒楄〃 */
 function getList() {
@@ -332,6 +346,10 @@
 /** 閲嶇疆鎸夐挳鎿嶄綔 */
 function resetQuery() {
   queryRef.value.resetFields();
+  queryParams.value = {
+    planNo: '', // 璁″垝缂栧彿
+    planName: '', // 璁″垝鍚嶇О
+  }
   handleQuery();
 }
 function getDetails(id) {
@@ -409,29 +427,30 @@
 
 /** 涓嬭浇妯℃澘鎿嶄綔 */
 function importTemplate() {
-  proxy.download("system/manage/exportTemplate", {}, `plan_template_${new Date().getTime()}.xlsx`);
-}
-
-// 淇敼浼佷笟淇℃伅
-function changeCompanyNews(row, event) {
-  if (loading.value) {
-    return
-  }
-  updStatus(row).then(val => {
-    proxy.$modal.msgSuccess("淇敼鎴愬姛");
-    getList();
+  exportTemplate().then(val => {
+    downloadHttp('/tool/file/download', {
+      fileName: val.msg,
+      delete: true
+    }, "璁″垝淇℃伅妯℃澘.xlsx")
   })
 }
 
-let valueArr = []
+
+// let valueArr = []
 function downLoadCode() {
-  download('/system/manage/export', {
-    ids: valueArr.join()
-  }, `plan_${new Date().getTime()}.xlsx`)
+  exportManage().then(val => {
+    downloadHttp('/tool/file/download', {
+      fileName: val.msg,
+      delete: true
+    }, "璁″垝淇℃伅.xlsx")
+  })
 }
-function handleSelectionChange(e) {
-  valueArr = e.map(item => item.id)
-}
+
+
+// function handleSelectionChange(e) {
+//   valueArr = e.map(item => item.id)
+// }
+
 getList();
 function selectableFun(e) {
   console.log(e)

--
Gitblit v1.9.1