xiao547607 %!s(int64=4) %!d(string=hai) anos
pai
achega
81b84db574
Modificáronse 3 ficheiros con 100 adicións e 31 borrados
  1. 1 1
      src/views/Login.vue
  2. 64 28
      src/views/sys/user-detail.vue
  3. 35 2
      src/views/sys/user-list.vue

+ 1 - 1
src/views/Login.vue

@@ -2,7 +2,7 @@
   <div class="login-container">
     <div class="login-form">
       <h3>
-        <img src="../assets/logo.png" width="269" height="65"/>
+        <img src="../assets/logo.png" width="424" height="48"/>
       </h3>
       <el-card class="box-card">
         <el-tabs v-model="activeName" @tab-click="handleTabClick">

+ 64 - 28
src/views/sys/user-detail.vue

@@ -8,33 +8,58 @@
     :visible.sync="showDialog"
     :title="title"
     :modal-append-to-body="false"
-    style="text-align:left;"
+    style="text-align: left"
     @close="closeDialog"
     :close-on-click-modal="false"
   >
     <div class="user-panel" v-loading="loading">
-      <el-form ref="form" :model="formModel" :rules="ruleValidate" :label-width="'100px'">
+      <el-form
+        ref="form"
+        :model="formModel"
+        :rules="ruleValidate"
+        :label-width="'100px'"
+      >
         <el-form-item label="用户名" prop="userName">
-          <el-input v-model="formModel.userName" placeholder="请输入用户名" style="width:300px"></el-input>
+          <el-input
+            v-model="formModel.userName"
+            placeholder="请输入用户名"
+            style="width: 300px"
+          ></el-input>
         </el-form-item>
         <el-form-item label="真实名称" prop="realName">
-          <el-input v-model="formModel.realName" placeholder="请输入真实名称" style="width:300px"></el-input>
+          <el-input
+            v-model="formModel.realName"
+            placeholder="请输入真实名称"
+            style="width: 300px"
+          ></el-input>
         </el-form-item>
-        <el-form-item v-show="ruleValidate.password[0].required" label="密码" prop="password">
+        <el-form-item
+          v-show="ruleValidate.password[0].required"
+          label="密码"
+          prop="password"
+        >
           <el-input
             type="password"
             v-model="formModel.password"
             placeholder="请输入密码"
-            style="width:300px"
+            style="width: 300px"
           ></el-input>
         </el-form-item>
+        <el-form-item label="所属企业" prop="companyId">
+          <el-select-tree
+            :props="companyProps"
+            :options="companyResult"
+            v-model="formModel.companyId"
+            size="mediumn"
+          ></el-select-tree>
+        </el-form-item>
         <el-form-item label="分配角色" prop="roles">
           <el-select
             v-model="formModel.roles"
             filterable
             multiple
             placeholder="请选择"
-            style="width:300px"
+            style="width: 300px"
           >
             <el-option
               v-for="role in roleList"
@@ -50,7 +75,9 @@
     </div>
     <span slot="footer" class="dialog-footer">
       <el-button @click="closeDialog">取 消</el-button>
-      <el-button type="primary" @click="handleSubmit" :loading="submitting">确 定</el-button>
+      <el-button type="primary" @click="handleSubmit" :loading="submitting"
+        >确 定</el-button
+      >
     </span>
   </el-dialog>
 </template>
@@ -58,34 +85,40 @@
 import Constant from "@/constant";
 import userApi from "@/api/sys/user";
 import roleApi from "@/api/sys/role";
+import companyApi from "@/api/base/company";
+import SelectTree from "@/components/SelectTree";
 
 export default {
-  props: ["businessKey", "title"],
+  props: ["businessKey", "title","companyResult"],
   data() {
     return {
       showPwd: true,
       ruleValidate: {
         userName: [
-          { required: true, message: "用户名不能为空", trigger: "blur" }
+          { required: true, message: "用户名不能为空", trigger: "blur" },
         ],
         realName: [
-          { required: true, message: "真实名称不能为空", trigger: "blur" }
+          { required: true, message: "真实名称不能为空", trigger: "blur" },
         ],
         companyId: [
-          { required: true, message: "单位不能为空", trigger: "blur" }
+          { required: true, message: "单位不能为空", trigger: "blur" },
         ],
         password: [
-          { required: true, message: "密码不能为空", trigger: "blur" }
+          { required: true, message: "密码不能为空", trigger: "blur" },
         ],
         roles: [
-          { required: true, message: "分配角色不能为空", trigger: "blur" }
-        ]
+          { required: true, message: "分配角色不能为空", trigger: "blur" },
+        ],
       },
       roleList: [],
       formModel: {},
       showDialog: true,
       loading: false,
-      submitting: false
+      submitting: false,
+      companyProps: {
+        value: "id",
+        label: "name",
+      },
     };
   },
   methods: {
@@ -95,9 +128,9 @@ export default {
     handleSubmit() {
       var self = this;
 
-      this.$refs["form"].validate(valid => {
+      this.$refs["form"].validate((valid) => {
         if (valid) {
-          (function() {
+          (function () {
             var id = self.formModel.id;
 
             if (id == null || id.length == 0) {
@@ -106,20 +139,20 @@ export default {
               self.formModel.password = null;
               return userApi.update(self.formModel);
             }
-          })().then(function(response) {
+          })().then(function (response) {
             var jsonData = response.data;
 
             if (jsonData.result) {
               self.$message({
                 message: "保存成功!",
-                type: "success"
+                type: "success",
               });
 
-              self.$emit("close",true);
+              self.$emit("close", true);
             } else {
               self.$message({
                 message: jsonData.message + "",
-                type: "warning"
+                type: "warning",
               });
 
               self.$emit("close", false);
@@ -127,18 +160,18 @@ export default {
           });
         }
       });
-    }
+    },
   },
   async mounted() {
     var self = this;
     self.loading = true;
 
     // 不需要先加载列表值,再加载选中值了
-    await roleApi.selectAll().then(response => {
+    await roleApi.selectAll().then((response) => {
       this.roleList = response.data.data;
     });
 
-    (function() {
+    (function () {
       if (self.businessKey != null && self.businessKey.length > 0) {
         self.ruleValidate.password[0].required = false;
         return userApi.edit(self.businessKey);
@@ -147,7 +180,7 @@ export default {
         return userApi.create();
       }
     })()
-      .then(response => {
+      .then((response) => {
         var jsonData = response.data;
 
         if (jsonData.result) {
@@ -159,10 +192,13 @@ export default {
 
         self.loading = false;
       })
-      .catch(error => {
+      .catch((error) => {
         self.$message.error(error + "");
         self.loading = false;
       });
-  }
+  },
+  components: {
+    "el-select-tree": SelectTree
+  },
 };
 </script>

+ 35 - 2
src/views/sys/user-list.vue

@@ -14,6 +14,15 @@
       要resetFields起作用,必须配置:model和prop
     -->
     <el-form ref="queryForm" :model="queryModel" inline class="demo-form-inline">
+      <el-form-item label="所属单位" prop="companyId">
+        <el-select-tree
+          size="mini"
+          :props="props"
+          :options="companyResult"
+          v-model="queryModel.companyId"
+          height="200"
+        ></el-select-tree>
+      </el-form-item>
       <el-form-item label="用户名" prop="userName">
         <el-input type="text" size="mini" v-model="queryModel.userName"></el-input>
       </el-form-item>
@@ -74,6 +83,13 @@
       @selection-change="handleSelectionChange"
     >
       <el-table-column type="selection" width="55"></el-table-column>
+      <el-table-column
+        prop="companyName"
+        sort-by="company_name"
+        label="所属单位"
+        sortable="custom"
+        width="180"
+      ></el-table-column>
       <el-table-column
         prop="userName"
         sort-by="user_name"
@@ -123,6 +139,7 @@
       ref="userDetail"
       :businessKey="businessKey"
       :title="modalTitle"
+      :companyResult="companyResult"
       @close="onDetailModalClose"
     ></user-detail>
     <el-dialog
@@ -150,6 +167,7 @@ import UserDetail from "./user-detail";
 import userApi from "@/api/sys/user";
 import roleApi from "@/api/sys/role";
 import SelectTree from "@/components/SelectTree";
+import companyApi from "@/api/base/company";
 import NProgress from "nprogress"; // progress bar
 import "nprogress/nprogress.css"; // progress bar style
 
@@ -162,7 +180,8 @@ export default {
       queryModel: {
         userName: "",
         realName: "",
-        roleId:""
+        roleId:"",
+        companyId:""
       },
       loading: false,
       tableData: [],
@@ -202,6 +221,9 @@ export default {
 
       formData.append("userName", self.queryModel.userName);
       formData.append("realName", self.queryModel.realName);
+      formData.append("companyId", self.queryModel.companyId);
+      
+
 
       formData.append("roleId", self.queryModel.roleId);
 
@@ -334,7 +356,7 @@ export default {
 
       formData.append("userId",  self.changeId);
       formData.append("newPwd", self.newPassword);
-
+   
       userApi.changeUserPassword(formData).then(function(response) {
         var jsonData = response.data;
 
@@ -357,6 +379,16 @@ export default {
     var self = this;
     this.changePage(1);
 
+    companyApi.list().then((response) => {
+      var jsonData = response.data;
+
+      if (jsonData.result) {
+        this.companyResult = jsonData.data;
+      } else {
+        this.$message.error(jsonData.message + "");
+      }
+    });
+
     roleApi.selectAll().then(function(response) {
       var jsonData = response.data;
       if (jsonData.result) {
@@ -366,6 +398,7 @@ export default {
   },
   components: {
     "user-detail": UserDetail,
+    "el-select-tree": SelectTree
   }
 };
 </script>