From e6758ef29bd686e894b4679edf1bd88436b84148 Mon Sep 17 00:00:00 2001
From: hanbaoshan <hanbaoshan@aiotlink.com>
Date: 星期三, 13 一月 2021 19:07:03 +0800
Subject: [PATCH] 分析检索/人员管理接口联调

---
 src/pages/shuohuangMonitorAnalyze/components/memberManage.vue |  263 ++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 212 insertions(+), 51 deletions(-)

diff --git a/src/pages/shuohuangMonitorAnalyze/components/memberManage.vue b/src/pages/shuohuangMonitorAnalyze/components/memberManage.vue
index 5d7a0a9..bc1be55 100644
--- a/src/pages/shuohuangMonitorAnalyze/components/memberManage.vue
+++ b/src/pages/shuohuangMonitorAnalyze/components/memberManage.vue
@@ -1,12 +1,20 @@
 <template>
   <div class="member-manage">
     <div class="left">
-      <div>
-        <el-input placeholder="璇疯緭鍏�" v-model="treeWord">
+      <div style="margin-bottom:10px;">
+        <el-input placeholder="璇疯緭鍏�" v-model="treeWord" size="small">
           <el-button slot="append" icon="el-icon-search"></el-button>
         </el-input>
       </div>
-      <el-tree :data="treeData" node-key="id" default-expand-all></el-tree>
+      <el-tree
+        :data="treeData"
+        node-key="id"
+        default-expand-all
+        @node-click="checkNode"
+        :expand-on-click-node="false"
+        :check-on-click-node="true"
+        :highlight-current="true"
+      ></el-tree>
       <div class="menuList" v-show="showMenu" :style="{top:menuTop+'px',left:menuLeft+'px'}">
         <ul>
           <li>鍒涘缓鍚岀骇鑺傜偣</li>
@@ -32,33 +40,58 @@
       <div class="table-area">
         <div class="actions">
           <el-button type="primary" size="small" @click="addMember">娣诲姞浜哄憳</el-button>
-          <el-button type="primary" size="small" @click="toggleOrganize">鎹㈢粍缁�</el-button>
+          <el-button
+            type="primary"
+            :disabled="multipleTableSelection.length<1"
+            size="small"
+            @click="toggleOrganize"
+          >鎹㈢粍缁�</el-button>
           <el-button type="primary" size="small" @click="batchImport">鎵归噺瀵煎叆</el-button>
-          <el-button type="primary" size="small" @click="uploadPic">涓婁紶鐓х墖</el-button>
+          <!-- <el-button type="primary" size="small" @click="uploadPic">涓婁紶鐓х墖</el-button> -->
         </div>
-        <el-table class="thbg" :data="tableData" fit ref="elTable">
+        <el-table
+          class="thbg"
+          :data="tableData"
+          fit
+          ref="elTable"
+          @selection-change="tableSelection"
+        >
           <el-table-column type="selection" width="55"></el-table-column>
-          <el-table-column label="濮撳悕" prop="name" sortable>
+          <el-table-column label="濮撳悕" prop="Name" sortable>
             <template slot-scope="scope">
-              <div style="cursor:pointer;">{{scope.row.name}}</div>
+              <div style="cursor:pointer;">{{scope.row.Name}}</div>
             </template>
           </el-table-column>
-          <el-table-column label="鐓х墖" prop="picture">
-            <template>
-              <div></div>
+          <el-table-column label="鐓х墖" prop="Surface">
+            <template slot-scope="scope">
+              <div class="table-cell-pic">
+                <img :src="`${CLIP}${scope.row.Surface}`" alt />
+              </div>
             </template>
           </el-table-column>
-          <el-table-column label="鎬у埆" prop="gender"></el-table-column>
-          <el-table-column label="鎵�灞炵粍缁�" prop="organization"></el-table-column>
-          <el-table-column label="宸ュ彿" prop="no"></el-table-column>
-          <el-table-column label="鎵嬫満鍙�" prop="phone"></el-table-column>
-          <el-table-column label="鐢ㄦ埛鏉冮檺" prop="userpermission"></el-table-column>
-          <el-table-column label="杞偍鏉冮檺" prop="transferpermission"></el-table-column>
-          <el-table-column label="鎿嶄綔">
-            <template>
+          <el-table-column label="鎬у埆" prop="Sex"></el-table-column>
+          <el-table-column label="鎵�灞炵粍缁�" prop="Org"></el-table-column>
+          <el-table-column label="宸ュ彿" prop="WorkID"></el-table-column>
+          <el-table-column label="鎵嬫満鍙�" prop="Tel"></el-table-column>
+          <el-table-column label="鐢ㄦ埛鏉冮檺" prop="userpermission">
+            <template slot-scope="scope">
               <div>
-                <i class="el-icon-edit"></i>
-                <i class="el-icon-delete"></i>
+                <el-switch v-model="scope.row.UserPermissions" @change="memberUpdate(scope.row)"></el-switch>
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column label="杞偍鏉冮檺" prop="transferpermission">
+            <template slot-scope="scope">
+              <div>
+                <el-switch v-model="scope.row.DumpPermissions" @change="memberUpdate(scope.row)"></el-switch>
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column label="鎿嶄綔">
+            <template slot-scope="scope">
+              <div class="operation">
+                <i class="el-icon-edit" @click="editMember(scope.row)"></i>
+                <i class="el-icon-delete" @click="delMember(scope.row)"></i>
               </div>
             </template>
           </el-table-column>
@@ -79,41 +112,41 @@
               class="avatar-uploader"
               action="https://jsonplaceholder.typicode.com/posts/"
               :show-file-list="false"
-              :http-request="uploadMemberPic"
+              :http-request="uploadMemberPicture"
             >
               <img
-                v-if="memberEditForm.memberPicUrl"
-                :src="memberEditForm.memberPicUrl"
+                v-if="memberEditForm.Surface"
+                :src="`/httpImage/`+memberEditForm.Surface"
                 class="avatar"
               />
               <i v-else class="el-icon-plus avatar-uploader-icon"></i>
             </el-upload>
           </el-form-item>
-          <el-form-item label="宸ュ彿:" prop="no">
-            <el-input v-model="memberEditForm.no" size="mini"></el-input>
+          <el-form-item label="宸ュ彿:" prop="WorkID">
+            <el-input v-model="memberEditForm.WorkID" size="mini"></el-input>
           </el-form-item>
           <el-form-item label="鐓х墖鏍囪瘑:">
-            <el-input v-model="memberEditForm.figure" size="mini"></el-input>
+            <el-input v-model="memberEditForm.SurfaceName" size="mini"></el-input>
           </el-form-item>
           <el-form-item label="濮撳悕:">
-            <el-input v-model="memberEditForm.name" size="mini"></el-input>
+            <el-input v-model="memberEditForm.Name" size="mini"></el-input>
+          </el-form-item>
+          <el-form-item label="鐢ㄦ埛鍚�:">
+            <el-input v-model="memberEditForm.UserName" size="mini"></el-input>
           </el-form-item>
           <el-form-item label="鎬у埆:">
-            <el-radio v-model="memberEditForm.gender" label="1">濂�</el-radio>
-            <el-radio v-model="memberEditForm.gender" label="2">鐢�</el-radio>
+            <el-radio v-model="memberEditForm.Sex" label="濂�">濂�</el-radio>
+            <el-radio v-model="memberEditForm.Sex" label="鐢�">鐢�</el-radio>
           </el-form-item>
           <el-form-item label="韬唤璇佸彿:">
-            <el-input v-model="memberEditForm.idCard" size="mini"></el-input>
+            <el-input v-model="memberEditForm.OwnerID" size="mini"></el-input>
           </el-form-item>
           <el-form-item label="鎵嬫満鍙�:">
-            <el-input v-model="memberEditForm.phone" size="mini"></el-input>
-          </el-form-item>
-          <el-form-item label="鍏朵粬:">
-            <el-input v-model="memberEditForm.other" size="mini"></el-input>
+            <el-input v-model="memberEditForm.Tel" size="mini"></el-input>
           </el-form-item>
           <div class="btns">
-            <el-button size="small">鍙栨秷</el-button>
-            <el-button size="small" type="primary">淇濆瓨</el-button>
+            <el-button size="small" @click="memberEditDialogVisible=false">鍙栨秷</el-button>
+            <el-button size="small" type="primary" @click="memberSave">淇濆瓨</el-button>
           </div>
         </el-form>
       </div>
@@ -126,18 +159,22 @@
       @close="toggleOrganizeDialogVisible=false"
     >
       <div class="text-left">
-        <div class="flex-box">
-          <label>浜哄憳:</label>
-          <span>lisi</span>
-        </div>
         <el-input v-model="organizeKeyword" size="small">
-          <el-button slot="append" icon="el-icon-search"></el-button>
+          <el-button slot="append" icon="el-icon-search" @clcik="getOrganizeTreeData"></el-button>
         </el-input>
         <div>榛樿缁勭粐</div>
-        <el-tree :data="organizeData" node-key="id" default-expand-all></el-tree>
+        <el-tree
+          :data="organizeData"
+          node-key="id"
+          default-expand-all
+          @node-click="checkOrgNode"
+          :expand-on-click-node="false"
+          :check-on-click-node="true"
+          :highlight-current="true"
+        ></el-tree>
         <div slot="footer" class="btns">
-          <el-button size="small">鍙栨秷</el-button>
-          <el-button size="small" type="primary">纭畾</el-button>
+          <el-button size="small" @click="toggleOrganizeDialogVisible=false">鍙栨秷</el-button>
+          <el-button size="small" type="primary" @click="updateOrg">纭畾</el-button>
         </div>
       </div>
     </el-dialog>
@@ -175,6 +212,15 @@
           <el-table-column prop="time" label="涓婁紶鏃堕棿"></el-table-column>
           <el-table-column prop="state" label="鐘舵��"></el-table-column>
         </el-table>
+        <el-pagination
+          @size-change="handleTableSizeChange"
+          @current-change="renderMemberTable"
+          :current-page.sync="PageIndex"
+          :page-size="PageSize"
+          :page-sizes="pageSizes"
+          layout="total,sizes, prev, pager, next"
+          :total="tableTotal"
+        ></el-pagination>
       </div>
     </el-dialog>
   </div>
@@ -182,21 +228,30 @@
 
 <script>
 
-import { getShuohuangDepartTree, getOrganizeTree } from '@/api/shuohuang'
+import { getShuohuangDepartTree, getOrganizeTree, getMemberList, updateMemberInfo, addMember, updateUnit, uploadMemberPic } from '@/api/shuohuang'
 
 export default {
   data () {
     return {
+      CLIP: 'http://192.168.20.113/',
       treeWord: '',
       treeData: [],
       showMenu: false,
+      deptId: '',
       menuTop: 0,
       menuLeft: 0,
       keyword: '',
       gender: '',
       genders: [{ name: '鐢�', id: 'g0' }, { name: '濂�', id: 'g1' }],
       tableData: [],
+      multipleTableSelection: [],
+      PageIndex: 1,
+      pageSizes: [2, 8, 12, 24],
+      tableTotal: 0,
+      PageSize: 8,
       organizeData: [],
+      checkedOrg: '',
+      organizeKeyword: '',
       memberEditDialogVisible: false,
       toggleOrganizeDialogVisible: false,
       batchImportDialogVisible: false,
@@ -209,9 +264,105 @@
   mounted () {
     this.searchLeftTreeData();
     this.getOrganizeTreeData();
+    this.renderMemberTable();
   },
   methods: {
-    uploadPic(){
+    checkOrgNode (a, b, c) {
+      this.checkedOrg = a.id
+    },
+    updateOrg () {
+      let ids = this.multipleTableSelection.map(row => {
+        return row.ID
+      });
+      let params = {
+        DeptID: this.checkedOrg,
+        Users: ids.join(',')
+      }
+      updateUnit(params).then(res => {
+        if (res.success) {
+          this.$notify({
+            type: 'success',
+            message: res.msg
+          });
+          this.toggleOrganizeDialogVisible = false;
+          this.renderMemberTable();
+        }
+      })
+
+    },
+    tableSelection (val) {
+      this.multipleTableSelection = val;
+    },
+    memberSave () {
+      if (this.memberEditForm.ID) {
+        updateMemberInfo(this.memberEditForm).then(res => {
+          if (res.success) {
+            this.$notify({
+              type: 'success',
+              message: res.msg
+            });
+            this.memberEditDialogVisible = false;
+            this.renderMemberTable();
+          }
+        })
+      }else{
+        addMember(this.memberEditForm).then(res=>{
+          if(res.success){
+            this.$notify({
+              type:'success',
+              message: res.msg
+            })
+            this.renderMemberTable();
+          }
+        })
+      }
+
+    },
+    delMember (member) {
+      member.IsDel = true;
+      this.memberUpdate(member);
+    },
+    editMember (member) {
+      debugger
+      this.memberEditDialogVisible = true;
+      this.memberEditForm = member;
+    },
+    memberUpdate (member) {
+      updateMemberInfo(member).then(res => {
+        if (res.success) {
+          this.$notify({
+            type: 'success',
+            message: res.msg
+          });
+          this.renderMemberTable();
+        }
+      })
+    },
+    checkNode (a, b, c) {
+      if (a.children) {
+        this.deptId = a.id;
+        this.renderMemberTable();
+      }
+    },
+    handleTableSizeChange (size) {
+      this.PageSize = size;
+      this.renderMemberTable();
+    },
+    renderMemberTable () {
+      let _this = this;
+      let params = {
+        DeptID: this.deptId,
+        keyword: this.keyword,
+        Sex: this.gender,
+        PageIndex: this.PageIndex,
+        PageSize: this.PageSize
+      }
+      getMemberList(params).then(res => {
+
+        _this.tableData = res.data;
+      })
+    },
+    uploadPic () {
 
     },
     batchImportFiles () {
@@ -229,7 +380,13 @@
     toggleOrganize () {
       this.toggleOrganizeDialogVisible = true;
     },
-    uploadMemberPic () { },
+    uploadMemberPicture (params) {
+      let param = new FormData();
+      param.append('file', params.file)
+      uploadMemberPic(param).then(res => {
+        this.$set(this.memberEditForm,'Surface',res.data)
+      })
+    },
     openMenuList (t, l, frame) {
       this.showMenu = true;
       this.menuTop = t;
@@ -326,7 +483,7 @@
     height: 178px;
     display: block;
   }
-  .batch-upload{
+  .batch-upload {
     text-align: left;
     margin: 0 20px 20px 10px;
   }
@@ -374,7 +531,7 @@
     background: rgba(152, 170, 190, 0.7);
   }
   .right {
-    padding: 8px 0 0 20px;
+    padding-left: 20px;
     .filter-bar {
       display: flex;
       margin-bottom: 20px;
@@ -386,7 +543,11 @@
       .actions {
         text-align: left;
       }
-      
+      .table-cell-pic {
+        img {
+          width: 70px;
+        }
+      }
     }
   }
 }

--
Gitblit v1.8.0