licp
2024-05-16 0505a53397472ee799988db11f7e1daec82faedf
src/components/view/person-manage.vue
@@ -3,12 +3,14 @@
    padding: 20px 0;
      display: flex;
  }
  .left {
      width: 270px;
      height: calc(100% - 40px);
      background-color: white;
      padding: 15px;
   }
  .el-tree{
    height: calc(100% - 37px);
    overflow-y: auto;
@@ -39,6 +41,7 @@
      width: calc(100% - 305px);
      height: calc(100% - 40px);
   }
   .title {
      height: 60px;
      line-height: 60px;
@@ -112,17 +115,12 @@
</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="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"  @keyup.enter.native="searchFilter()"></el-input>
            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>
@@ -131,8 +129,7 @@
         <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]">
        :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}">
@@ -169,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;">
@@ -182,7 +180,8 @@
        </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">
@@ -201,26 +200,47 @@
            <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="addthirdParty" width="70%">
      <div class="body">
        <el-tree
          :data="datathirdParty"
          show-checkbox
          node-key="id"
          :default-expanded-keys="[2, 3]"
          :default-checked-keys="[5]"
          :props="defaultProps">
        <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);" :filter-node-method="filterNode2" ref="tree2" highlight-current>
        </el-tree>
        <span slot="footer" style="padding-left: 200px">
          </el-col>
          <el-col :span="15" style="height: 70vh;padding-left: 8px;">
            <el-table height="70vh" 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="" :loading="addLoad" size="mini">确 定</el-button>
         </span>
        <el-button type="primary" @click="addUser2" :loading="addLoad" size="mini">确 定</el-button>
      </div>
    </el-dialog>
   </div>
</template>
<script>
  import {
    compileToFunctions
  } from 'vue-template-compiler'
   import ValueTable from '../tool/value-table.vue'
   export default {
      components: {
@@ -228,41 +248,7 @@
      },
      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'
          }]
        }],
        datathirdParty: [],
        defaultProps: {
          children: 'children',
          label: 'label'
@@ -356,6 +342,11 @@
        treeLoad:false,
        expandedKeys: [],
        addLoad:false,
        personList: [],
        treeLoad: false,
        personLoad: false,
        search2: '',
        multipleSelection: []
         }
      },
      mounted() {
@@ -367,7 +358,40 @@
      methods: {
      openthirdParty(){
        this.addthirdParty=true;
        this.$axios.get(this.$api.companies.selectCompaniesList).then(res => {
          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)
            }
          }
        })
      },
      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()
@@ -376,9 +400,6 @@
            this.componentData.entity = this.HaveJson(this.entityCopy)
            // this.upIndex++
        this.refreshTable()
         },
         upUser(row){
            console.log(row);
         },
         selectRole(){
            this.$axios.get(this.$api.user.selectRoleList).then(res=>{
@@ -449,9 +470,17 @@
      searchFilter() {
            this.$refs.tree.filter(this.search)
         },
      searchFilter2() {
        this.$refs.tree2.filter(this.search2)
      },
      filterNode(value, data) {
        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 = ''
@@ -536,6 +565,24 @@
               this.addLoad = false
            })
         },
      nodeClick2(ob, node, el) {
        if (ob.id !== 'SC21') {
          this.personLoad = true
          this.$axios.post(this.$api.companies.selectSimpleList, {
            companyId: ob.id
          }).then(res => {
            this.personList = res.data
            this.personLoad = false
            this.$refs.personTable.doLayout()
          })
        }
      },
      handleSelectionChange(val) {
        this.multipleSelection = val;
        console.log(this.multipleSelection);
      },
      addUser2(){
      }
      }
   }
</script>