|
@@ -61,6 +61,10 @@
|
|
|
<el-button type="warning" plain icon="Download" @click="handleExport"
|
|
|
v-hasPermi="['system:user:export']">导出</el-button>
|
|
|
</el-col>
|
|
|
+ <el-col :span="1.5">
|
|
|
+ <el-button type="success" plain icon="Grid" @click="handleFace"
|
|
|
+ v-hasPermi="['system:user:face']">人脸导入</el-button>
|
|
|
+ </el-col>
|
|
|
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"
|
|
|
:columns="columns"></right-toolbar>
|
|
|
</el-row>
|
|
@@ -74,6 +78,11 @@
|
|
|
v-if="columns[2].visible" :show-overflow-tooltip="true" />
|
|
|
<el-table-column label="部门" align="center" key="deptName" prop="dept.deptName"
|
|
|
v-if="columns[3].visible" :show-overflow-tooltip="true" />
|
|
|
+ <el-table-column label="人脸登录" align="center" prop="createTime" v-if="columns[6].visible">
|
|
|
+ <template #default="scope">
|
|
|
+ <span>{{ scope.row.expand.faceEnable }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber"
|
|
|
v-if="columns[4].visible" width="120" >
|
|
|
<template #default="scope">
|
|
@@ -228,6 +237,26 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-dialog>
|
|
|
+ <!-- 人脸导入对话框 -->
|
|
|
+ <el-dialog :title="face.title" v-model="face.open" width="400px" append-to-body>
|
|
|
+ <el-upload ref="faceRef" multiple accept=".bmp, .gif, .jpg, .jpeg, .png" :headers="face.headers"
|
|
|
+ :action="face.url" :disabled="face.isUploading"
|
|
|
+ :on-progress="handleFaceProgress" :on-success="handleFaceSuccess" :auto-upload="false" drag>
|
|
|
+ <el-icon class="el-icon--upload"><upload-filled /></el-icon>
|
|
|
+ <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
|
|
|
+ <template #tip>
|
|
|
+ <div class="el-upload__tip text-center">
|
|
|
+ <span>仅允许导入以“user-用户编号”命名的图片文件。</span>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-upload>
|
|
|
+ <template #footer>
|
|
|
+ <div class="dialog-footer">
|
|
|
+ <el-button type="primary" @click="submitFaceForm">确 定</el-button>
|
|
|
+ <el-button @click="face.open = false">取 消</el-button>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-dialog>
|
|
|
|
|
|
<!-- 修改用户登录限制对话框 -->
|
|
|
<el-dialog :title="login.title" v-model="login.open" width="500px" append-to-body>
|
|
@@ -312,6 +341,24 @@
|
|
|
// 上传的地址
|
|
|
url: import.meta.env.VITE_APP_BASE_API + "/system/user/importData"
|
|
|
});
|
|
|
+
|
|
|
+ /*** 用户导入参数 */
|
|
|
+ const face = reactive({
|
|
|
+ // 是否显示弹出层(用户导入)
|
|
|
+ open: false,
|
|
|
+ // 弹出层标题(用户导入)
|
|
|
+ title: "",
|
|
|
+ // 是否禁用上传
|
|
|
+ isUploading: false,
|
|
|
+ // 是否更新已经存在的用户数据
|
|
|
+ updateSupport: 0,
|
|
|
+ // 设置上传的请求头部
|
|
|
+ headers: {
|
|
|
+ Authorization: "Bearer " + getToken()
|
|
|
+ },
|
|
|
+ // 上传的地址
|
|
|
+ url: import.meta.env.VITE_APP_BASE_API + "/system/user/importFace"
|
|
|
+ });
|
|
|
/*** 用户导入参数 */
|
|
|
const login = reactive({
|
|
|
// 是否显示弹出层(用户导入)
|
|
@@ -546,6 +593,11 @@
|
|
|
upload.title = "用户导入";
|
|
|
upload.open = true;
|
|
|
};
|
|
|
+ /** 导入按钮操作 */
|
|
|
+ function handleFace() {
|
|
|
+ face.title = "人脸导入";
|
|
|
+ face.open = true;
|
|
|
+ };
|
|
|
/** 下载模板操作 */
|
|
|
function importTemplate() {
|
|
|
proxy.download("system/user/importTemplate", {}, `user_template_${new Date().getTime()}.xlsx`);
|
|
@@ -569,6 +621,26 @@
|
|
|
function submitFileForm() {
|
|
|
proxy.$refs["uploadRef"].submit();
|
|
|
};
|
|
|
+
|
|
|
+ /**文件上传中处理 */
|
|
|
+ const handleFaceProgress = (event, file, fileList) => {
|
|
|
+ face.isUploading = true;
|
|
|
+ };
|
|
|
+ /** 文件上传成功处理 */
|
|
|
+ const handleFaceSuccess = (response, file, fileList) => {
|
|
|
+ face.open = false;
|
|
|
+ face.isUploading = false;
|
|
|
+ proxy.$refs["faceRef"].handleRemove(file);
|
|
|
+ proxy.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
|
|
|
+ response.msg + "</div>", "导入结果", {
|
|
|
+ dangerouslyUseHTMLString: true
|
|
|
+ });
|
|
|
+ getList();
|
|
|
+ };
|
|
|
+ /** 提交上传文件 */
|
|
|
+ function submitFaceForm() {
|
|
|
+ proxy.$refs["faceRef"].submit();
|
|
|
+ };
|
|
|
/** 解密手机号码 */
|
|
|
const smPhone = (num)=>{
|
|
|
// console.log('num',num);
|