|
@@ -66,7 +66,20 @@
|
|
|
:disabled="multipleSelection.length==0"
|
|
|
@click="handleBatchDelete"
|
|
|
>删除选中项</el-button>
|
|
|
- <el-button type="primary" size="small" plain icon="el-icon-circle-plus">导入</el-button>
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ size="small"
|
|
|
+ plain
|
|
|
+ icon="el-icon-circle-plus"
|
|
|
+ @click="batchImportVisible = true"
|
|
|
+ >导入</el-button>
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ size="small"
|
|
|
+ plain
|
|
|
+ icon="el-icon-circle-plus"
|
|
|
+ @click="downloadAll"
|
|
|
+ >导出全部数据</el-button>
|
|
|
</el-row>
|
|
|
<el-table
|
|
|
:data="tableData"
|
|
@@ -77,41 +90,65 @@
|
|
|
@selection-change="handleSelectionChange"
|
|
|
>
|
|
|
<el-table-column type="selection" width="55"></el-table-column>
|
|
|
- <el-table-column prop="companyId" label="企业编号" width="180"></el-table-column>
|
|
|
+ <el-table-column prop="companyName" label="企业" width="180"></el-table-column>
|
|
|
<el-table-column prop="name" label="姓名" width="150"></el-table-column>
|
|
|
<el-table-column prop="idCard" label="身份证" width="200"></el-table-column>
|
|
|
<el-table-column prop="phone" label="手机号" width="180"></el-table-column>
|
|
|
<el-table-column prop="openId" label="是否绑定公众号" width="180"></el-table-column>
|
|
|
<el-table-column label="人脸授权">
|
|
|
<template slot-scope="{row}">
|
|
|
- <el-switch v-model="row.faceEnabled" active-color="#13ce66" inactive-color="#ff4949"></el-switch>
|
|
|
+ <el-switch
|
|
|
+ v-model="row.faceEnabled"
|
|
|
+ @change="enabledTo(row.id,'face',row.faceEnabled)"
|
|
|
+ active-color="#13ce66"
|
|
|
+ inactive-color="#ff4949"
|
|
|
+ :disabled="disabled"
|
|
|
+ ></el-switch>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="刷卡授权">
|
|
|
<template slot-scope="{row}">
|
|
|
- <el-switch v-model="row.cardEnabled" active-color="#13ce66" inactive-color="#ff4949"></el-switch>
|
|
|
+ <el-switch
|
|
|
+ v-model="row.cardEnabled"
|
|
|
+ @change="enabledTo(row.id,'card')"
|
|
|
+ active-color="#13ce66"
|
|
|
+ inactive-color="#ff4949"
|
|
|
+ :disabled="disabled"
|
|
|
+ ></el-switch>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="手机授权">
|
|
|
<template slot-scope="{row}">
|
|
|
- <el-switch v-model="row.appEnabled" active-color="#13ce66" inactive-color="#ff4949"></el-switch>
|
|
|
+ <el-switch
|
|
|
+ v-model="row.appEnabled"
|
|
|
+ @change="enabledTo(row.id,'app')"
|
|
|
+ active-color="#13ce66"
|
|
|
+ inactive-color="#ff4949"
|
|
|
+ :disabled="disabled"
|
|
|
+ ></el-switch>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<!-- <el-table-column label="密码">
|
|
|
<template slot-scope="{row}">
|
|
|
- <el-switch v-model="row.passwordEnabled" active-color="#13ce66" inactive-color="#ff4949"></el-switch>
|
|
|
+ <el-switch v-model="row.passwordEnabled" @change="enabledTo(row.id,'face')" active-color="#13ce66" inactive-color="#ff4949"></el-switch>
|
|
|
</template>
|
|
|
- </el-table-column> -->
|
|
|
+ </el-table-column>-->
|
|
|
<el-table-column label="访客授权">
|
|
|
<template slot-scope="{row}">
|
|
|
- <el-switch v-model="row.guestEnabled" active-color="#13ce66" inactive-color="#ff4949"></el-switch>
|
|
|
+ <el-switch
|
|
|
+ v-model="row.guestEnabled"
|
|
|
+ @change="enabledTo(row.id,'guest')"
|
|
|
+ active-color="#13ce66"
|
|
|
+ inactive-color="#ff4949"
|
|
|
+ :disabled="disabled"
|
|
|
+ ></el-switch>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="position1" label="位置1" width="180"></el-table-column>
|
|
|
- <el-table-column prop="position2" label="位置2" width="180"></el-table-column>
|
|
|
- <el-table-column prop="position3" label="位置3" width="180"></el-table-column>
|
|
|
- <el-table-column prop="position4" label="位置4" width="180"></el-table-column>
|
|
|
- <el-table-column prop="position5" label="位置5" width="180"></el-table-column>
|
|
|
+ <el-table-column prop="position1" :label="position1" width="180"></el-table-column>
|
|
|
+ <el-table-column prop="position2" :label="position2" width="180"></el-table-column>
|
|
|
+ <el-table-column prop="position3" :label="position3" width="180"></el-table-column>
|
|
|
+ <el-table-column prop="position4" :label="position4" width="180"></el-table-column>
|
|
|
+ <el-table-column prop="position5" :label="position5" width="180"></el-table-column>
|
|
|
<el-table-column label="操作" width="450" fixed="right">
|
|
|
<template slot-scope="{row}">
|
|
|
<el-button size="mini" type="warning" @click="handleEdit(row)">编辑</el-button>
|
|
@@ -137,6 +174,63 @@
|
|
|
:companyResult="companyResult"
|
|
|
@close="onDetailModalClose"
|
|
|
></personInfo-detail>
|
|
|
+ <!--批量导入S-->
|
|
|
+ <el-dialog
|
|
|
+ title="批量导入人员"
|
|
|
+ :visible.sync="batchImportVisible"
|
|
|
+ :modal-append-to-body="false"
|
|
|
+ style="text-align: left;"
|
|
|
+ >
|
|
|
+ <el-form label-width="150px">
|
|
|
+ <el-form-item label="模板下载">
|
|
|
+ <el-link
|
|
|
+ href="http://rccs.oss-cn-hangzhou.aliyuncs.com/picc/template/企业人员名单导入模板.xls"
|
|
|
+ type="primary"
|
|
|
+ target="_blank"
|
|
|
+ >点击下载模板</el-link>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="企业">
|
|
|
+ <el-select
|
|
|
+ v-model="uploadCompanyId"
|
|
|
+ filterable
|
|
|
+ placeholder="请选择"
|
|
|
+ @change="changeUploadCompayId"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="company in companyResult"
|
|
|
+ :key="company.id"
|
|
|
+ :label="company.name"
|
|
|
+ :value="company.id"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="上传文件">
|
|
|
+ <el-upload
|
|
|
+ class="upload-demo"
|
|
|
+ accept=".xls"
|
|
|
+ :action="uploadUrlXls"
|
|
|
+ :data="uploadXlsData"
|
|
|
+ :headers="headers"
|
|
|
+ :on-preview="handleBatchImportPreview"
|
|
|
+ name="uploadFile"
|
|
|
+ :multiple="true"
|
|
|
+ :limit="1"
|
|
|
+ :on-remove="handleBatchImportRemove"
|
|
|
+ :before-remove="beforeBatchImportRemove"
|
|
|
+ :on-exceed="handleBatchImportExceed"
|
|
|
+ :on-success="handleBatchImportSuccess"
|
|
|
+ :file-list="batchImportFileList"
|
|
|
+ >
|
|
|
+ <el-button size="small" type="primary">点击上传</el-button>
|
|
|
+ <div slot="tip" class="el-upload__tip">只能上传xls文件,且不超过500kb</div>
|
|
|
+ </el-upload>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="primary" @click="batchImportVisible = false">关 闭</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!--批量导入E-->
|
|
|
</div>
|
|
|
</template>
|
|
|
<script>
|
|
@@ -144,6 +238,9 @@ import Constant from "@/constant";
|
|
|
import PersonInfoDetail from "./personInfo-detail";
|
|
|
import personInfoApi from "@/api/base/personInfo";
|
|
|
import companyInfoApi from "@/api/base/companyInfo";
|
|
|
+import companyPositionApi from "@/api/base/companyPosition";
|
|
|
+
|
|
|
+import { getToken } from "@/utils/auth"; // get token from cookie
|
|
|
import NProgress from "nprogress"; // progress bar
|
|
|
import "nprogress/nprogress.css"; // progress bar style
|
|
|
|
|
@@ -171,9 +268,38 @@ export default {
|
|
|
showModal: false,
|
|
|
modalTitle: "",
|
|
|
businessKey: "",
|
|
|
- companyResult: ""
|
|
|
+ companyResult: "",
|
|
|
+ uploadCompanyId: "",
|
|
|
+ batchImportVisible: false,
|
|
|
+ batchImportFileList: [],
|
|
|
+ uploadUrlXls: Constant.serverUrl + "/base/personInfo/importXls",
|
|
|
+ uploadXlsData: {
|
|
|
+ subFolder: "company",
|
|
|
+ companyId: ""
|
|
|
+ },
|
|
|
+ headers: {
|
|
|
+ Authorization: getToken()
|
|
|
+ },
|
|
|
+ disabled: false,
|
|
|
+ position1: "",
|
|
|
+ position2: "",
|
|
|
+ position3: "",
|
|
|
+ position4: "",
|
|
|
+ position5: ""
|
|
|
};
|
|
|
},
|
|
|
+ created() {
|
|
|
+ var self = this;
|
|
|
+
|
|
|
+ companyPositionApi.detailForCompany().then(function(response) {
|
|
|
+ var jsonData = response.data.data;
|
|
|
+ self.position1 = jsonData.position1Name;
|
|
|
+ self.position2 = jsonData.position2Name;
|
|
|
+ self.position3 = jsonData.position3Name;
|
|
|
+ self.position4 = jsonData.position4Name;
|
|
|
+ self.position5 = jsonData.position5Name;
|
|
|
+ });
|
|
|
+ },
|
|
|
methods: {
|
|
|
changePage(pageIndex) {
|
|
|
var self = this;
|
|
@@ -300,19 +426,99 @@ export default {
|
|
|
this.changePage(this.pageIndex);
|
|
|
}
|
|
|
},
|
|
|
- bindDevice(record){
|
|
|
+ changeUploadCompayId(value) {
|
|
|
+ var self = this;
|
|
|
+ self.uploadXlsData.companyId = value;
|
|
|
+ },
|
|
|
+ bindDevice(record) {
|
|
|
//绑定设备
|
|
|
-
|
|
|
},
|
|
|
- uploadData(record){
|
|
|
+ uploadData(record) {
|
|
|
//上传数据
|
|
|
-
|
|
|
},
|
|
|
- showBind(record){
|
|
|
+ showBind(record) {
|
|
|
//展示绑定设备
|
|
|
+ },
|
|
|
+ //批量导入-上传成功
|
|
|
+ handleBatchImportSuccess(response, file, fileList) {
|
|
|
+ console.log(response);
|
|
|
+ if (response.result) {
|
|
|
+ this.$message.success(response.message);
|
|
|
+ this.batchImportFileList = [];
|
|
|
+ this.changePage(1);
|
|
|
+ this.uploadCompanyId = "";
|
|
|
+ this.uploadXlsData.companyId = "";
|
|
|
+ this.batchImportVisible = false;
|
|
|
+ } else {
|
|
|
+ //this.$message.error(response.message);
|
|
|
+ this.batchImportFileList = [];
|
|
|
+ this.changePage(1);
|
|
|
+ this.uploadCompanyId = "";
|
|
|
+ this.uploadXlsData.companyId = "";
|
|
|
|
|
|
- }
|
|
|
+ if (response.data != null) {
|
|
|
+ //下载有错误信息提示的报表
|
|
|
+ //window.open(response.data);
|
|
|
+ this.$message({
|
|
|
+ showClose: true,
|
|
|
+ dangerouslyUseHTMLString: true,
|
|
|
+ message:
|
|
|
+ response.message +
|
|
|
+ `,<a href="${response.data}" target="_blank">点击下载未导入的数据报表</a> `,
|
|
|
+ duration: 30000
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //批量导入-预览
|
|
|
+ handleBatchImportPreview(file) {
|
|
|
+ console.log(file.url);
|
|
|
+ },
|
|
|
+ //批量导入-移除
|
|
|
+ handleBatchImportRemove(file, fileList) {
|
|
|
+ console.log(file, fileList);
|
|
|
+ },
|
|
|
+ //批量导入-移除前操作
|
|
|
+ beforeBatchImportRemove(file, fileList) {
|
|
|
+ console.log(file, fileList);
|
|
|
+ },
|
|
|
+ //批量导入-文件超出个数限制时的钩子
|
|
|
+ handleBatchImportExceed(files, fileList) {
|
|
|
+ this.$message.warning(
|
|
|
+ `当前限制选择 3 个文件,本次选择了 ${
|
|
|
+ files.length
|
|
|
+ } 个文件,共选择了 ${files.length + fileList.length} 个文件`
|
|
|
+ );
|
|
|
+ },
|
|
|
+ downloadAll() {
|
|
|
+ personInfoApi.exportXls();
|
|
|
+ },
|
|
|
+ enabledTo(id, type, value) {
|
|
|
+ var self = this;
|
|
|
+ if (!self.disabled) {
|
|
|
+ var formData = new FormData();
|
|
|
+ formData.append("id", id);
|
|
|
+ if ("face" == type) {
|
|
|
+ personInfoApi.enabledFace(formData);
|
|
|
+ } else if ("card" == type) {
|
|
|
+ personInfoApi.enabledCard(formData);
|
|
|
+ } else if ("app" == type) {
|
|
|
+ personInfoApi.enabledApp(formData);
|
|
|
+ } else if ("guest" == type) {
|
|
|
+ personInfoApi.enabledGuest(formData);
|
|
|
+ }
|
|
|
+ self.disabled = true;
|
|
|
|
|
|
+ setTimeout(function() {
|
|
|
+ self.disabled = false;
|
|
|
+ }, 1000); //一秒内不能重复点击
|
|
|
+ } else {
|
|
|
+ self.$message({
|
|
|
+ type: "success",
|
|
|
+ message: "操作过快!"
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
},
|
|
|
async mounted() {
|
|
|
var self = this;
|