小程序打卡数据

This commit is contained in:
lSun 2024-12-04 16:15:25 +08:00
parent 8bc007d51f
commit adcdd1d5ad
3 changed files with 192 additions and 5 deletions

View File

@ -46,6 +46,15 @@ export function resetPwd(data) {
}) })
} }
// 授予更新人脸权
export function updateIsFace(data) {
return request({
url: '/system/user/updateIsFace',
method: 'post',
data: data
})
}
// 用户密码修改 // 用户密码修改
export function updateUserPwd(data) { export function updateUserPwd(data) {
return request({ return request({
@ -97,3 +106,12 @@ export function getPersonSelect(query) {
params: query params: query
}) })
} }
// 审核
export function checkPersonAssignment(data) {
return request({
url: '/system/user/checkPersonAssignment',
method: 'post',
data: data
})
}

View File

@ -483,7 +483,7 @@ export default {
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset();
const Id = row.uuId; const Id = row.uuid;
getEvection(Id).then(response => { getEvection(Id).then(response => {
this.form = response.data; this.form = response.data;
let num = []; let num = [];
@ -573,7 +573,7 @@ export default {
}, },
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
const Ids = row.uuId; const Ids = row.uuid;
this.$modal.confirm('是否确认删除该申请?').then(function () { this.$modal.confirm('是否确认删除该申请?').then(function () {
return delEvection(Ids); return delEvection(Ids);
}).then(() => { }).then(() => {

View File

@ -47,7 +47,15 @@
<el-table-column label="人员角色" align="center" prop="roleName" :show-overflow-tooltip="true" /> <el-table-column label="人员角色" align="center" prop="roleName" :show-overflow-tooltip="true" />
<el-table-column label="身份证号" align="center" prop="idNumber" :show-overflow-tooltip="true" /> <el-table-column label="身份证号" align="center" prop="idNumber" :show-overflow-tooltip="true" />
<el-table-column label="手机号(登录名称)" align="center" prop="phone" :show-overflow-tooltip="true" /> <el-table-column label="手机号(登录名称)" align="center" prop="phone" :show-overflow-tooltip="true" />
<el-table-column label="操作" align="center" width="300"> <el-table-column label="人脸识别照片" align="center">
<template slot-scope="scope">
<span v-if="scope.row.isCheck == '0'">{{ '待审核' }}</span>
<el-button type="text" style="color: #70B603" v-else-if="scope.row.isCheck == '1'" @click="handleView(scope.row)">{{ '已采集/通过' }}</el-button>
<el-button type="text" style="color: #70B603" v-else-if="scope.row.isCheck == '2'" @click="handleView(scope.row)">{{ '已采集/不通过' }}</el-button>
<span v-else style="color: red">{{'未采集'}}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="430">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
size="mini" size="mini"
@ -69,6 +77,23 @@
v-hasPermi="['system:user:pwd']" v-hasPermi="['system:user:pwd']"
@click="handleResetPwd(scope.row)" @click="handleResetPwd(scope.row)"
>重置密码</el-button> >重置密码</el-button>
<el-button
size="mini"
type="warning"
v-if="scope.row.isFace ==0 "
v-hasPermi="['system:user:isFace']"
@click="handleResetIsFace(scope.row)"
>人脸权限录入权限</el-button>
<el-button
size="mini"
type="warning"
v-if="scope.row.isCheck ==0 "
v-hasPermi="['system:user:examine']"
@click="handleExamine(scope.row)"
>审核</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -176,12 +201,61 @@
</div> </div>
</el-dialog> </el-dialog>
<!-- 审核人脸照片 -->
<el-dialog :title="title" :visible.sync="opens" width="500px" append-to-body>
<el-form ref="forms" :model="form" :rules="rulesExamine" label-width="100px">
<el-form-item label="人脸照片:" prop="newFaceImageBase64">
<el-image v-if="form.newFace" :src="form.newFace" fit="contain" style="width:100px;height:100px;"></el-image>
<span v-else>无图片</span>
</el-form-item>
<el-form-item label="审核意见:" prop="examineOpinion">
<el-input type="textarea" v-model="form.examineOpinion" maxlength="100" ></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="handleAgree"> </el-button>
<el-button type="danger" @click="handleReject"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- 查看人脸照片 -->
<el-dialog :title="title" :visible.sync="openView" width="500px" append-to-body>
<el-form ref="formView" :model="form" label-width="100px">
<el-form-item label="" prop="newFaceImageBase64">
<el-image v-if="form.newFace" :src="form.newFace" fit="contain" style="width:100px;height:100px;"></el-image>
<span v-else>无图片</span>
</el-form-item>
<el-form-item label="采集时间:" prop="collectionTime">
{{form.collectionTime}}
<!-- <el-input type="in" v-model="form.collectionTime" maxlength="100" ></el-input>-->
<!-- <el-input v-model="form.collectionTime" maxlength="50" :disabled="true"/>-->
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { listUser, getUserById, delUser, addUser, updateUser, getSelectRole, exportUser,resetPwd,userTempFile } from "@/api/system/userInfo"; import {
listUser,
getUserById,
delUser,
addUser,
updateUser,
getSelectRole,
exportUser,
resetPwd,
userTempFile,
updateIsFace, checkPersonAssignment
} from "@/api/system/userInfo";
import { listDept } from "@/api/system/dept"; import { listDept } from "@/api/system/dept";
import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
import Treeselect from "@riophae/vue-treeselect"; import Treeselect from "@riophae/vue-treeselect";
@ -212,6 +286,8 @@
title: "", title: "",
// //
open: false, open: false,
opens: false,
openView: false,
deptOptions:[], deptOptions:[],
// //
queryParams: { queryParams: {
@ -258,6 +334,11 @@
} }
], ],
}, },
rulesExamine:{
examineOpinion: [
{required: true, message: "审核意见不能为空", trigger: "blur"}
],
},
// //
upload: { upload: {
// //
@ -316,6 +397,8 @@
// //
cancel() { cancel() {
this.open = false; this.open = false;
this.opens = false;
this.openView = false;
this.isEditing = false; this.isEditing = false;
this.reset(); this.reset();
}, },
@ -335,6 +418,19 @@
}; };
this.resetForm("form"); this.resetForm("form");
}, },
//
resets() {
this.form = {
};
this.resetForm("forms");
},
resetView() {
this.form = {
};
this.resetForm("formView");
},
/** 搜索按钮操作 */ /** 搜索按钮操作 */
handleQuery() { handleQuery() {
this.queryParams.pageNum = 1; this.queryParams.pageNum = 1;
@ -427,6 +523,22 @@
this.$modal.msgSuccess("重置成功"); this.$modal.msgSuccess("重置成功");
}).catch(() => {}); }).catch(() => {});
}, },
handleResetIsFace(row) {
let param={
userId:row.userId,
isFace:'1'
}
this.$modal.confirm('是否授予更新人脸权限?').then(function() {
return updateIsFace(param);
}).then(() => {
this.getList();
this.$modal.msgSuccess("更新成功");
}).catch(() => {});
},
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
exportUser(this.queryParams).then(res => { exportUser(this.queryParams).then(res => {
@ -457,7 +569,64 @@
// //
submitFileForm() { submitFileForm() {
this.$refs.upload.submit(); this.$refs.upload.submit();
} },
async handleExamine(row){
this.resets();
let param={
userId:row.userId
}
await getUserById(param).then(response => {
this.form = response.data[0];
this.opens = true;
this.title = "审核";
})
},
/**
* 审核同意
*/
handleAgree(){
this.form.isCheck = "1";
this.submitForms();
},
/**
* 审核驳回
*/
handleReject(){
this.form.isCheck = "2";
this.submitForms();
},
/** 提交按钮 */
submitForms: function() {
this.$refs["forms"].validate(valid => {
if (valid) {
checkPersonAssignment(this.form).then(response => {
if(this.form.reviewerStatus=="1"){
this.$modal.msgSuccess("审核成功");
}else if(this.form.reviewerStatus=="2"){
this.$modal.msgSuccess("驳回成功");
}
this.opens = false;
this.getList();
});
}
});
},
async handleView(row){
this.resetView();
let param={
userId:row.userId
}
await getUserById(param).then(response => {
this.form = response.data[0];
this.openView = true;
this.title = "查看";
})
},
} }
}; };
</script> </script>