用户管理身份证信息增加

dev_xd
haha 2025-02-22 10:56:47 +08:00
parent c9fb9f9f56
commit 8ccb8fefd5
6 changed files with 123 additions and 29 deletions

View File

@ -81,6 +81,17 @@ public class SmzSspProblemmodifyController extends BaseController
return toAjax(smzSspProblemmodifyService.insertSmzSspProblemmodify(smzSspProblemmodify));
}
/**
*
*/
@RequiresPermissions("trouble:problemmodify:add")
@Log(title = "安全隐患整改", businessType = BusinessType.INSERT)
@PostMapping("/batchAdd")
public AjaxResult batchAdd(@RequestBody List<SmzSspProblemmodify> list)
{
return toAjax(smzSspProblemmodifyService.insertSmzSspProblemmodifies(list));
}
/**
*
*/

View File

@ -58,4 +58,6 @@ public interface ISmzSspProblemmodifyService
* @return
*/
public int deleteSmzSspProblemmodifyById(Long id);
public int insertSmzSspProblemmodifies(List<SmzSspProblemmodify> list);
}

View File

@ -246,7 +246,6 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
proProjectInfoSubdeptsUsers.setCreateTime(DateUtils.getNowDate());
proProjectInfoSubdeptsUsers.setSubStep(2L);
proProjectInfoSubdeptsUsers.setApproveStatus(ApproveStatus.passed.getCode());
proProjectInfoSubdeptsUsers.setUserPost(UserPostEnums.JSDWGL.getCode());
//查询管理班组
ProProjectInfoSubdeptsGroup query = new ProProjectInfoSubdeptsGroup();

View File

@ -2,6 +2,7 @@ package com.yanzhu.manage.service.impl;
import java.util.List;
import com.yanzhu.common.core.context.SecurityContextHolder;
import com.yanzhu.common.core.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -55,6 +56,7 @@ public class SmzSspProblemmodifyServiceImpl implements ISmzSspProblemmodifyServi
public int insertSmzSspProblemmodify(SmzSspProblemmodify smzSspProblemmodify)
{
smzSspProblemmodify.setCreateTime(DateUtils.getNowDate());
smzSspProblemmodify.setCreateBy(SecurityContextHolder.getUserName());
return smzSspProblemmodifyMapper.insertSmzSspProblemmodify(smzSspProblemmodify);
}
@ -68,6 +70,7 @@ public class SmzSspProblemmodifyServiceImpl implements ISmzSspProblemmodifyServi
public int updateSmzSspProblemmodify(SmzSspProblemmodify smzSspProblemmodify)
{
smzSspProblemmodify.setUpdateTime(DateUtils.getNowDate());
smzSspProblemmodify.setUpdateBy(SecurityContextHolder.getUserName());
return smzSspProblemmodifyMapper.updateSmzSspProblemmodify(smzSspProblemmodify);
}
@ -94,4 +97,13 @@ public class SmzSspProblemmodifyServiceImpl implements ISmzSspProblemmodifyServi
{
return smzSspProblemmodifyMapper.deleteSmzSspProblemmodifyById(id);
}
@Override
public int insertSmzSspProblemmodifies(List<SmzSspProblemmodify> list) {
list.stream().forEach(it->{
it.setCreateTime(DateUtils.getNowDate());
it.setCreateBy(SecurityContextHolder.getUserName());
});
return 0;
}
}

View File

@ -184,7 +184,7 @@
<el-form-item label="用户状态">
<el-radio-group v-model="form.status">
<el-radio v-for="dict in sys_normal_disable" :key="dict.value" :label="dict.value">{{ dict.label
}}</el-radio>
}}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
@ -222,19 +222,25 @@
</el-form-item>
</el-col>
<el-col :span="24" v-if="form.userType == '99'">
<el-form-item label="身份证信息" prop="cardImgPos">
<el-form-item label="身份证信息">
<el-col :span="8">
<div class="div-header">头像面</div>
<image-upload v-model="form.cardImgPos" :limit="1" class="identification-card-1"
@change="doImageUpload(1)" />
<el-form-item label="" prop="cardImgPos">
<image-upload v-model="form.cardImgPos" :limit="1" class="identification-card-1"
@change="doImageUpload(1)" />
</el-form-item>
</el-col>
<el-col :span="8">
<div class="div-header">国徽面</div>
<image-upload v-model="form.cardImgInv" :limit="1" class="identification-card-2" />
<el-form-item label="" prop="cardImgInv">
<image-upload v-model="form.cardImgInv" :limit="1" class="identification-card-2" />
</el-form-item>
</el-col>
<el-col :span="8">
<div class="div-header">人脸识别头像</div>
<image-upload v-model="form.avatar" :limit="1" class="face-image" />
<el-form-item label="" prop="avatar">
<image-upload v-model="form.avatar" :limit="1" class="face-image" />
</el-form-item>
</el-col>
</el-form-item>
<!--
@ -399,8 +405,8 @@ function doImageUpload(type) {
url = location.origin + url;
//url="http://62.234.3.186/statics/2025/01/19/4491f170cd1609142f9a6f097cbf681f_20250119000046A004.jpg"
proxy.$http.get(`/system/tools/id/front?url=${url}`).then(d => {
form.value.userName = d.data.name || form.value.userName || '';
form.value.certificateCode = d.data.cardId || form.value.certificateCode || '';
form.value.nickName = d.data.name || form.value.nickName || '';
form.value.cardCode = d.data.cardId || form.value.cardCode || '';
form.value.address = d.data.address || form.value.address || '';
form.value.nativePlace = d.data.native || form.value.native || '';
let nation = d.data.nation || "";
@ -483,6 +489,8 @@ function doRoleChange() {
password: [{ required: true, message: "用户密码不能为空", trigger: "blur" }, { min: 5, max: 20, message: "用户密码长度必须介于 5 和 20 之间", trigger: "blur" }],
phonenumber: [{ required: true, message: "手机号码不能为空", trigger: "blur" }, { pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }],
cardCode: [{ required: true, message: "证件号码不能为空", trigger: "blur" }],
cardImgPos: [{ required: true, message: "身份证正面不能为空", trigger: "change" }],
cardImgInv: [{ required: true, message: "身份证反面不能为空", trigger: "change" }],
avatar: [{ required: true, message: "入场近照不能为空", trigger: "change" }],
roleIds: [{ required: true, message: "用户角色不能为空", trigger: "change" }],
}
@ -509,6 +517,8 @@ function doRoleChange() {
workType: [{ required: true, message: "用户岗位不能为空", trigger: "change" }],
phonenumber: [{ required: true, message: "手机号码不能为空", trigger: "blur" }, { pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }],
cardCode: [{ required: true, message: "证件号码不能为空", trigger: "blur" }],
cardImgPos: [{ required: true, message: "身份证正面不能为空", trigger: "change" }],
cardImgInv: [{ required: true, message: "身份证反面不能为空", trigger: "change" }],
avatar: [{ required: true, message: "入场近照不能为空", trigger: "change" }],
roleIds: [{ required: true, message: "用户角色不能为空", trigger: "change" }],
}

View File

@ -67,63 +67,75 @@
<el-table-column align="center" width="180" class-name="td-proble-type" label="隐患类型">
<template #default="scope">
<div :class="scope.row.errProblemType?'is-err':''">
<el-select v-model="scope.row.problemType" placeholder="请选择检查类型" clearable>
<el-select v-model="scope.row.problemType" placeholder="请选择检查类型" clearable @change="scope.row.errProblemType=scope.row.problemType?false:true">
<el-option v-for="dict in ssp_proble_type" :key="dict.value" :label="dict.label" :value="dict.value">
</el-option>
</el-select>
</div>
<el-select v-model="scope.row.dangerType" placeholder="请选择隐患类型" clearable style="margin-top:80px;">
<div :class="scope.row.errDangerType?'is-err':''">
<el-select v-model="scope.row.dangerType" placeholder="请选择隐患类型" clearable style="margin-top:80px;" @change="scope.row.errDangerType=scope.row.dangerType?false:true">
<el-option v-for="dict in ssp_proble_sub_type" :key="dict.value" :label="dict.label" :value="dict.value">
</el-option>
</el-select>
</div>
</template>
</el-table-column>
<el-table-column label="施工部位" align="center" prop="workParts" min-width="240" class-name="td-textarea">
<template #default="scope">
<el-input v-model="scope.row.workParts" placeholder="请输入施工部位" type="textarea" :rows="3" />
<div :class="scope.row.errWorkParts?'is-err':''">
<el-input v-model="scope.row.workParts" placeholder="请输入施工部位" type="textarea" :rows="3" @change="scope.row.errWorkParts=scope.row.workParts?false:true" />
</div>
</template>
</el-table-column>
<el-table-column label="整改要求" align="center" prop="changeInfo" min-width="240" class-name="td-textarea">
<template #default="scope">
<el-input v-model="scope.row.changeInfo" placeholder="请输入整改要求" type="textarea" :rows="3" />
<div :class="scope.row.errChangeInfo?'is-err':''">
<el-input v-model="scope.row.changeInfo" placeholder="请输入整改要求" type="textarea" :rows="3" @change="scope.row.errChangeInfo=scope.row.changeInfo?false:true" />
</div>
</template>
</el-table-column>
<el-table-column label="问题人员" align="center" width="300" class-name="td-select">
<template #default="scope">
<el-form-item label="整改人">
<el-select v-model="scope.row.lordSent" placeholder="请选择人员" clearable
<div :class="scope.row.errLordSent?'is-err':''" style="width: 100%;">
<el-select v-model="scope.row.lordSent" placeholder="请选择人员" clearable @change="scope.row.errLordSent=scope.row.lordSent?false:true"
popper-class="select-popper-group-pd">
<el-option-group v-for="group in data.modUserList" :key="group.label" :label="group.label">
<el-option v-for="item in group.options" :key="item.value" :label="item.label" :value="item.value" />
</el-option-group>
</el-select>
</div>
</el-form-item>
<el-form-item label="抄送人">
<el-select v-model="scope.row.copySend" placeholder="请选择人员" clearable multiple collapse-tags
<div :class="scope.row.errCopySend?'is-err':''" style="width: 100%;">
<el-select v-model="scope.row.copySend" placeholder="请选择人员" clearable multiple collapse-tags @change="scope.row.errCopySend=scope.row.copySend?false:true"
popper-class="select-popper-group-pd" collapse-tags-tooltip>
<el-option-group v-for="group in data.ccUserList" :key="group.label" :label="group.label">
<el-option v-for="item in group.options" :key="item.value" :label="item.label" :value="item.value" />
</el-option-group>
</el-select>
</div>
</el-form-item>
<el-form-item label="复检人">
<el-select v-model="scope.row.recheckSend" placeholder="请选择人员" clearable
<div :class="scope.row.errRecheckSend?'is-err':''" style="width: 100%;">
<el-select v-model="scope.row.recheckSend" placeholder="请选择人员" clearable @change="scope.row.errRecheckSend=scope.row.recheckSend?false:true"
popper-class="select-popper-group-pd" collapse-tags-tooltip>
<el-option-group v-for="group in data.recheckUserList" :key="group.label" :label="group.label">
<el-option v-for="item in group.options" :key="item.value" :label="item.label" :value="item.value" />
</el-option-group>
</el-select>
</div>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="整改截至时间" align="center" prop="nickedTime" width="150">
<el-table-column label="整改截至时间" align="center" prop="nickedTime" width="180" class-name="td-select">
<template #default="scope">
<el-form-item label="">
<el-date-picker v-model="scope.row.nickedTime" type="date" placeholder="选择日期" value-format="yyyy-MM-dd"
style="width: 200px" />
<div :class="scope.row.errNickedTime?'is-err':''" style="width: 100%;">
<el-date-picker v-model="scope.row.nickedTime" type="date" placeholder="选择日期" value-format="yyyy-MM-dd" @change="scope.row.errNickedTime=scope.row.nickedTime?false:true"
style="width: 100%" />
</div>
</el-form-item>
</template>
</el-table-column>
@ -250,26 +262,66 @@ function dataSynchronization() {
});
}
function submitRow(row) {
debugger
if (checkRow(row)) {
}
}
function batchSubmitForm(){
data.selData.forEach(it => {
if (checkRow(it)) {
data.showList.splice(it,1);
data.dataList.splice(it,1);
}
});
}
function checkRow(row) {
row.errSmarkUrl=false;
row.errProblemType=false;
row.errDangerType=false;
row.errWorkParts=false;
row.errChangeInfo=false;
row.errLordSent=false;
row.errCopySend=false;
row.errRecheckSend=false;
row.errNickedTime=false;
let ret = true;
if (!row.smarkUrl) {
row.errSmarkUrl=true;
return false;
ret= false;
}
if (!row.problemType) {
row.errProblemType=true;
return false;
ret= false;
}
if (!row.dangerType ) {
return false;
row.errDangerType=true;
ret= false;
}
return true;
if (!row.workParts ) {
row.errWorkParts=true;
ret= false;
}
if (!row.changeInfo ) {
row.errChangeInfo=true;
ret= false;
}
if (!row.lordSent ) {
row.errLordSent=true;
ret= false;
}
if (!row.copySend ) {
row.errCopySend=true;
ret= false;
}
if (!row.recheckSend ) {
row.errRecheckSend=true;
ret= false;
}
if (!row.nickedTime ) {
row.errNickedTime=true;
ret= false;
}
return ret;
}
/** 提交按钮 */
@ -342,7 +394,6 @@ function makeSelectData(users, type) {
})
})
}
console.log("--->", arr)
return arr;
}
function getUserTree() {
@ -404,9 +455,15 @@ getUserTree();
}
}
.td-select { .el-select {
.td-select {
.el-select {
width: 100%;
}
.is-err{
&::after{
bottom:-15px;
}
}
}
.is-err{
position: relative;
@ -420,7 +477,10 @@ getUserTree();
left: 0px;
font-size:12px;
position:absolute;
bottom: -6px;
bottom: -7px;
}
.el-select__wrapper,.el-textarea__inner,.el-input__wrapper{
box-shadow: inset 0 0 0 1px red;
}
}
}