| | |
| | | <el-option label="拉黑/冻结" value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="" prop="hkStatus"> |
| | | <el-select v-model="searchForm.hkStatus" @keypress.enter.native="search" placeholder="海康同步状态"> |
| | | <el-option label="待同步" value="0"></el-option> |
| | | <el-option label="同步成功" value="1"></el-option> |
| | | <el-option label="同步失败" value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">搜索</el-button> |
| | | <el-button @click="reset">重置</el-button> |
| | |
| | | <template v-slot:menu> |
| | | <div style="width: 100%; height: 50px; background: rgba(242, 242, 242, 1); line-height: 50px; text-align: center; font-size: 14px;">企业组织架构</div> |
| | | <div style="width: 100%; height: calc(100vh - 170px); overflow-y: scroll;"> |
| | | <Tree :list="companyTree" :defaultProps="{name: 'name', status: 'status', children: 'childList', id: 'erpId'}" @callback="callback" /> |
| | | <Tree :list="companyTree" :defaultProps="{name: 'name', status: 'fsStatus', children: 'childList', id: 'id'}" @callback="callback" /> |
| | | </div> |
| | | </template> |
| | | <!-- 表格和分页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:member:delete']"> |
| | | <li><el-button type="primary">门禁授权</el-button></li> |
| | | <li><el-button type="primary" v-permissions="['business:member:sync']" @click="synchronous()">同步</el-button></li> |
| | | <ul class="toolbar" v-permissions="['business:member:delete','business:member:sync']"> |
| | | <!-- <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> |
| | | </ul> |
| | | <el-table |
| | |
| | | <el-table-column prop="phone" 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> |
| | | <span v-if="row.sex === 2">女</span> |
| | | <span v-if="row.sex == 1">男</span> |
| | | <span v-if="row.sex == 2">女</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="companyName" label="所属部门" min-width="100px"></el-table-column> |
| | | <el-table-column prop="status" label="状态" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.status === 0">正常</span> |
| | | <span v-if="row.status === 1">禁用</span> |
| | | <span v-if="row.status === 2">拉黑/冻结</span> |
| | | <span v-if="row.status == 0" style="color: green">正常</span> |
| | | <span v-if="row.status == 1" style="color: red">禁用</span> |
| | | <span v-if="row.status == 2" style="color: red">拉黑/冻结</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="code" label="工号" min-width="100px"></el-table-column> |
| | | <el-table-column label="可拜访" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.canVisit === '0'">否</span> |
| | | <span v-if="row.canVisit === '1'">是</span> |
| | | <span v-if="row.canVisit != 1">否</span> |
| | | <span v-if="row.canVisit == 1">是</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="海康同步状态" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.hkStatus == 0" style="color: #435EBE">待同步</span> |
| | | <span v-if="row.hkStatus == 1" style="color: green">同步成功</span> |
| | | <span v-if="row.hkStatus == 2" style="color: red">同步失败</span> |
| | | <span v-if="row.hkStatus == 3" style="color: red">不符合下发条件</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="门禁角色" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | |
| | | <el-table-column fixed="right" label="人脸信息" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <el-image |
| | | style="width: 100px; height: 100px" |
| | | v-if="row.faceImg" |
| | | style="width: 60px; height: 60px" |
| | | :src="row.faceImg" |
| | | :preview-src-list="[row.faceImg]"> |
| | | </el-image> |
| | |
| | | </el-table-column> |
| | | <el-table-column fixed="right" label="卡片信息" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <el-image |
| | | style="width: 100px; height: 100px" |
| | | :src="row.faceImg" |
| | | :preview-src-list="[row.faceImg]"> |
| | | </el-image> |
| | | <el-button @click="$refs.cardOpeningRecord.open('开卡记录', row.id)" type="text">{{row.memberCardCount || '0'}}</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column--> |
| | | <!-- v-if="containPermissions(['business:member:update', 'business:member:delete'])"--> |
| | | <!-- label="操作"--> |
| | | <!-- min-width="120"--> |
| | | <!-- fixed="right"--> |
| | | <!-- >--> |
| | | <!-- <template slot-scope="{row}">--> |
| | | <!-- <el-button type="text" @click="$refs.operaMemberWindow.open('编辑人员信息表', row)" icon="el-icon-edit" v-permissions="['business:member:update']">编辑</el-button>--> |
| | | <!-- <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:member:delete']">删除</el-button>--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:member:update', 'business:member:delete','business:empower:create'])" |
| | | label="操作" |
| | | min-width="120" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="empower(row.id)" v-permissions="['business:empower:create']">重新授权</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | <!-- 查看人员开卡记录 --> |
| | | <cardOpeningRecord ref="cardOpeningRecord" @success="handlePageChange" /> |
| | | </template> |
| | | </TableLayout1> |
| | | </template> |
| | |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout1 from '@/layouts/TableLayout1' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import cardOpeningRecord from '@/components/business/cardOpeningRecord' |
| | | import Tree from '@/components/common/Tree' |
| | | import { fetchList} from '@/api/business/company' |
| | | import {memberSync} from "@/api/business/member"; |
| | | import { fetchList } from '@/api/business/company' |
| | | import { memberSync, roleAuth } from '@/api/business/member' |
| | | export default { |
| | | name: 'internalMember', |
| | | extends: BaseTable, |
| | | components: { TableLayout1, Pagination, Tree }, |
| | | components: { TableLayout1, Pagination, Tree, cardOpeningRecord }, |
| | | data () { |
| | | return { |
| | | TreeList: [], |
| | |
| | | searchForm: { |
| | | name: '', |
| | | status: '', |
| | | hkStatus: '', |
| | | canVisit: '', |
| | | keyword: '', |
| | | type: 2, |
| | |
| | | companyId: '', |
| | | hasFace: '' |
| | | }, |
| | | loading:false, |
| | | companyTree: [] |
| | | } |
| | | }, |
| | |
| | | this.getfindCompanyTreePage() |
| | | }, |
| | | methods: { |
| | | empower(id) { |
| | | var that = this |
| | | this.$confirm('确定重新授权吗?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | roleAuth(id) |
| | | .then(res => { |
| | | that.search() |
| | | }) |
| | | }).catch(() => { |
| | | |
| | | }); |
| | | }, |
| | | // 获取组织树 |
| | | getfindCompanyTreePage () { |
| | | fetchList(1) |
| | | .then(res => { |
| | | this.companyTree = res |
| | | // this.searchForm.erpOrgId = res[0].erpId |
| | | this.search() |
| | | if (res && res.length > 0) { |
| | | res[0].fsStatus = 1 |
| | | this.companyTree = res |
| | | // this.searchForm.erpOrgId = res[0].erpId |
| | | this.search() |
| | | } |
| | | }) |
| | | }, |
| | | // 同步信息 |
| | | async synchronous () { |
| | | const message = await memberSync({}) |
| | | this.$message.success(message) |
| | | this.search() |
| | | } , |
| | | this.$dialog.actionConfirm('该操作降触发全员信息更新和重新下发!请谨慎操作', '您确认全量同步内部人员信息吗?') |
| | | .then(() => { |
| | | this.loading = true |
| | | memberSync({}) |
| | | .then(res => { |
| | | this.$tip.apiSuccess(res || '同步成功') |
| | | this.search() |
| | | }) |
| | | .catch(e => { |
| | | this.$tip.apiFailed(e) |
| | | }) |
| | | .finally(() => { |
| | | this.loading = false |
| | | }) |
| | | }) |
| | | .catch(() => {}) |
| | | }, |
| | | callback (row) { |
| | | console.log(row) |
| | | this.searchForm.erpOrgId = row.erpId |
| | | this.searchForm.companyId = row.id |
| | | this.search() |