Browse Source

模糊搜索成员

star7th 7 years ago
parent
commit
975b575b2f

+ 8 - 1
server/Application/Api/Controller/UserController.class.php

@@ -98,8 +98,15 @@ class UserController extends BaseController {
     public function allUser(){
         $login_user = $this->checkLogin();
         $uid = $login_user['uid'] ;
+        $username = I("username");
         $field = "username as value" ;
-        $info = D("User")->field($field)->select();
+        $username = \SQLite3::escapeString($username) ;
+        if ($username) {
+            $where = " username like '%{$username}%'" ;
+        }else{
+            $where = ' 1 = 1 ';
+        }
+        $info = D("User")->where($where)->field($field)->select();
         $this->sendResult($info); 
     }
 

+ 22 - 2
web_src/src/components/item/setting/Member.vue

@@ -64,7 +64,10 @@
       <el-dialog :visible.sync="dialogFormVisible" :modal="false" top="10vh">
       <el-form >
           <el-form-item label="" >
-            <el-input  :placeholder="$t('input_target_member')" v-model="MyForm.username"></el-input>
+            <el-autocomplete
+              :placeholder="$t('input_target_member')" v-model="MyForm.username"
+              :fetch-suggestions="getAllUser"
+            ></el-autocomplete>
           </el-form-item>
           <el-form-item label="" class="readonly-checkbox" >
             <el-checkbox v-model="MyForm.is_readonly">{{$t('readonly')}}</el-checkbox>
@@ -363,7 +366,24 @@ export default {
               }
               
           });
-      }
+      },
+      getAllUser(queryString,cb){
+        var that = this ;
+        var url = DocConfig.server+'/api/user/allUser';
+        var params = new URLSearchParams();
+        if (!queryString) {queryString = ''};
+        params.append('username', queryString);
+        that.axios.post(url, params)
+          .then(function (response) {
+            if (response.data.error_code === 0 ) {
+              var Info = response.data.data
+              cb(Info);
+            }else{
+              that.$alert(response.data.error_message);
+            }
+            
+          });
+      },
   },
 
   mounted(){

+ 23 - 2
web_src/src/components/team/Member.vue

@@ -37,7 +37,10 @@
             <el-dialog :visible.sync="dialogFormVisible"  width="300px">
                     <el-form >
                         <el-form-item :label="$t('member_username')+':'" >
-                           <el-input   v-model="MyForm.member_username"></el-input>
+                            <el-autocomplete
+                              v-model="MyForm.member_username"
+                              :fetch-suggestions="getAllUser"
+                            ></el-autocomplete>
                         </el-form-item>
                     </el-form>
 
@@ -139,12 +142,30 @@ export default {
       },
       goback(){
         this.$router.push({path:"/team/index"})
-      }
+      },
+      getAllUser(queryString,cb){
+        var that = this ;
+        var url = DocConfig.server+'/api/user/allUser';
+        var params = new URLSearchParams();
+        if (!queryString) {queryString = ''};
+        params.append('username', queryString);
+        that.axios.post(url, params)
+          .then(function (response) {
+            if (response.data.error_code === 0 ) {
+              var Info = response.data.data
+              cb(Info);
+            }else{
+              that.$alert(response.data.error_message);
+            }
+            
+          });
+      },
   },
 
   mounted(){
     this.team_id = this.$route.params.team_id; 
     this.geList();
+    thi.getAllUser()
   }
 }
 </script>