提交新用户审批对接代码

This commit is contained in:
wangchengming 2025-07-07 21:08:15 +08:00
parent 87f308162f
commit 771fc2166d
5 changed files with 215 additions and 304 deletions

View File

@ -52,6 +52,24 @@ export function checkRegisterUserList(data) {
params: data
})
}
// 查询新用户审批记录
export function userCheckRecordList(data) {
return request({
url: '/admin/userCheckRecord/pageList',
method: 'post',
data: data
})
}
// 提交新用户审批
export function checkRegisterUser(data) {
return request({
url: '/system/user/checkRegisterUser',
method: 'post',
data: data
})
}
// 用户密码重置
export function resetUserPwd(userId, password) {
@ -167,22 +185,5 @@ export function resetPwd(params) {
data: params
})
}
// 获取用户审批记录
export function getUserApplyRecord(params) {
return request({
url: '/admin/userCheckRecord/pageList',
method: 'post',
data: params
})
}
// 用户注册审核
export function submitUserApply(params) {
return request({
url: '/system/user/checkRegisterUser',
method: 'post',
data: params
})
}

View File

@ -306,13 +306,13 @@ export const dynamicRoutes = [
]
},
{
path: '/system/userApproval/userApprovalDetail',
path: '/system/userApprovalDetail',
component: Layout,
hidden: true,
permissions: ['system:userApproval:approval'],
children: [
{
path: '',
path: ':userId(\\d+)',
component: () => import('@/views/system/userApproval/userApprovalDetail'),
name: 'userApprovalDetail',
meta: { title: '新用户审批详情', activeMenu: '/system/userApproval' }

View File

@ -77,7 +77,7 @@
<el-table-column label="操作" align="center" width="100">
<template #default="scope">
<el-button type="primary" text class="replayTextBtn" v-if="scope.row.status != 2"
@click="handleView">查看</el-button>
@click="handleView(scope.row)">查看</el-button>
<el-button type="primary" v-if="scope.row.status == 2" text class="replayTextBtn"
@click="handleApproval(scope.row)">审批</el-button>
</template>
@ -209,10 +209,11 @@ const resetQuery = () => {
handleQuery()
}
const handleView = () => {
router.push('/system/userApproval/userApprovalDetail')
const handleView = (record) => {
router.push('/system/userApprovalDetail/' + record.userId)
}
const handleApproval = (record) => {
console.log('审批', record)
router.push('/system/userApprovalForm/' + record.userId)
}
</script>

View File

@ -13,70 +13,73 @@
<el-card>
<template #header>
<div class="card-header">
<span>新用户4342342342</span>
<span>新用户 {{ detailForm.workNo ? detailForm.workNo : '-' }}</span>
</div>
</template>
<el-form ref="ruleFormRef" :model="ruleForm" label-position="left" style="margin-top: 20px;">
<el-form :model="detailForm" label-position="left" style="margin-top: 20px;">
<div class="headerTitle">注册信息</div>
<div class="applyFormContainer">
<el-row class="myRow" :gutter="20">
<el-col :span="20">
<el-row class="myRow" :gutter="20">
<el-col :span="8">
<el-form-item label="当前标签:" prop="targetQualification">
ES
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="部门:" prop="departmentName">
XXXX部门
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="科室:" prop="officeName">
XXX科室
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="员工工号:" prop="employeeNumber">
NO.43242342
<el-form-item label="工号:">
{{ detailForm.workNo ? detailForm.workNo : '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="员工姓名(中文):" prop="employeeChineseName">
管思成
{{ detailForm.userName ? detailForm.userName : '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="员工姓名(英文):" prop="employeeEnglishName">
GuangSiCheng
{{ detailForm.englishName ? detailForm.englishName : '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="部门:" prop="departmentName">
{{ detailForm.dept ? detailForm.dept.deptName : '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="科室:" prop="officeName">
{{ detailForm.sectionName ? detailForm.sectionName : '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="属地:" prop="localityName">
XXX属地
{{ detailForm.dependencyName ? detailForm.dependencyName : '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="属地ESC:" prop="localityName">
赵文杰
{{ detailForm.escUserName ? detailForm.escUserName : '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="创建时间:" prop="employeeEnglishName">
2024-12-24 14:23
{{ detailForm.createTime ? detailForm.createTime : '-' }}
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="4">
<el-form-item label="审批状态" label-position="top" class="myFormItemLable">
待审批
<template v-if="detailForm.status">
<el-text v-if="detailForm.status == 0" type="success"
class="successText">通过</el-text>
<el-text v-if="detailForm.status == 2" type="info"
class="infoinfoText">待审核</el-text>
<el-text v-if="detailForm.status == 3" type="danger"
class="dangerText">驳回</el-text>
</template>
<template v-else>-</template>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
</el-form>
<div class="headerTitle">审批记录</div>
<div class="applyFormContainer">
<el-table :data="tableData" style="width: 100%;margin-bottom: 20px;">
@ -90,162 +93,79 @@
<el-table-column prop="approvalTime" label="审批时间" width="150">
<template #default="scope">
<span v-if="scope.row.approvalTime && scope.row.approvalTime"> {{ scope.row.approvalTime
}}</span>
}}</span>
<span v-else>-</span>
</template>
</el-table-column>
</el-table>
</div>
<el-form ref="ruleFormRef" :model="ruleForm" label-position="top" style="margin-bottom: 20px;">
<div class="headerTitle">审批信息</div>
<div class="applyFormContainer">
<el-row class="myRow" :gutter="20">
<el-col :span="6">
<el-form-item label="审批结果" prop="urgency">
<el-radio-group v-model="ruleForm.urgency">
<el-radio value="2">驳回</el-radio>
<el-radio value="1">通过</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="18">
<el-form-item label="审批意见" prop="urgency">
<el-input v-model="textarea" style="width: 100%" :rows="5" type="textarea"
placeholder="请输入" />
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
</div>
</el-card>
</div>
<div class="submitTool">
<el-button class="cancelApplyBtn" @click="handleCancel">取消</el-button>
<el-button class="submitApplyBtn" @click="handleSubmit">提交</el-button>
<el-button class="cancelApplyBtn" @click="handleCancel">返回</el-button>
</div>
</div>
</template>
<script setup>
import { reactive } from 'vue'
import { onMounted, reactive, ref } from 'vue'
import { useRouter } from 'vue-router'
import { getUser, userCheckRecordList } from "@/api/system/user"
const router = useRouter()
const route = useRoute()
const levelList = ref([
{ title: '系统管理', path: '/system' },
{ title: '新用户审批', path: '/system/userApproval' },
{ title: '审批', path: '/system/userApproval/userApprovalDetail' }
{ title: '审批详情', path: '/system/userApproval/userApprovalDetail' }
])
const { proxy } = getCurrentInstance()
const data = reactive({
ruleForm: {},
rules: {
targetQualification: [{ required: true, message: "目标资质不能为空", trigger: "change" }],
employeeNumber: [{ required: true, message: "员工工号不能为空", trigger: "blur" }],
employeeChineseName: [{ required: true, message: "员工姓名(中文)不能为空", trigger: "blur" }],
employeeEnglishName: [{ required: true, message: "员工姓名(英文)", trigger: "blur" }],
departmentName: [{ required: true, message: "部门不能为空", trigger: "change" }],
officeName: [{ required: true, message: "科室不能为空", trigger: "change" }],
localityName: [{ required: true, message: "属地不能为空", trigger: "change" }],
localityManager: [{ required: true, message: "属地ESC不能为空", trigger: "blur" }],
},
detailForm: {}
})
const tableData = [
{
name: '提交申请',
approvalResult: '-',
approvalTime: '2016-05-03'
},
{
name: 'ESC审批',
approvalResult: '同意',
approvalTime: '2016-05-08'
},
]
const { detailForm } = toRefs(data)
const approvalData = [
{
name: '电工证',
certificate: 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
expired: false,
startTime: '2016-05-03',
expireTime: '2019-05-03',
},
{
name: 'SH',
certificate: 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
expired: false,
startTime: '2016-05-03',
expireTime: '2019-05-03',
},
{
name: 'ES',
certificate: 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
expired: false,
startTime: '2016-05-03',
expireTime: '2019-05-03',
},
{
name: 'ESC',
certificate: null,
expired: null,
startTime: '2016-05-03',
expireTime: '2019-05-03',
},
{
name: 'CESC',
certificate: null,
expired: null,
startTime: '2016-05-03',
expireTime: '2019-05-03',
},
{
name: '急救证',
certificate: null,
expired: null,
startTime: '2016-05-03',
expireTime: '2019-05-03',
},
{
name: 'LLP',
certificate: 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
expired: true,
startTime: '2016-05-03',
expireTime: '2019-05-03',
},
]
const { ruleForm, rules } = toRefs(data)
const handleCancel = () => {
proxy.resetForm("ruleFormRef")
//
onMounted(() => {
const id = route.params && route.params.userId
if (id) {
console.log('接收id', id)
getDetailInfo(id)
getUserCheckRecordList(id)
}
});
//
const getDetailInfo = (_id) => {
getUser(_id).then(res => {
if (res.code == 200) {
detailForm.value = res.data
}
})
}
const tableData = ref([])
//
const getUserCheckRecordList = (_id) => {
var queryParamsRecord = {
pageIndex: 1,
pageSize: 50,
userId: _id
}
userCheckRecordList(queryParamsRecord).then(res => {
if (res.code == 200) tableData.value = res.data.list
})
}
const handleCancel = () => {
router.push({
path: '/system/userApproval'
})
}
const handleSubmit = () => {
proxy.$refs["ruleFormRef"].validate(valid => {
if (valid) {
router.push({
path: '/system/userApproval'
})
// if (form.value.roleId != undefined) {
// form.value.menuIds = getMenuAllCheckedKeys()
// updateRole(form.value).then(response => {
// proxy.$modal.msgSuccess("")
// open.value = false
// getList()
// })
// } else {
// form.value.menuIds = getMenuAllCheckedKeys()
// addRole(form.value).then(response => {
// proxy.$modal.msgSuccess("")
// open.value = false
// getList()
// })
// }
}
})
}
}
</script>
<style lang='scss'>
.app-main {
@ -340,6 +260,13 @@ const handleSubmit = () => {
padding: 6px 14px;
}
.infoinfoText {
font-family: Microsoft YaHei;
font-weight: 400;
font-size: 18px;
color: #DD9200;
}
.successText {
font-family: Microsoft YaHei;
font-weight: 400;

View File

@ -13,70 +13,73 @@
<el-card>
<template #header>
<div class="card-header">
<span>新用户4342342342</span>
<span>新用户 {{ detailForm.workNo ? detailForm.workNo : '-' }}</span>
</div>
</template>
<el-form ref="ruleFormRef" :model="ruleForm" label-position="left" style="margin-top: 20px;">
<el-form :model="detailForm" label-position="left" style="margin-top: 20px;">
<div class="headerTitle">注册信息</div>
<div class="applyFormContainer">
<el-row class="myRow" :gutter="20">
<el-col :span="20">
<el-row class="myRow" :gutter="20">
<el-col :span="8">
<el-form-item label="当前标签:" prop="targetQualification">
ES
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="部门:" prop="departmentName">
XXXX部门
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="科室:" prop="officeName">
XXX科室
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="员工工号:" prop="employeeNumber">
NO.43242342
<el-form-item label="工号:">
{{ detailForm.workNo ? detailForm.workNo : '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="员工姓名(中文):" prop="employeeChineseName">
管思成
{{ detailForm.userName ? detailForm.userName : '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="员工姓名(英文):" prop="employeeEnglishName">
GuangSiCheng
{{ detailForm.englishName ? detailForm.englishName : '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="部门:" prop="departmentName">
{{ detailForm.dept ? detailForm.dept.deptName : '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="科室:" prop="officeName">
{{ detailForm.sectionName ? detailForm.sectionName : '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="属地:" prop="localityName">
XXX属地
{{ detailForm.dependencyName ? detailForm.dependencyName : '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="属地ESC:" prop="localityName">
赵文杰
{{ detailForm.escUserName ? detailForm.escUserName : '-' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="创建时间:" prop="employeeEnglishName">
2024-12-24 14:23
{{ detailForm.createTime ? detailForm.createTime : '-' }}
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="4">
<el-form-item label="审批状态" label-position="top" class="myFormItemLable">
待审批
<template v-if="detailForm.status">
<el-text v-if="detailForm.status == 0" type="success"
class="successText">通过</el-text>
<el-text v-if="detailForm.status == 2" type="info"
class="infoinfoText">待审核</el-text>
<el-text v-if="detailForm.status == 3" type="danger"
class="dangerText">驳回</el-text>
</template>
<template v-else>-</template>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
</el-form>
<div class="headerTitle">审批记录</div>
<div class="applyFormContainer">
<el-table :data="tableData" style="width: 100%;margin-bottom: 20px;">
@ -90,27 +93,28 @@
<el-table-column prop="approvalTime" label="审批时间" width="150">
<template #default="scope">
<span v-if="scope.row.approvalTime && scope.row.approvalTime"> {{ scope.row.approvalTime
}}</span>
}}</span>
<span v-else>-</span>
</template>
</el-table-column>
</el-table>
</div>
<el-form ref="ruleFormRef" :model="ruleForm" label-position="top" style="margin-bottom: 20px;">
<el-form ref="ruleFormRef" :model="ruleForm" :rules="rules" label-position="top"
style="margin-bottom: 20px;">
<div class="headerTitle">审批信息</div>
<div class="applyFormContainer">
<el-row class="myRow" :gutter="20">
<el-col :span="6">
<el-form-item label="审批结果" prop="urgency">
<el-radio-group v-model="ruleForm.urgency">
<el-radio value="2">驳回</el-radio>
<el-radio value="1">通过</el-radio>
<el-form-item label="审批结果" prop="status">
<el-radio-group v-model="ruleForm.status" @change="handleApplyStateChange">
<el-radio value="3">驳回</el-radio>
<el-radio value="0">通过</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="18">
<el-form-item label="审批意见" prop="urgency">
<el-input v-model="textarea" style="width: 100%" :rows="5" type="textarea"
<el-form-item label="审批意见" prop="remark">
<el-input v-model="ruleForm.remark" style="width: 100%" :rows="5" type="textarea"
placeholder="请输入" />
</el-form-item>
</el-col>
@ -128,10 +132,13 @@
</template>
<script setup>
import { reactive } from 'vue'
import { onMounted, reactive, ref } from 'vue'
import { useRouter } from 'vue-router'
import { getUser, userCheckRecordList, checkRegisterUser } from "@/api/system/user"
const router = useRouter()
const route = useRoute()
const levelList = ref([
{ title: '系统管理', path: '/system' },
{ title: '新用户审批', path: '/system/userApproval' },
@ -139,83 +146,60 @@ const levelList = ref([
])
const { proxy } = getCurrentInstance()
const data = reactive({
ruleForm: {},
detailForm: {},
ruleForm: {
status: '',
remark: ''
},
rules: {
targetQualification: [{ required: true, message: "目标资质不能为空", trigger: "change" }],
employeeNumber: [{ required: true, message: "员工工号不能为空", trigger: "blur" }],
employeeChineseName: [{ required: true, message: "员工姓名(中文)不能为空", trigger: "blur" }],
employeeEnglishName: [{ required: true, message: "员工姓名(英文)", trigger: "blur" }],
departmentName: [{ required: true, message: "部门不能为空", trigger: "change" }],
officeName: [{ required: true, message: "科室不能为空", trigger: "change" }],
localityName: [{ required: true, message: "属地不能为空", trigger: "change" }],
localityManager: [{ required: true, message: "属地ESC不能为空", trigger: "blur" }],
status: [{ required: true, message: "请选择审批结果", trigger: "change" }],
remark: [{ required: true, message: "审批意见不能为空", trigger: "blur" }]
},
})
const tableData = [
{
name: '提交申请',
approvalResult: '-',
approvalTime: '2016-05-03'
},
{
name: 'ESC审批',
approvalResult: '同意',
approvalTime: '2016-05-08'
},
]
const { ruleForm, detailForm, rules } = toRefs(data)
//
onMounted(() => {
const id = route.params && route.params.userId
if (id) {
console.log('接收id', id)
ruleForm.value.userId = id
getDetailInfo(id)
getUserCheckRecordList(id)
} else {
ruleForm.value.userId = null
}
});
//
const getDetailInfo = (_id) => {
getUser(_id).then(res => {
if (res.code == 200) {
detailForm.value = res.data
}
})
}
//
const handleApplyStateChange = (value) => {
if (value == 0) ruleForm.value.remark = '同意'
if (value == 3) ruleForm.value.remark = ''
}
const tableData = ref([])
//
const getUserCheckRecordList = (_id) => {
var queryParamsRecord = {
pageIndex: 1,
pageSize: 50,
userId: _id
}
userCheckRecordList(queryParamsRecord).then(res => {
if (res.code == 200) tableData.value = res.data.list
})
}
const approvalData = [
{
name: '电工证',
certificate: 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
expired: false,
startTime: '2016-05-03',
expireTime: '2019-05-03',
},
{
name: 'SH',
certificate: 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
expired: false,
startTime: '2016-05-03',
expireTime: '2019-05-03',
},
{
name: 'ES',
certificate: 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
expired: false,
startTime: '2016-05-03',
expireTime: '2019-05-03',
},
{
name: 'ESC',
certificate: null,
expired: null,
startTime: '2016-05-03',
expireTime: '2019-05-03',
},
{
name: 'CESC',
certificate: null,
expired: null,
startTime: '2016-05-03',
expireTime: '2019-05-03',
},
{
name: '急救证',
certificate: null,
expired: null,
startTime: '2016-05-03',
expireTime: '2019-05-03',
},
{
name: 'LLP',
certificate: 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
expired: true,
startTime: '2016-05-03',
expireTime: '2019-05-03',
},
]
const { ruleForm, rules } = toRefs(data)
const handleCancel = () => {
proxy.resetForm("ruleFormRef")
router.push({
@ -224,25 +208,16 @@ const handleCancel = () => {
}
const handleSubmit = () => {
proxy.$refs["ruleFormRef"].validate(valid => {
if (valid) {
router.push({
path: '/system/userApproval'
if (valid) {
checkRegisterUser(ruleForm.value).then(res => {
if (res.code == 200) {
router.push({
path: '/system/userApproval'
})
} else {
proxy.$modal.msgSuccess(res.msg)
}
})
// if (form.value.roleId != undefined) {
// form.value.menuIds = getMenuAllCheckedKeys()
// updateRole(form.value).then(response => {
// proxy.$modal.msgSuccess("")
// open.value = false
// getList()
// })
// } else {
// form.value.menuIds = getMenuAllCheckedKeys()
// addRole(form.value).then(response => {
// proxy.$modal.msgSuccess("")
// open.value = false
// getList()
// })
// }
}
})
}
@ -340,6 +315,13 @@ const handleSubmit = () => {
padding: 6px 14px;
}
.infoinfoText {
font-family: Microsoft YaHei;
font-weight: 400;
font-size: 18px;
color: #DD9200;
}
.successText {
font-family: Microsoft YaHei;
font-weight: 400;