From 781e1ea65273cf10d6e5ed39e435107d67a8c667 Mon Sep 17 00:00:00 2001
From: 晏有为 <13214124+yan-youwei@user.noreply.gitee.com>
Date: 星期四, 16 五月 2024 17:21:59 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/components/view/person-manage.vue |  925 ++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 549 insertions(+), 376 deletions(-)

diff --git a/src/components/view/person-manage.vue b/src/components/view/person-manage.vue
index 1361188..791815b 100644
--- a/src/components/view/person-manage.vue
+++ b/src/components/view/person-manage.vue
@@ -1,80 +1,83 @@
 <style scoped>
-  .person_manage{
+  .person_manage {
     padding: 20px 0;
-		display: flex;
+    display: flex;
   }
+
   .left {
-		width: 270px;
-		height: calc(100% - 40px);
-		background-color: white;
-		padding: 15px;
-	}
-  .el-tree{
+    width: 270px;
+    height: calc(100% - 40px);
+    background-color: white;
+    padding: 15px;
+  }
+
+  .el-tree {
     height: calc(100% - 37px);
     overflow-y: auto;
   }
 
-	.custom-tree-node {
-		width: 100%;
-		line-height: 32px;
-	}
+  .custom-tree-node {
+    width: 100%;
+    line-height: 32px;
+  }
 
-	.custom-tree-node .el-icon-delete {
-		color: #3A7BFA;
-		opacity: 0;
-		font-size: 18px;
-	}
+  .custom-tree-node .el-icon-delete {
+    color: #3A7BFA;
+    opacity: 0;
+    font-size: 18px;
+  }
 
-	.custom-tree-node:hover .el-icon-delete {
-		opacity: 1;
-	}
+  .custom-tree-node:hover .el-icon-delete {
+    opacity: 1;
+  }
 
-	.node_i {
-		color: orange;
-		font-size: 18px;
-	}
+  .node_i {
+    color: orange;
+    font-size: 18px;
+  }
 
-	.right {
-		margin-left: 5px;
-		width: calc(100% - 305px);
-		height: calc(100% - 40px);
-	}
-	.title {
-		height: 60px;
-		line-height: 60px;
-	}
+  .right {
+    margin-left: 5px;
+    width: calc(100% - 305px);
+    height: calc(100% - 40px);
+  }
 
-	.search {
-		background-color: #fff;
-		height: 60px;
-		display: flex;
-		align-items: center;
-	}
+  .title {
+    height: 60px;
+    line-height: 60px;
+  }
 
-	.search_thing {
-		width: 250px;
-		display: flex;
-		align-items: center;
-	}
+  .search {
+    background-color: #fff;
+    height: 60px;
+    display: flex;
+    align-items: center;
+  }
 
-	.search_label {
-		width: 90px;
-		font-size: 14px;
-		text-align: right;
-	}
+  .search_thing {
+    width: 250px;
+    display: flex;
+    align-items: center;
+  }
 
-	.search_input {
-		width: calc(100% - 90px);
-	}
+  .search_label {
+    width: 90px;
+    font-size: 14px;
+    text-align: right;
+  }
 
-	.table {
-		margin-top: 4px;
-		background-color: #fff;
-		height: calc(100% - 44px);
-	}
+  .search_input {
+    width: calc(100% - 90px);
+  }
+
+  .table {
+    margin-top: 4px;
+    background-color: #fff;
+    height: calc(100% - 44px);
+  }
 </style>
 <style>
-  .el-upload--text{
+  .el-upload--text {
     width: 100%;
     height: 100%;
     display: flex;
@@ -82,45 +85,66 @@
     justify-content: center;
   }
 </style>
+<style>
+  .person_manage .el-tree-node__content {
+    height: 32px;
+    font-size: 14px;
+    border-radius: 2px;
+  }
 
+  .person_manage .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
+    color: #3A7BFA;
+  }
+
+  .person_manage .has-gutter .el-table__cell .cell {
+    line-height: 34px;
+    background-color: #f8f8f8;
+  }
+
+  .person_manage .has-gutter .el-table__cell {
+    background-color: #fafafa !important;
+  }
+
+  .person_manage .el-table__row .cell {
+    font-size: 14px;
+  }
+
+  .person_manage .el-table .warning-row .cell {
+    color: #bababa;
+  }
+</style>
 <template>
-	<div class="person_manage">
-		<!-- <el-row class="title">
-      <el-col :span="12" style="padding-left: 20px;">鐢ㄦ埛绠$悊</el-col>
-      <el-col :span="12" style="text-align: right;">
-
-      </el-col>
-    </el-row> -->
+  <div class="person_manage">
     <div class="left">
       <el-row>
-				<el-col :span="20">
-					<el-input placeholder="杈撳叆鍏抽敭瀛楄繘琛屾悳绱�" suffix-icon="el-icon-search" v-model="search" size="small"
-						style="margin-bottom: 5px;" clearable @blur="searchFilter" @clear="searchFilter"></el-input>
-				</el-col>
-				<el-col :span="4" style="text-align: center;line-height: 30px;" v-if="addPower">
-					<el-button type="primary" icon="el-icon-plus" size="mini" circle @click="handleAdd"></el-button>
-				</el-col>
-			</el-row>
-			<el-tree :data="list" ref="tree" :props="{ children: 'children', label: 'name' }" node-key="id"
-				:filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current @node-expand="nodeOpen"
-				@node-collapse="nodeClose" v-loading="treeLoad" :expand-on-click-node="false"
-				:default-expanded-keys="expandedKeys"
-        :default-checked-keys="[1]">
-				<div class="custom-tree-node" slot-scope="{ node, data }">
-					<el-row style="width: 100%;">
-						<el-col :span="21" :class="{sort:node.level>3}">
-							<span><i
-									:class="`node_i ${data.children != undefined&&data.children.length>0 ? 'el-icon-folder-opened' : 'el-icon-tickets'}`"></i>
-								 {{ data.name }}</span>
-						</el-col>
-						<el-col :span="2" style="text-align: right;" v-if="delStandardTree&&node.level>1">
-							<el-button type="text" size="mini" @click.stop="remove(node, data)">
-								<i class="el-icon-delete"></i>
-							</el-button>
-						</el-col>
-					</el-row>
-				</div>
-			</el-tree>
+        <el-col :span="20">
+          <el-input placeholder="杈撳叆鍏抽敭瀛楄繘琛屾悳绱�" suffix-icon="el-icon-search" v-model="search" size="small"
+            style="margin-bottom: 5px;" clearable @blur="searchFilter" @clear="searchFilter"
+            @keyup.enter.native="searchFilter()"></el-input>
+        </el-col>
+        <el-col :span="4" style="text-align: center;line-height: 30px;" v-if="addPower">
+          <el-button type="primary" icon="el-icon-plus" size="mini" circle @click="handleAdd"></el-button>
+        </el-col>
+      </el-row>
+      <el-tree :data="list" ref="tree" :props="{ children: 'children', label: 'name' }" node-key="id"
+        :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current @node-expand="nodeOpen"
+        @node-collapse="nodeClose" v-loading="treeLoad" :expand-on-click-node="false"
+        :default-expanded-keys="expandedKeys" :default-checked-keys="[1]">
+        <div class="custom-tree-node" slot-scope="{ node, data }">
+          <el-row style="width: 100%;">
+            <el-col :span="21" :class="{sort:node.level>3}">
+              <span><i
+                  :class="`node_i ${data.children != undefined&&data.children.length>0 ? 'el-icon-folder-opened' : 'el-icon-tickets'}`"></i>
+                {{ data.name }}</span>
+            </el-col>
+            <el-col :span="2" style="text-align: right;" v-if="delStandardTree&&node.level>1">
+              <el-button type="text" size="mini" @click.stop="remove(node, data)">
+                <i class="el-icon-delete"></i>
+              </el-button>
+            </el-col>
+          </el-row>
+        </div>
+      </el-tree>
     </div>
     <div class="right">
       <div class="search">
@@ -142,7 +166,8 @@
         <div class="search_thing">
           <div class="search_label">鍏徃鍚嶇О锛�</div>
           <div class="search_input">
-            <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="componentData.entity.company" @keyup.enter.native="refreshTable()"></el-input>
+            <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="componentData.entity.company"
+              @keyup.enter.native="refreshTable()"></el-input>
           </div>
         </div>
         <div class="search_thing" style="padding-left: 30px;">
@@ -150,148 +175,151 @@
           <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
         </div>
         <div class="search_thing">
-          <el-button size="small" type="primary" @click="openthirdParty">鑾峰彇涓夋柟浜哄憳</el-button>
+          <el-button size="small" type="primary" @click="openthirdParty" v-if="addUserPower">鑾峰彇涓夋柟浜哄憳</el-button>
           <el-button size="small" type="primary" @click="opeaAdd" v-if="addPower">鏂板鐢ㄦ埛</el-button>
         </div>
       </div>
       <div class="table">
-        <ValueTable ref="ValueTable" :url="$api.user.selectUserList" :upUrl="$api.user.updateUser" :componentData="componentData" :key="upIndex" @upUser="upUser"/>
+        <ValueTable ref="ValueTable" :url="$api.user.selectUserList" :upUrl="$api.user.updateUser"
+          :componentData="componentData" :key="upIndex" />
       </div>
     </div>
-    <el-dialog title="鏋舵瀯鏂板" :visible.sync="addDia" width="400px">
-			<div class="body">
-				<el-row style="line-height: 50px;">
-					<el-col :span="6" style="text-align: right;">
-						<span class="required-span">* </span>鏋舵瀯鍚嶇О锛�
-					</el-col>
-					<el-col :span="16" :offset="1">
-						<el-input v-model="addOb.name" placeholder="璇疯緭鍏ユ灦鏋勫悕绉�" clearable size="small"></el-input>
-					</el-col>
-				</el-row>
-			</div>
-			<span slot="footer" class="dialog-footer">
-				<el-button @click="addDia = false">鍙� 娑�</el-button>
-				<el-button type="primary" @click="addStandardTree" :loading="addLoad">纭� 瀹�</el-button>
-			</span>
-		</el-dialog>
-    <el-dialog title="娣诲姞涓夋柟浜哄憳" :visible.sync="addthirdParty" width="400px">
+    <el-dialog title="鏋舵瀯鏂板" :visible.sync="addDia0" width="400px">
       <div class="body">
-        <el-tree
-          :data="datathirdParty"
-          show-checkbox
-          node-key="id"
-          :default-expanded-keys="[2, 3]"
-          :default-checked-keys="[5]"
-          :props="defaultProps">
-        </el-tree>
-        <span slot="footer" style="padding-left: 200px">
-            <el-button @click="addthirdParty = false" size="mini">鍙� 娑�</el-button>
-        <el-button type="primary" @click="" :loading="addLoad" size="mini">纭� 瀹�</el-button>
-			</span>
+        <el-row style="line-height: 50px;">
+          <el-col :span="6" style="text-align: right;">
+            <span class="required-span">* </span>鏋舵瀯鍚嶇О锛�
+          </el-col>
+          <el-col :span="16" :offset="1">
+            <el-input v-model="addOb.name" placeholder="璇疯緭鍏ユ灦鏋勫悕绉�" clearable size="small"></el-input>
+          </el-col>
+        </el-row>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="addDia0 = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="addStandardTree" :loading="addLoad">纭� 瀹�</el-button>
+      </span>
+    </el-dialog>
+    <el-dialog title="鑾峰彇浜轰簨绯荤粺浜哄憳淇℃伅" :visible.sync="addthirdParty" width="70%">
+      <div class="body">
+        <el-row>
+          <el-col :span="9" style="height: 70vh;overflow: hidden;">
+            <el-input placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" v-model="search2" size="small" style="width: 90%;padding: 0 5% 10px 5%;"
+              clearable @blur="searchFilter2" @clear="searchFilter2" @keyup.enter.native="searchFilter2()">
+            </el-input>
+            <el-tree :data="datathirdParty" node-key="id" :props="defaultProps" @node-click="nodeClick2"
+              style="height: calc(100% - 42px);"
+              @node-expand="nodeOpen0" :filter-node-method="filterNode2" ref="tree2" highlight-current>
+            </el-tree>
+          </el-col>
+          <el-col :span="15" style="height: 70vh;padding-left: 8px;">
+            <div class="search_thing" style="width: 360px;margin-bottom: 10px;">
+              <div class="search_label" style="width: 140px;">鍛樺伐鍙�/鍛樺伐濮撳悕锛�</div>
+              <div class="search_input">
+                <el-input
+                size="small"
+                placeholder="璇疯緭鍏ュ伐鍙�/鍛樺伐濮撳悕"
+                @clear="searchPerson"
+                clearable
+                v-model="userSearch2"
+                @keyup.enter.native="searchPerson()">
+                <i slot="suffix" class="el-input__icon el-icon-search" style="cursor: pointer;" @click="searchPerson"></i></el-input>
+                </div>
+            </div>
+            <el-table height="67vh" border stripe :data="personList" v-loading="personLoad" ref="personTable"
+              @selection-change="handleSelectionChange">
+              <el-table-column type="selection" width="50">
+              </el-table-column>
+              <el-table-column prop="employeeID" label="鍛樺伐鍙�">
+              </el-table-column>
+              <el-table-column prop="name" label="鍛樺伐濮撳悕">
+              </el-table-column>
+              <el-table-column prop="isLive" label="宸插瓨鍦�" width="80" align="center">
+                <template slot-scope="scope">
+                  <el-tag type="success" effect="dark" v-if="scope.row.isLive === 1">鈭�</el-tag>
+                </template>
+              </el-table-column>
+            </el-table>
+          </el-col>
+        </el-row>
+      </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="addthirdParty = false" size="mini">鍙� 娑�</el-button>
+        <el-button type="primary" @click="addUser2" :loading="addLoad" size="mini">纭� 瀹�</el-button>
       </div>
     </el-dialog>
-	</div>
+  </div>
 </template>
 
 <script>
-	import ValueTable from '../tool/value-table.vue'
-	export default {
-		components: {
-			ValueTable
-		},
-		data() {
-			return {
-        datathirdParty:[{
-          id: 1,
-          label: '涓�绾� 1',
-          children: [{
-            id: 4,
-            label: '浜岀骇 1-1',
-            children: [{
-              id: 9,
-              label: '涓夌骇 1-1-1'
-            }, {
-              id: 10,
-              label: '涓夌骇 1-1-2'
-            }]
-          }]
-        }, {
-          id: 2,
-          label: '涓�绾� 2',
-          children: [{
-            id: 5,
-            label: '浜岀骇 2-1'
-          }, {
-            id: 6,
-            label: '浜岀骇 2-2'
-          }]
-        }, {
-          id: 3,
-          label: '涓�绾� 3',
-          children: [{
-            id: 7,
-            label: '浜岀骇 3-1'
-          }, {
-            id: 8,
-            label: '浜岀骇 3-2'
-          }]
-        }],
+  import {
+    compileToFunctions
+  } from 'vue-template-compiler'
+  import ValueTable from '../tool/value-table.vue'
+  export default {
+    components: {
+      ValueTable
+    },
+    data() {
+      return {
+        datathirdParty: [],
         defaultProps: {
           children: 'children',
           label: 'label'
         },
-        addthirdParty:false,
-				componentData: {
-					entity: {
-						name: null,
-						state: null,
-						company: null,
-						orderBy:{
-							field: 'id',
-							order: 'asc'
-						}
-					},
+        addthirdParty: false,
+        componentData: {
+          entity: {
+            name: null,
+            state: null,
+            company: null,
+            departId: null,
+            orderBy: {
+              field: 'id',
+              order: 'asc'
+            }
+          },
           row: 2,
-					isIndex: true,
-					showSelect: false,
-					select: false,
-          init:false,
-					do: [{
-						id: 'update',
-						font: '缂栬緫',
-						type: 'text',
-						method: 'doDiy',
-						field:['createUserName','updateUserName','roleName','瑙掕壊=roleId','瀵嗙爜=password']
-					}],
-					tagField: {
-						state: {
-							select: [{
-								value: 1,
-								type: 'success',
-								label: '鍚敤'
-							},{
-								value: 0,
-								type: 'danger',
-								label: '鍋滅敤'
-							}]
-						}
-					},
-					selectField: {
-						state: {
-							select: [{
-								value: 1,
-								type: 'success',
-								label: '鍚敤'
-							},{
-								value: 0,
-								type: 'danger',
-								label: '鍋滅敤'
-							}]
-						},
-						roleId: {
-							select: []
-						}
-					},
+          isIndex: true,
+          showSelect: false,
+          select: false,
+          init: false,
+          do: [{
+            id: 'update',
+            font: '缂栬緫',
+            type: 'text',
+            method: 'doDiy',
+            field: ['createUserName', 'updateUserName', 'roleName', '瑙掕壊=roleId', '瀵嗙爜=password']
+          }],
+          tagField: {
+            state: {
+              select: [{
+                value: 1,
+                type: 'success',
+                label: '鍚敤'
+              }, {
+                value: 0,
+                type: 'danger',
+                label: '鍋滅敤'
+              }]
+            }
+          },
+          selectField: {
+            state: {
+              select: [{
+                value: 1,
+                type: 'success',
+                label: '鍚敤'
+              }, {
+                value: 0,
+                type: 'danger',
+                label: '鍋滅敤'
+              }]
+            },
+            roleId: {
+              select: []
+            }
+          },
           /* cascaderField:{
             departId:{
               tree:[]
@@ -303,199 +331,344 @@
               checkStrictly: true
             }
           }, */
-					requiredAdd:['account','name','state','roleId','password','nameEn','phone'],
-					requiredUp:['account','name','state','roleId','nameEn','phone'],
-          addUpload:['pictureUrl','signatureUrl'],
-          addUploadConfig:{
-            accept:'.png, .jpg, .jpeg, .gif',
-            url:this.$api.deviceScope.uploadFile
+          requiredAdd: ['account', 'name', 'state', 'roleId', 'password', 'nameEn', 'phone'],
+          requiredUp: ['account', 'name', 'state', 'roleId', 'nameEn', 'phone'],
+          // disabledUp:['departId'],
+          addUpload: ['pictureUrl', 'signatureUrl'],
+          addUploadConfig: {
+            accept: '.png, .jpg, .jpeg, .gif',
+            url: this.$api.deviceScope.uploadFile
           },
-				},
-				entityCopy: {},
-				upIndex: 0,
-				addDia: false,
-				addPower: true,
-        delStandardTree:true,
-        addDia0:false,
-        addOb:{
-          fatherId:'',
-          name:'',
+        },
+        entityCopy: {},
+        upIndex: 0,
+        addDia: false,
+        addPower: true,
+        addUserPower: true,
+        delStandardTree: true,
+        addDia0: false,
+        addOb: {
+          fatherId: '',
+          name: '',
         },
         search: null,
-				list: [],
-				selectTree: '',
-        treeLoad:false,
+        list: [],
+        selectTree: '',
+        treeLoad: false,
         expandedKeys: [],
-        addLoad:false,
-			}
-		},
-		mounted() {
+        addLoad: false,
+        personList: [],
+        personListCopy:[],
+        treeLoad: false,
+        personLoad: false,
+        search2: '',
+        multipleSelection: [],
+        companiesList:[],
+        currentCompaniesList: [],
+        userSearch2:''
+      }
+    },
+    // watch: {
+    //   userSearch2(val){}
+    // },
+    mounted() {
       this.selectTreeList()
-			this.selectRole()
-			this.entityCopy = this.HaveJson(this.componentData.entity)
-			this.getPower()
-		},
-		methods: {
-      openthirdParty(){
-        this.addthirdParty=true;
-
+      this.selectRole()
+      this.entityCopy = this.HaveJson(this.componentData.entity)
+      this.getPower()
+    },
+    methods: {
+      openthirdParty() {
+        this.addthirdParty = true;
+        this.$axios.get(this.$api.companies.selectCompaniesList).then(res => {
+          this.companiesList = JSON.parse(JSON.stringify(res.data));
+          this.datathirdParty = []
+          for (let ai = 0; ai < res.data.length; ai++) {
+            let a = res.data[ai]
+            if (a.parentCompanyId === 'ROOT') {
+              this.datathirdParty.push({
+                id: a.companyId,
+                label: a.companyName,
+                children: []
+              })
+              res.data.splice(ai, 1)
+              ai--
+            } else {
+              this.getOrganizational(a, ai, this.datathirdParty, res.data)
+            }
+          }
+        })
       },
-			refreshTable() {
-				this.$refs['ValueTable'].selectList()
-			},
-			refresh() {
-				this.componentData.entity = this.HaveJson(this.entityCopy)
-				this.upIndex++
-			},
-			upUser(row){
-				console.log(row);
-			},
-			selectRole(){
-				this.$axios.get(this.$api.user.selectRoleList).then(res=>{
-					var str = []
-					res.data.forEach(a=>{
-						str.push({
-							label: a.name,
-							value: a.id
-						})
-					})
-					this.componentData.selectField.roleId.select = str
-				})
-			},
-			opeaAdd(){
-				this.$refs.ValueTable.openAddDia(this.$api.user.addUser);
-			},
-      selectTreeList(){
-       /* this.$axios.get(this.$api.department.selectDepartment).then(res => {
+      getOrganizational(a, ai, children, list) {
+        for (let bi = 0; bi < children.length; bi++) {
+          let b = children[bi]
+          if (a.parentCompanyId === b.id) {
+            b.children.push({
+              id: a.companyId,
+              label: a.companyName,
+              children: []
+            })
+            list.splice(ai, 1)
+            ai--
+            break
+          } else {
+            this.getOrganizational(a, ai, b.children, list)
+          }
+        }
+      },
+      refreshTable() {
+        this.$refs['ValueTable'].selectList()
+      },
+      refresh() {
+        this.componentData.entity = this.HaveJson(this.entityCopy)
+        // this.upIndex++
+        this.refreshTable()
+      },
+      selectRole() {
+        this.$axios.get(this.$api.user.selectRoleList).then(res => {
+          var str = []
+          res.data.forEach(a => {
+            str.push({
+              label: a.name,
+              value: a.id
+            })
+          })
+          this.componentData.selectField.roleId.select = str
+        })
+      },
+      opeaAdd() {
+        if (!this.addOb.fatherId || this.selectTree == '' || this.selectTree == '鍏ㄩ儴') {
+          this.$message.error('璇烽�夋嫨涓�涓粍缁�')
+          return
+        }
+        this.$refs.ValueTable.openAddDia(this.$api.user.addUser);
+        this.$refs['ValueTable'].upData.departId = this.selectTree
+      },
+      selectTreeList() {
+        /* this.$axios.get(this.$api.department.selectDepartment).then(res => {
           this.componentData.cascaderField.departId.tree = this.handleTree(res.data[0].children)
 				}) */
         this.$refs.ValueTable.selectList()
       },
-      handleTree(arr){
+      handleTree(arr) {
         arr.forEach(a => {
-          if(a.children.length==0){
+          if (a.children.length == 0) {
             a.children = null;
-          }else{
+          } else {
             this.handleTree(a.children)
           }
         })
         return arr
       },
-			// 鏉冮檺鍒嗛厤
-			getPower(){
-				let power = JSON.parse(sessionStorage.getItem('power'))
-				let up = false
-				let add = false
-				for (var i = 0; i < power.length; i++) {
-					if(power[i].menuMethod=='updateUser'){
-						up = true
-					}
-					if(power[i].menuMethod=='addUser'){
-						add = true
-					}
-				}
-				if(!up){
-					this.componentData.do.splice(0, 1)
-				}
-				this.addPower = add
-			},
-      handleAdd(){
-        if(this.addOb.fatherId){
+      // 鏉冮檺鍒嗛厤
+      getPower() {
+        let power = JSON.parse(sessionStorage.getItem('power'))
+        let up = false
+        let add = false
+        let addUserPower = false
+        let delStandardTree = false
+        for (var i = 0; i < power.length; i++) {
+          if (power[i].menuMethod == 'updateUser') {
+            up = true
+          }
+          if (power[i].menuMethod == 'addUser') {
+            add = true
+          }
+          if (power[i].menuMethod == 'delDepartment') {
+            delStandardTree = true
+          }
+          if (power[i].menuMethod == 'addPersonUser') {
+            addUserPower = true
+          }
+        }
+        if (!up) {
+          this.componentData.do.splice(0, 1)
+        }
+        this.delStandardTree = delStandardTree
+        this.addPower = add
+        this.addUserPower = addUserPower
+      },
+      handleAdd() {
+        if (this.addOb.fatherId||this.addOb.name=='鍏ㄩ儴') {
           this.addDia0 = true;
-        }else{
+        } else {
           this.$message.error('璇烽�夋嫨涓�涓灦鏋勫眰绾�')
         }
       },
       searchFilter() {
-				this.$refs.tree.filter(this.search)
-			},
+        this.$refs.tree.filter(this.search)
+      },
+      searchFilter2() {
+        this.$refs.tree2.filter(this.search2)
+      },
       filterNode(value, data) {
-				if (!value) return true;
-				return data.name.indexOf(value) !== -1;
-			},
+        console.log(data);
+        if (!value) return true;
+        return data.name.indexOf(value) !== -1;
+      },
+      filterNode2(value, data) {
+        if (!value) return true;
+        return data.label.indexOf(value) !== -1;
+      },
       handleNodeClick(val, node, el) { //鏍戠殑鍊�
-				this.selectTree = ''
-				this.getNodeParent(node)
-				this.selectTree = this.selectTree.replace(' - ', '')
-				let data = this.selectTree.split(' - ')
-				let data2 = ''
-				for (let index = data.length - 1; index >= 0; index--) {
-					data2 += " - " + data[index]
-				}
-				this.selectTree = data2.replace(' - ', '')
+        this.selectTree = ''
+        this.getNodeParent(node)
+        this.selectTree = this.selectTree.replace(' - ', '')
+        let data = this.selectTree.split(' - ')
+        let data2 = ''
+        for (let index = data.length - 1; index >= 0; index--) {
+          data2 += " - " + data[index]
+        }
+        this.selectTree = data2.replace(' - ', '')
         this.addOb.fatherId = val.id;
         this.componentData.entity.departId = val.id;
         this.refreshTable()
-			},
+      },
       nodeOpen(data, node, el) {
-				$($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder-opened')
-			},
+        $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder-opened')
+      },
+      nodeOpen0(data, node, el){
+        this.currentCompaniesList[node.level-1] = data.id
+      },
       nodeClose(data, node, el) {
-				$($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder')
-			},
+        $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder')
+      },
       getNodeParent(val) {
-				if (val.parent != null) {
-					this.selectTree += ' - ' + val.label
-					this.getNodeParent(val.parent)
-				}
-			},
+        if (val.parent != null) {
+          this.selectTree += ' - ' + val.label
+          this.getNodeParent(val.parent)
+        }
+      },
       remove(node, data) {
-				this.$confirm("鏄惁鍒犻櫎璇ュ眰绾�", "鎻愮ず", {
-					type: "error"
-				}).then(() => {
-					this.treeLoad = true
-					this.$axios.post(this.$api.department.delDepartment, {
-						id: data.id
-					}).then(res => {
-						if (res.code == 201) return
-						this.$message.success('宸插垹闄�')
-						this.selectTreeList()
-					})
-				}).catch(e => {})
-			},
+        this.$confirm("鏄惁鍒犻櫎璇ュ眰绾�", "鎻愮ず", {
+          type: "error"
+        }).then(() => {
+          this.treeLoad = true
+          this.$axios.post(this.$api.department.delDepartment, {
+            id: data.id
+          }).then(res => {
+            if (res.code == 201) return
+            this.$message.success('宸插垹闄�')
+            this.selectTreeList()
+          })
+        }).catch(e => {})
+      },
       selectTreeList() {
-				this.treeLoad = true
-				this.$axios.get(this.$api.department.selectDepartment).then(res => {
-					this.list = res.data
-					this.list.forEach(a => {
-						a.children.forEach(b => {
-							b.children.forEach(c => {
-								this.expandedKeys.push(c.id)
-							})
-						})
-					})
-					this.treeLoad = false
+        this.treeLoad = true
+        this.$axios.get(this.$api.department.selectDepartment).then(res => {
+          this.list = res.data
+          this.list.forEach(a => {
+            a.children.forEach(b => {
+              b.children.forEach(c => {
+                this.expandedKeys.push(c.id)
+              })
+            })
+          })
+          this.treeLoad = false
           this.componentData.entity.departId = this.list[0].id;
           this.selectTree = '鍏ㄩ儴'
           this.refreshTable()
-				})
-			},
+        })
+      },
       addStandardTree() {
-				if (this.addOb.name == null || this.addOb.factory == '') {
-					this.$message.error('鏋勬灦鍚嶇О鏄繀濉」')
-					return
-				}
-				this.addLoad = true
-				this.$axios.post(this.$api.department.addDepartment, this.addOb, {
-					headers: {
-						'Content-Type': 'application/json'
-					}
-				}).then(res => {
-					if (res.code === 201) {
-						this.addLoad = false
-						return
-					}
-					this.$message.success('娣诲姞鎴愬姛')
-					this.addDia0 = false
-					this.selectTreeList()
-					this.addLoad = false
+        if (this.addOb.name == null || this.addOb.factory == '') {
+          this.$message.error('鏋勬灦鍚嶇О鏄繀濉」')
+          return
+        }
+        this.addLoad = true
+        this.$axios.post(this.$api.department.addDepartment, this.addOb, {
+          headers: {
+            'Content-Type': 'application/json'
+          }
+        }).then(res => {
+          if (res.code === 201) {
+            this.addLoad = false
+            return
+          }
+          this.$message.success('娣诲姞鎴愬姛')
+          this.addDia0 = false
+          this.selectTreeList()
+          this.addLoad = false
           this.addOb.name = ''
           this.addOb.fatherId = ''
-				}).catch(e => {
-					this.addDia0 = false
-					this.addLoad = false
-				})
-			},
-		}
-	}
+        }).catch(e => {
+          this.addDia0 = false
+          this.addLoad = false
+        })
+      },
+      nodeClick2(ob, node, el) {
+        this.currentCompaniesList[node.level-1] = ob.id
+        if (ob.id !== 'SC21') {
+          this.personLoad = true
+          this.$axios.post(this.$api.companies.selectSimpleList, {
+            companyId: ob.id
+          }).then(res => {
+            this.personListCopy = JSON.parse(JSON.stringify(res.data))
+            this.personList = res.data
+            this.personLoad = false
+            this.$refs.personTable.doLayout()
+          })
+        }
+      },
+      handleSelectionChange(val) {
+        this.multipleSelection = val;
+      },
+      addUser2(){
+        if(this.multipleSelection.length === 0){
+          return this.$message.error('璇烽�夋嫨浜哄憳')
+        }
+        if(this.currentCompaniesList.length === 0){
+          return this.$message.error('璇烽�夋嫨缁勭粐')
+        }
+        for (let index = this.currentCompaniesList.length-1; index >1; index--) {
+          let obj = this.multipleSelection.find(a=>a.companyId==this.currentCompaniesList[index])
+          if(!obj){
+            this.currentCompaniesList.splice(index,1)
+          }else{
+            return
+          }
+        }
+        let arr = []
+        this.currentCompaniesList.forEach(b=>{
+          this.companiesList.forEach(a=>{
+            if(a.companyId===b){
+              console.log(a)
+            }
+          })
+          let obj = this.companiesList.find(a=>a.companyId==b)
+          arr.push(obj)
+          })
+        this.addLoad = true
+        this.$axios.post(this.$api.companies.addPersonUser, {
+          company: arr,
+          person: this.multipleSelection
+        }, {
+          headers: {
+            'Content-Type': 'application/json'
+          }
+        }).then(res => {
+          if (res.code === 201) {
+            this.addLoad = false
+            return
+          }
+          this.$message.success('鎿嶄綔鎴愬姛')
+          this.refresh()
+          this.multipleSelection = []
+          this.$refs.personTable.clearSelection()
+          this.addthirdParty = false
+        }).catch(e => {
+          this.addthirdParty = false
+          this.addLoad = false
+        })
+      },
+      searchPerson(){
+        let arr = JSON.parse(JSON.stringify(this.personListCopy))
+        this.personList = arr.filter(a=>{
+          if(a.employeeID.includes(this.userSearch2)||a.name.includes(this.userSearch2)){
+            return true
+          }
+        })
+      }
+    }
+  }
 </script>

--
Gitblit v1.9.3