jiangping
2024-05-11 415bf078cb4f9615e9090663b7880e35817fd036
admin/src/views/business/internalMember.vue
@@ -44,10 +44,13 @@
        </template>
        <!-- 表格和分页 -->
        <template v-slot:table-wrap>
            <ul class="toolbar" v-permissions="['business:member:delete','business:member:sync']">
            <ul class="toolbar" v-permissions="['business:member:delete','business:member:create']">
<!--                <li><el-button type="primary">门禁授权</el-button></li>-->
<!--
                <li><el-button type="primary" v-permissions="['business:member:sync']" :loading="loading" @click="synchronous()">同步</el-button></li>
                <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:member:delete']">删除</el-button></li>
-->
                <li><el-button type="primary" @click="$refs.OperaMemberWindow.open('新建员工',null,department)"  icon="el-icon-plus" v-permissions="['business:member:create']">新建员工</el-button></li>
                <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:member:delete']">批量删除</el-button></li>
            </ul>
            <el-table
                v-loading="isWorking.search"
@@ -58,6 +61,7 @@
                <el-table-column type="selection" width="55"></el-table-column>
                <el-table-column prop="name" label="姓名" min-width="100px"></el-table-column>
                <el-table-column prop="phone" label="手机号" min-width="100px"></el-table-column>
                <el-table-column prop="idcardDecode" label="身份证号" min-width="100px"></el-table-column>
                <el-table-column label="性别" min-width="100px">
                    <template slot-scope="{row}">
                        <span v-if="row.sex == 1">男</span>
@@ -95,10 +99,10 @@
                <el-table-column fixed="right" label="人脸信息" min-width="100px">
                    <template slot-scope="{row}">
                        <el-image
                            v-if="row.faceImg"
                            v-if="row.faceImgFull"
                            style="width: 60px; height: 60px"
                            :src="row.faceImg"
                            :preview-src-list="[row.faceImg]">
                            :src="row.faceImgFull"
                            :preview-src-list="[row.faceImgFull]">
                        </el-image>
                    </template>
                </el-table-column>
@@ -114,7 +118,9 @@
                    fixed="right"
                >
                    <template slot-scope="{row}">
                        <el-button type="text" @click="empower(row.id)" v-permissions="['business:empower:create']">重新授权</el-button>
                        <el-button type="text" icon="el-icon-edit" @click="$refs.OperaMemberWindow.open('编辑员工信息',row,department)" v-permissions="['business:empower:update']">编辑</el-button>
                        <el-button type="text" icon="el-icon-delete" @click="empower(row.id)" v-permissions="['business:empower:delete']">删除</el-button>
                        <el-button type="text"  icon="el-icon-plus" @click="empower(row.id)" v-permissions="['business:empower:create']">重新授权</el-button>
                    </template>
                </el-table-column>
            </el-table>
@@ -126,6 +132,7 @@
            </pagination>
            <!--    查看人员开卡记录    -->
            <cardOpeningRecord ref="cardOpeningRecord" @success="handlePageChange" />
            <OperaMemberWindow ref="OperaMemberWindow" @success="handlePageChange" />
        </template>
    </TableLayout1>
</template>
@@ -136,12 +143,13 @@
import Pagination from '@/components/common/Pagination'
import cardOpeningRecord from '@/components/business/cardOpeningRecord'
import Tree from '@/components/common/Tree'
import OperaMemberWindow from '@/components/business/OperaMemberWindow'
import { fetchList } from '@/api/business/company'
import { memberSync, roleAuth } from '@/api/business/member'
export default {
  name: 'internalMember',
  extends: BaseTable,
  components: { TableLayout1, Pagination, Tree, cardOpeningRecord },
  components: { TableLayout1, Pagination, Tree, cardOpeningRecord,OperaMemberWindow },
  data () {
    return {
      TreeList: [],
@@ -158,7 +166,8 @@
        hasFace: ''
      },
      loading:false,
      companyTree: []
      companyTree: [],
      department:[]
    }
  },
  created () {
@@ -196,9 +205,27 @@
            this.companyTree = res
            // this.searchForm.erpOrgId = res[0].erpId
            this.search()
            this.department = this.getDepartmentTree(res)
          }
        })
    },
    getDepartmentTree(tree) {
      if(tree ==null){
        return []
      }
      return tree.map(item => {
        let newItem = {...item}
        if(newItem){
          newItem.children=newItem.childList
        }
        if (item.children && item.children.length == 0) {
          this.$delete( newItem, 'children' )
        } else {
          newItem.children = this.getDepartmentTree(newItem.children)
        }
        return newItem
      });
    },
    // 同步信息
    async synchronous () {
      this.$dialog.actionConfirm('该操作降触发全员信息更新和重新下发!请谨慎操作', '您确认全量同步内部人员信息吗?')