Bläddra i källkod

login 封装数据源信息,首页导入文件demo,左侧菜表示

韩帛霖 1 år sedan
förälder
incheckning
de60292cca

+ 2 - 1
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -52,6 +52,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	<resultMap id="dataSourceResult" type="DataSource">
 		<id     property="id"    column="id"     />
 		<result property="databaseType"  column="database_type"   />
+		<result property="databaseName"  column="database_name"   />
 	</resultMap>
 	
     <resultMap id="RoleResult" type="SysRole">
@@ -68,7 +69,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
 		te.tenant_id, te.tenant_name, te.tenant_code, te.owner,
         r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status,
-			   ds.id,ds.database_type
+			   ds.id,ds.database_type,ds.database_name
         from sys_user u
 		    left join sys_dept d on u.dept_id = d.dept_id
 		    left join sys_tenant te on u.tenant_id = te.tenant_id

+ 1 - 0
ruoyi-ui/src/layout/components/Sidebar/index.vue

@@ -13,6 +13,7 @@
                 mode="vertical"
                 menu-trigger="click"
             >
+            <!--       左侧菜单bug   menu-trigger="click"    -->
                 <sidebar-item
                     v-for="(route, index) in sidebarRouters"
                     :key="route.path  + index"

+ 84 - 6
ruoyi-ui/src/views/index.vue

@@ -1,16 +1,41 @@
 <template>
   <div class="app-container home">
-    <el-row :gutter="20"> </el-row>
-    <el-row :gutter="20"> </el-row>
-    <el-divider />
+    <el-row :gutter="20"></el-row>
+    <el-row :gutter="20"></el-row>
+    <el-divider/>
+
+    <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
+      <el-upload ref="upload" :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>
+        <i class="el-icon-upload"></i>
+        <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
+        <div class="el-upload__tip text-center" slot="tip">
+          <div class="el-upload__tip" slot="tip">
+            <el-checkbox v-model="upload.updateSupport"/>
+            是否更新已经存在的用户数据
+          </div>
+          <span>仅允许导入xls、xlsx格式文件。</span>
+          <el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline"
+                   @click="importTemplate">下载模板
+          </el-link>
+        </div>
+      </el-upload>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitFileForm">确 定</el-button>
+        <el-button @click="upload.open = false">取 消</el-button>
+      </div>
+    </el-dialog>
+
+    <button @click="upload.open = true">上传文件</button>
     <el-row :gutter="20">
-      <el-col :xs="24" :sm="24" :md="12" :lg="8"> </el-col>
+      <el-col :xs="24" :sm="24" :md="12" :lg="8"></el-col>
       <el-col :xs="24" :sm="24" :md="12" :lg="8">
         <el-card class="update-log">
           <div slot="header" class="clearfix">
             <span>更新日志</span>
           </div>
-          <el-collapse accordion> 123123 </el-collapse>
+          <el-collapse accordion> 123123</el-collapse>
         </el-card>
       </el-col>
 
@@ -27,15 +52,68 @@
 </template>
 
 <script>
+import {getToken} from "@/utils/auth";
+
 export default {
   name: "Index",
   data() {
     return {
+      // 用户导入参数
+      upload: {
+        // 是否显示弹出层(用户导入)
+        open: false,
+        // 弹出层标题(用户导入)
+        title: "",
+        // 是否禁用上传
+        isUploading: false,
+        // 是否更新已经存在的用户数据
+        updateSupport: 0,
+        // 设置上传的请求头部
+        headers: {Authorization: "Bearer " + getToken()},
+        // 上传的地址
+        url: process.env.VUE_APP_BASE_API3 + "common/importDataInfo",
+      },
       // 版本号
       version: "3.8.5",
     };
   },
   methods: {
+
+    /** 导入按钮操作 */
+    handleImport() {
+      this.upload.title = "用户导入";
+      this.upload.open = true;
+    },
+    /** 下载模板操作 */
+    importTemplate() {
+      this.download(
+        "system/user/importTemplate",
+        {},
+        `user_template_${new Date().getTime()}.xlsx`
+      );
+    },
+    // 文件上传中处理
+    handleFileUploadProgress(event, file, fileList) {
+      this.upload.isUploading = true;
+    },
+    // 文件上传成功处理
+    handleFileSuccess(response, file, fileList) {
+      this.upload.open = false;
+      this.upload.isUploading = false;
+      this.$refs.upload.clearFiles();
+      this.$alert(
+        "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
+        response.msg +
+        "</div>",
+        "导入结果",
+        {dangerouslyUseHTMLString: true}
+      );
+      this.getList();
+    },
+    // 提交上传文件
+    submitFileForm() {
+      this.$refs.upload.submit();
+    },
     goTarget(href) {
       window.open(href, "_blank");
     },
@@ -43,7 +121,7 @@ export default {
 };
 </script>
 
-<style  lang="scss" scoped>
+<style lang="scss" scoped>
 .home {
   blockquote {
     padding: 10px 20px;