LAPTOP-16IUEB3P\Lenovo пре 3 година
родитељ
комит
5522a82aa6

+ 1 - 1
ele-admin-template/src/api/login/index.js

@@ -8,7 +8,7 @@ export async function login(data) {
   const res = await request.post('/main/user/login', data);
   if (res.data.code == 0) {
     setToken(res.data.data.token, data.remember);
-    return res.data.message;
+    return res.data;
   }
   return Promise.reject(new Error(res.data.message));
 }

+ 3 - 10
ele-admin-template/src/api/system/role/index.js

@@ -8,10 +8,6 @@ export async function pageRoles(params) {
   const res = await request.get('/sys/role/page', {
     params
   });
-<<<<<<< HEAD
-  if (res.data.code === 0) {
-=======
-
   if (res.data.code == 0) {
     return {
       list: res.data.data.records,
@@ -23,9 +19,7 @@ export async function pageRoles(params) {
 
 export async function putRoles(params) {
   const res = await request.put('/sys/role/update', params);
-
   if (res.data.code == 0) {
->>>>>>> 3fe537e530f1a660c882b9b2638eb20d534c2b06
     return res.data;
   }
   return Promise.reject(new Error(res.data.message));
@@ -36,10 +30,9 @@ export async function putRoles(params) {
  * @param params 查询条件
  */
 export async function listRoles(params) {
-  const res = await request.get('/system/role', {
-    params
-  });
-  if (res.data.code === 0) {
+  let par = new URLSearchParams(params)
+  const res = await request.get(`/sys/role/page?`+par, {});
+  if (res.data.code == 0) {
     return res.data.data;
   }
   return Promise.reject(new Error(res.data.message));

+ 59 - 2
ele-admin-template/src/api/system/user/index.js

@@ -5,8 +5,9 @@ import request from '@/utils/request';
  * @param params 查询条件
  */
 export async function pageUsers(params) {
-  const res = await request.post('/system/account/getAccountPage', params);
-  if (res.data.code == '0' ) {
+  let par = new URLSearchParams(params)
+  const res = await request.get(`/system/account/getAccountPage?`+par, params);
+  if (res.data.code == 0 ) {
     const result = {
       count:0,
       list:[]
@@ -18,6 +19,62 @@ export async function pageUsers(params) {
   return Promise.reject(new Error(res.data.message));
 }
 
+// 修改用户信息
+export async function putUsers(params) {
+  const res = await request.post('/system/account/update', params);
+  if (res.data.code == 0) {
+    return res.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
+
+// 新增用户
+export async function addUsers(params) {
+  const res = await request.post('/system/account/submit', params);
+  if (res.data.code == 0) {
+    return res.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
+// 删除用户
+export async function deleteUsers(params) {
+  const res = await request.post('/system/account/removeById', params);
+  if (res.data.code == 0) {
+    return res.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
+// 管理员重置密码
+export async function resetPassword(params) {
+  const res = await request.get(`/system/account/resetPassword/`+params, {});
+  if (res.data.code == 0) {
+    return res.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
+// 修改用户密码
+export async function updatePassword(params) {
+  const res = await request.post('/system/account/updatePassword', params);
+  if (res.data.code == 0) {
+    return res.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
+// 退出登录
+export async function userLogout(params) {
+  const res = await request.post('/main/user/logout', params);
+  if (res.data.code == 0) {
+    return res.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
+// ————————————————————————原系统接口
 /**
  * 查询用户列表
  * @param params 查询条件

+ 6 - 6
ele-admin-template/src/i18n/lang/zh_CN/layout.js

@@ -6,12 +6,12 @@ export default {
     password: '修改密码',
     logout: '退出登录'
   },
-  footer: {
-    website: '官网',
-    document: '文档',
-    authorization: '授权',
-    copyright: 'Copyright © 2022 武汉易云智科技有限公司'
-  },
+  // footer: {
+  //   website: '官网',
+  //   document: '文档',
+  //   authorization: '授权',
+  //   copyright: 'Copyright © 2022 武汉易云智科技有限公司'
+  // },
   logout: {
     title: '提示',
     message: '确定要退出登录吗?'

+ 5 - 1
ele-admin-template/src/layout/components/header-tools.vue

@@ -61,6 +61,7 @@
   import SettingDrawer from './setting-drawer.vue';
   import I18nIcon from './i18n-icon.vue';
   import { logout } from '@/utils/page-tab-util';
+  import { userLogout } from '@/api/system/user'
 
   export default {
     components: { HeaderNotice, PasswordModal, SettingDrawer, I18nIcon },
@@ -99,7 +100,10 @@
             { type: 'warning' }
           )
             .then(() => {
-              logout();
+              userLogout().then(res=>{
+                 localStorage.removeItem('userId')
+                 logout();
+              })
             })
             .catch(() => {});
         }

+ 13 - 13
ele-admin-template/src/layout/components/password-modal.vue

@@ -23,17 +23,17 @@
           placeholder="请输入旧密码"
         />
       </el-form-item>
-      <el-form-item label="新密码:" prop="password">
+      <el-form-item label="新密码:" prop="newPassword">
         <el-input
           show-password
-          v-model="form.password"
+          v-model="form.newPassword"
           placeholder="请输入新密码"
         />
       </el-form-item>
-      <el-form-item label="确认密码:" prop="password2">
+      <el-form-item label="确认密码:" prop="newPassword1">
         <el-input
           show-password
-          v-model="form.password2"
+          v-model="form.newPassword1"
           placeholder="请再次输入新密码"
         />
       </el-form-item>
@@ -46,8 +46,7 @@
 </template>
 
 <script>
-  import { updatePassword } from '@/api/layout';
-
+  import { updatePassword } from '@/api/system/user';
   export default {
     props: {
       visible: Boolean
@@ -59,8 +58,8 @@
         // 表单数据
         form: {
           oldPassword: '',
-          password: '',
-          password2: ''
+          newPassword: '',
+          newPassword1: ''
         },
         // 表单验证
         rules: {
@@ -71,14 +70,14 @@
               trigger: 'blur'
             }
           ],
-          password: [
+          newPassword: [
             {
               required: true,
               message: '请输入新密码',
               trigger: 'blur'
             }
           ],
-          password2: [
+          newPassword1: [
             {
               required: true,
               trigger: 'blur',
@@ -86,7 +85,7 @@
                 if (!value) {
                   return callback(new Error('请再次输入新密码'));
                 }
-                if (value !== this.form.password) {
+                if (value !== this.form.newPassword) {
                   return callback(new Error('两次输入密码不一致'));
                 }
                 callback();
@@ -106,6 +105,7 @@
         this.$refs.form.validate((valid) => {
           if (valid) {
             this.loading = true;
+            this.form.id =  localStorage.getItem('userId')
             updatePassword(this.form)
               .then((msg) => {
                 this.loading = false;
@@ -125,8 +125,8 @@
       onClose() {
         this.form = {
           oldPassword: '',
-          password: '',
-          password2: ''
+          newPassword: '',
+          newPassword1: ''
         };
         this.$refs.form.resetFields();
         this.loading = false;

+ 3 - 3
ele-admin-template/src/views/login/index.vue

@@ -170,9 +170,10 @@
           }
           this.loading = true;
           login(this.form)
-            .then((msg) => {
+            .then(res => {
+              localStorage.setItem('userId', res.data.userId)
               this.loading = false;
-              this.$message.success(msg);
+              this.$message.success(res.message);
               this.goHome();
             })
             .catch((e) => {
@@ -183,7 +184,6 @@
       },
       /* 跳转到首页 */
       goHome() {
-        console.log(2222);
         this.$router.push(this.$route?.query?.from ?? '/').catch(() => {});
       },
       /* 更换图形验证码 */

+ 10 - 6
ele-admin-template/src/views/system/user/components/role-select.vue

@@ -10,9 +10,9 @@
   >
     <el-option
       v-for="item in data"
-      :key="item.roleId"
-      :value="item.roleId"
-      :label="item.roleName"
+      :key="item.id"
+      :value="item.id"
+      :label="item.name"
     />
   </el-select>
 </template>
@@ -37,9 +37,13 @@
     },
     created() {
       /* 获取角色数据 */
-      listRoles()
-        .then((list) => {
-          this.data = list;
+      let params = {
+        pageNum:1,
+        size:99999999999
+      }
+      listRoles(params)
+        .then(res => {
+          this.data = res.records;
         })
         .catch((e) => {
           this.$message.error(e.message);

+ 44 - 144
ele-admin-template/src/views/system/user/components/user-edit.vue

@@ -1,7 +1,7 @@
 <!-- 用户编辑弹窗 -->
 <template>
   <ele-modal
-    width="680px"
+    width="720px"
     :visible="visible"
     :append-to-body="true"
     :close-on-click-modal="true"
@@ -9,85 +9,45 @@
     :title="isUpdate ? '修改用户' : '添加用户'"
     @update:visible="updateVisible"
   >
-    <el-form ref="form" :model="form" :rules="rules" label-width="82px">
-      <el-row :gutter="15">
-        <el-col v-bind="styleResponsive ? { sm: 12 } : { span: 12 }">
-          <el-form-item label="用户账号:" prop="username">
+    <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+      <el-row>
+        <el-col :span="12">
+          <el-form-item label="用户账号:" prop="loginName">
             <el-input
               clearable
               :maxlength="20"
               :disabled="isUpdate"
-              v-model="form.username"
+              v-model="form.loginName"
               placeholder="请输入用户账号"
             />
           </el-form-item>
- <!--         <el-form-item label="用户名:" prop="nickname">
-            <el-input
-              clearable
-              :maxlength="20"
-              v-model="form.nickname"
-              placeholder="请输入用户名"
-            />
-          </el-form-item>
-          <el-form-item label="性别:" prop="sex">
-            <el-select
-              clearable
-              class="ele-block"
-              v-model="form.sex"
-              placeholder="请选择性别"
-            >
-              <el-option label="男" value="1" />
-              <el-option label="女" value="2" />
-            </el-select>
-          </el-form-item> -->
-          <el-form-item label="角色:" prop="roleIds">
-            <role-select v-model="form.roleIds" />
-          </el-form-item>
-<!--          <el-form-item label="邮箱:" prop="email">
-            <el-input
-              clearable
-              :maxlength="100"
-              v-model="form.email"
-              placeholder="请输入邮箱"
-            />
-          </el-form-item> -->
         </el-col>
-        <el-col v-bind="styleResponsive ? { sm: 12 } : { span: 12 }">
-          <!-- <el-form-item label="手机号:" prop="phone">
-            <el-input
-              clearable
-              :maxlength="11"
-              v-model="form.phone"
-              placeholder="请输入手机号"
-            />
+        <el-col :span="12">
+          <el-form-item label="用户角色:" prop="roleId">
+            <role-select v-model="form.roleId" />
           </el-form-item>
-          <el-form-item label="出生日期:" prop="birthday">
-            <el-date-picker
-              type="date"
-              class="ele-fluid"
-              v-model="form.birthday"
-              value-format="yyyy-MM-dd"
-              placeholder="请选择出生日期"
-            />
-          </el-form-item> -->
-          <el-form-item v-if="!isUpdate" label="登录密码:" prop="password">
+        </el-col>
+        <el-col :span="12">
+          <el-form-item v-if="!isUpdate" label="登录密码:" prop="loginPwd">
             <el-input
               show-password
               :maxlength="20"
-              v-model="form.password"
+              v-model="form.loginPwd"
               placeholder="请输入登录密码"
             />
           </el-form-item>
-          <!-- <el-form-item label="个人简介:">
-            <el-input
-              :rows="4"
-              clearable
-              type="textarea"
-              :maxlength="200"
-              v-model="form.introduction"
-              placeholder="请输入个人简介"
-            />
-          </el-form-item> -->
+        </el-col>
+        <el-col :span="12">
+           <el-form-item label="启用状态:" prop="enable">
+             <el-switch
+               v-model="form.enable"
+               active-color="#13ce66"
+               inactive-color="#ff4949"
+               :active-value="1"
+               :inactive-value="0"
+             >
+             </el-switch>
+           </el-form-item>
         </el-col>
       </el-row>
     </el-form>
@@ -101,9 +61,9 @@
 </template>
 
 <script>
-  import { emailReg, phoneReg } from 'ele-admin';
+  // import { emailReg, phoneReg } from 'ele-admin';
   import RoleSelect from './role-select.vue';
-  import { addUser, updateUser, checkExistence } from '@/api/system/user';
+  import { addUsers, putUsers } from '@/api/system/user';
 
   export default {
     components: { RoleSelect },
@@ -115,16 +75,11 @@
     },
     data() {
       const defaultForm = {
-        userId: null,
-        username: '',
-        nickname: '',
-        sex: null,
-        roleIds: [],
-        email: '',
-        phone: '',
-        birthday: '',
-        password: '',
-        introduction: ''
+        id: null,
+        loginName: '',
+        roleId: [],
+        loginPwd: '',
+        enable:1
       };
       return {
         defaultForm,
@@ -132,67 +87,9 @@
         form: { ...defaultForm },
         // 表单验证规则
         rules: {
-          username: [
-            {
-              required: true,
-              trigger: 'blur',
-              validator: (_rule, value, callback) => {
-                if (!value) {
-                  return callback(new Error('请输入用户账号'));
-                }
-                checkExistence('username', value, this.data?.username)
-                  .then(() => {
-                    callback(new Error('账号已经存在'));
-                  })
-                  .catch(() => {
-                    callback();
-                  });
-              }
-            }
-          ],
-          nickname: [
-            {
-              required: true,
-              message: '请输入用户名',
-              trigger: 'blur'
-            }
-          ],
-          sex: [
-            {
-              required: true,
-              message: '请选择性别',
-              trigger: 'blur'
-            }
-          ],
-          roleIds: [
-            {
-              required: true,
-              message: '请选择角色',
-              trigger: 'blur'
-            }
-          ],
-          email: [
-            {
-              pattern: emailReg,
-              message: '邮箱格式不正确',
-              trigger: 'blur'
-            }
-          ],
-          password: [
-            {
-              required: true,
-              pattern: /^[\S]{5,18}$/,
-              message: '密码必须为5-18位非空白字符',
-              trigger: 'blur'
-            }
-          ],
-          phone: [
-            {
-              pattern: phoneReg,
-              message: '手机号格式不正确',
-              trigger: 'blur'
-            }
-          ]
+          loginName: [{required: true, message: '请输入用户账号',trigger: 'blur'}],
+          roleId: [{required: true, message: '请选择角色',trigger: 'blur'}],
+          loginPwd: [{required: true, pattern: /^[\S]{5,18}$/,message: '密码必须为5-18位非空白字符',trigger: 'blur'}]
         },
         // 提交状态
         loading: false,
@@ -214,13 +111,16 @@
             return false;
           }
           this.loading = true;
+          if(!this.isUpdate){
+            delete this.form.id
+          }
           const data = {
             ...this.form,
-            roles: this.form.roleIds.map((d) => {
-              return { roleId: d };
-            })
+            // roleId: this.form.roleIds.map((d) => {
+            //   return { roleId: d };
+            // })
           };
-          const saveOrUpdate = this.isUpdate ? updateUser : addUser;
+          const saveOrUpdate = this.isUpdate ? putUsers : addUsers;
           saveOrUpdate(data)
             .then((msg) => {
               this.loading = false;
@@ -245,8 +145,8 @@
           if (this.data) {
             this.$util.assignObject(this.form, {
               ...this.data,
-              roleIds: this.data.roles.map((d) => d.roleId),
-              password: ''
+              roleId: this.data.roleList.map((d) => d.id),
+              loginPwd: ''
             });
             this.isUpdate = true;
           } else {

+ 4 - 4
ele-admin-template/src/views/system/user/components/user-search.vue

@@ -9,7 +9,7 @@
     <el-row :gutter="15">
       <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
         <el-form-item label="用户账号:">
-          <el-input clearable v-model="where.username" placeholder="请输入" />
+          <el-input clearable v-model="where.loginName" placeholder="请输入" />
         </el-form-item>
       </el-col>
 <!--      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
@@ -52,9 +52,9 @@
     data() {
       // 默认表单数据
       const defaultWhere = {
-        username: '',
-        nickname: '',
-        sex: undefined
+        loginName: '',
+        // nickname: '',
+        // sex: undefined
       };
       return {
         // 表单数据

+ 39 - 45
ele-admin-template/src/views/system/user/index.vue

@@ -41,31 +41,34 @@
           </el-button>
         </template>
         <!-- 用户名列 -->
-        <template v-slot:nickname="{ row }">
+<!--        <template v-slot:nickname="{ row }">
           <router-link :to="'/system/user/details?id=' + row.userId">
             {{ row.nickname }}
           </router-link>
-        </template>
+        </template> -->
         <!-- 角色列 -->
-        <template v-slot:roles="{ row }">
+        <template v-slot:roleList="{ row }">
           <el-tag
-            v-for="item in row.roles"
-            :key="item.roleId"
+            v-for="(item,index) in row.roleList"
+            :key="item.id"
             size="mini"
             type="primary"
             :disable-transitions="true"
           >
-            {{ item.roleName }}
+            {{ item.name }}
           </el-tag>
         </template>
         <!-- 状态列 -->
-        <template v-slot:status="{ row }">
+        <template v-slot:enable="{ row }">
           <el-switch
-            :active-value="0"
-            :inactive-value="1"
-            v-model="row.status"
-            @change="editStatus(row)"
-          />
+            v-model="row.enable"
+            active-color="#13ce66"
+            inactive-color="#ff4949"
+            :active-value="1"
+            :inactive-value="0"
+            @change="changeEnable(row)"
+          >
+          </el-switch>
         </template>
         <!-- 操作列 -->
         <template v-slot:action="{ row }">
@@ -112,10 +115,9 @@
   import UserImport from './components/user-import.vue';
   import {
     pageUsers,
-    removeUser,
-    removeUsers,
-    updateUserStatus,
-    updateUserPassword
+    putUsers,
+    deleteUsers,
+    resetPassword
   } from '@/api/system/user';
 
   export default {
@@ -151,34 +153,12 @@
             showOverflowTooltip: true,
             minWidth: 110
           },
-          // {
-          //   prop: 'nickname',
-          //   label: '用户名',
-          //   sortable: 'custom',
-          //   showOverflowTooltip: true,
-          //   minWidth: 110,
-          //   slot: 'nickname'
-          // },
-          // {
-          //   prop: 'sexName',
-          //   label: '性别',
-          //   sortable: 'custom',
-          //   showOverflowTooltip: true,
-          //   minWidth: 80
-          // },
-          // {
-          //   prop: 'phone',
-          //   label: '手机号',
-          //   sortable: 'custom',
-          //   showOverflowTooltip: true,
-          //   minWidth: 110
-          // },
           {
-            columnKey: 'roles',
+            columnKey: 'roleList',
             label: '角色',
             showOverflowTooltip: true,
             minWidth: 110,
-            slot: 'roles'
+            slot: 'roleList'
           },
           {
             prop: 'createTime',
@@ -191,13 +171,13 @@
             }
           },
           {
-            prop: 'status',
+            prop: 'enable',
             label: '状态',
             align: 'center',
             sortable: 'custom',
             width: 80,
             resizable: false,
-            slot: 'status',
+            slot: 'enable',
             showOverflowTooltip: true
           },
           {
@@ -225,6 +205,20 @@
       datasource({ page, limit, where, order }) {
         return pageUsers({ ...where, ...order, pageNum:page, size:limit });
       },
+      async changeEnable(row) {
+        let params = {...row}
+        params.roleId = row.roleList.map((d) => d.id)
+        delete params.roleList
+        const res = await putUsers(params);
+        if (res.code == 0) {
+          this.$message({
+            type: 'success',
+            message: '修改成功',
+            customClass: 'ele-message-border'
+          });
+          this.reload();
+        }
+      },
       /* 刷新表格 */
       reload(where) {
         this.$refs.table.reload({ page: 1, where: where });
@@ -241,7 +235,7 @@
       /* 删除 */
       remove(row) {
         const loading = this.$loading({ lock: true });
-        removeUser(row.userId)
+        deleteUsers([row.id])
           .then((msg) => {
             loading.close();
             this.$message.success(msg);
@@ -263,7 +257,7 @@
         })
           .then(() => {
             const loading = this.$loading({ lock: true });
-            removeUsers(this.selection.map((d) => d.userId))
+            deleteUsers(this.selection.map((d) => d.id ))
               .then((msg) => {
                 loading.close();
                 this.$message.success(msg);
@@ -283,7 +277,7 @@
         })
           .then(() => {
             const loading = this.$loading({ lock: true });
-            updateUserPassword(row.userId)
+            resetPassword(row.id)
               .then((msg) => {
                 loading.close();
                 this.$message.success(msg);

+ 1 - 1
ele-admin-template/vue.config.js

@@ -17,7 +17,7 @@ module.exports = {
       '/api': {
         // target: 'http://192.168.3.51:18086', // 跨域请求的地址
         // target: 'http://192.168.3.35:8080', // kang杨威
-        target: 'http://192.168.3.31:8080', // 黄峥嵘
+        target: 'http://192.168.3.25:8080', // 黄峥嵘
         changeOrigin: true, // 只有这个值为true的情况下 才表示开启跨域
         pathRewrite: {
           '^/api': ''