更新保安公司送培

This commit is contained in:
2026-01-13 16:32:59 +08:00
parent 1a30a3ece4
commit a128d2f139
9 changed files with 186 additions and 149 deletions

View File

@ -11,9 +11,6 @@
<!-- 0-待审核 1-通过 2-驳回 -->
{{ detail.shzt == 0 ? '待审核' : detail.shzt == 1 ? '通过' : '驳回' }}
</li>
<!-- <li class="tag_item">驳回</li>
<li class="tag_item">通过</li>
<li class="tag_item">待审核</li> -->
</ul>
<!-- 内容描述 -->
<el-descriptions class="desc" :column="3" border label-width="200px">
@ -23,18 +20,28 @@
<el-descriptions-item label="身份证号码">{{ detail.sfzhm }}</el-descriptions-item>
<el-descriptions-item label="电话">{{ detail.dh }}</el-descriptions-item>
<el-descriptions-item label="性别">{{ detail.xb }}</el-descriptions-item>
<el-descriptions-item label="民族">{{ detail.mz }}</el-descriptions-item>
<el-descriptions-item label="性别">
<DictTag :value="detail.xb" :tag="false" :options="props.dic.D_BZ_XB" />
</el-descriptions-item>
<el-descriptions-item label="民族">
<DictTag :value="detail.mz" :tag="false" :options="props.dic.D_BZ_MZ" />
</el-descriptions-item>
<el-descriptions-item label="籍贯">{{ detail.jg }}</el-descriptions-item>
<el-descriptions-item label="文化程度">{{ detail.whcd }}</el-descriptions-item>
<el-descriptions-item label="文化程度">
<DictTag :value="detail.whcd" :tag="false" :options="props.dic.D_BZ_WHCD" />
</el-descriptions-item>
<el-descriptions-item label="证书编号">{{ detail.zsbh }}</el-descriptions-item>
<el-descriptions-item label="上岗证号码">{{ detail.sgxkhm }}</el-descriptions-item>
<el-descriptions-item label="服务行业"> {{ detail.fwxy }}</el-descriptions-item>
<el-descriptions-item label="服务行业">
<DictTag :value="detail.fwxy" :tag="false" :options="props.dic.D_BAXX_SSHY" />
</el-descriptions-item>
<el-descriptions-item label="服务行业名称">{{ detail.fwxymc }}</el-descriptions-item>
<el-descriptions-item label="入职时间">{{ detail.rzsj }}</el-descriptions-item>
<el-descriptions-item label="政治面貌"> {{ detail.zzmm }}</el-descriptions-item>
<el-descriptions-item label="政治面貌">
<DictTag :value="detail.zzmm" :tag="false" :options="props.dic.D_BZ_ZZMM" />
</el-descriptions-item>
<el-descriptions-item label="无犯罪记录证明">
<div class="img-grid one">

View File

@ -2,13 +2,6 @@
<div>
<el-dialog class="steps-dialog" title="审核" v-model="dialogForm" :close-on-click-modal="false" @close="dialogForm = false,formData = {}" width="420px">
<el-form :model="formData" ref="formRef" :rules="rules" label-width="120px">
<el-form-item label="审核类型" prop="auditType">
<el-select v-model="formData.auditType" placeholder="请选择审核类型">
<el-option label="保安公司审核" value="bakk"></el-option>
<el-option label="培训公司审核" value="pxgs"></el-option>
<el-option label="公安局审核" value="gongan"></el-option>
</el-select>
</el-form-item>
<el-form-item label="是否通过" prop="auditStatus">
<el-radio-group v-model="formData.auditStatus">
<el-radio label="1">通过</el-radio>
@ -51,7 +44,8 @@ const submitForm = () =>{
formRef.value.validate((valid) => {
if (!valid) return;
loading.value = true;
let params = { ...formData.value,ids:idsVal.value }
// // 保安公司审核 - bakk 培训公司审核 -- pxgs 公安局审核 -- gongan
let params = { ...formData.value,ids:idsVal.value,auditType:'bakk' }
qcckPost(params,"/mosty-base/bans/njxx/batchAudit").then((res) => {
loading.value = false;
ElMessage.success("操作成功");

View File

@ -3,7 +3,9 @@
<el-dialog class="steps-dialog" title="审核流程" v-model="dialogForm" width="420px">
<div class="steps-body">
<el-steps direction="vertical" :active="active" :space="90">
<el-step v-for="(item, idx) in steps" :key="item.title" :title="item.title" :description="idx === 0 ? item.time : ''" />
<el-step title="保安公司审核" :description="dataForm.bakkShsj || '未审核'" />
<el-step title="培训公司审核" :description="dataForm.pxgsShsj || '未审核'" />
<el-step title="公安局审核" :description="dataForm.gonganShsj || '未审核'" />
</el-steps>
</div>
</el-dialog>
@ -11,18 +13,19 @@
</template>
<script setup>
import { qcckPost } from "@/api/qcckApi.js";
import { ref, defineExpose } from 'vue';
const dialogForm = ref(false);
const pxgsData = ref()
const active = ref(1)
const steps = ref([
{ title: '保安公司审核', time: '2026-01-07 21:00' },
{ title: '培训公司审核', time: '2026-01-07 21:00' },
{ title: '公安局审核', time: '2026-01-07 21:00' },
])
const active = ref(0)
const dataForm = ref({})
const init = (row) => {
pxgsData.value = row
dialogForm.value = true;
let ids = [row.id]
qcckPost(ids,"/mosty-base/bans/njxx/getAuditStatusList").then(res=>{
dialogForm.value = true;
let obj = res ? res[0] : {};
dataForm.value = obj;
active.value = Number(obj.currentAuditStage) - 1;
})
}
defineExpose({
@ -102,4 +105,22 @@ defineExpose({
::v-deep .is-finish .el-step__icon{
background: #86b6f1;
}
::v-deep .el-dialog__close{
width: 30px;
height: 30px;
color: #fff;
svg{
width: 30px;
height: 30px;
}
}
::v-deep .el-dialog__headerbtn{
top: auto;
bottom: -60px;
border: 2px solid #fff;
color: #fff;
left: 50%;
transform: translateX(-50%);
border-radius: 50%;
}
</style>

View File

@ -21,8 +21,8 @@
<template #fwxy="{ row }">
<DictTag :value="row.fwxy" :tag="false" :options="D_BAXX_SSHY" />
</template>
<template #shzt="{ row }">
<DictTag :value="row.shzt" :tag="false" :options="D_BA_SHZT" />
<template #bakkShzt="{ row }">
<DictTag :value="row.bakkShzt" :tag="false" :color="row.bakkShzt == 0 ? '#ff0000' : row.bakkShzt == 1 ? '#28EEBF' : '#FA3758'" :options="D_BA_SHZT" />
</template>
<template #sptz="{ row }">
<DictTag :value="row.sptz" :tag="false" :options="D_BA_SPZT" />
@ -30,9 +30,9 @@
<!-- 操作 -->
<template #controls="{ row }">
<!--currentAuditStage 当前审核阶段1-保安公司审核阶段2-培训公司审核阶段3-公安局审核阶段4-审核完成 -->
<el-link type="primary" link @click="onBatchAudit([row.id])">立即审核</el-link>
<el-link type="primary" link @click="onBatchAudit([row.id])" v-if="row.bakkShzt == 0">立即审核</el-link>
<el-link type="primary" link @click="addEdit('RefSteap', row)">审核流程</el-link>
<el-link type="primary" link @click="handleItemSp([row.id])">送培</el-link>
<el-link type="primary" link @click="handleItemSp([row.id])" v-if="row.sptz == 0 && row.bakkShzt == 1">送培</el-link>
<el-link type="primary" link @click="addEdit('detail', row)">详情</el-link>
</template>
</MyTable>
@ -42,7 +42,7 @@
}"></Pages>
</div>
<!-- 详情 -->
<DetailForm ref="detailDiloag" :dict="{D_BZ_ZZMM,D_BZ_XB,D_BZ_MZ,D_BA_SHZT,D_BAXX_SSHY,D_BA_SPZT,D_BZ_WHCD}"/>
<DetailForm ref="detailDiloag" :dic="{D_BZ_ZZMM,D_BZ_XB,D_BZ_MZ,D_BA_SHZT,D_BAXX_SSHY,D_BA_SPZT,D_BZ_WHCD}"/>
<!-- 审核流程 -->
<Steps ref="RefSteap" ></Steps>
<!-- 审核 -->
@ -51,6 +51,7 @@
</template>
<script setup>
import { getItem } from "@/utils/storage";
import PageTitle from "@/components/aboutTable/PageTitle.vue";
import MyTable from "@/components/aboutTable/MyTable.vue";
import Pages from "@/components/aboutTable/Pages.vue";
@ -63,6 +64,7 @@ import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
import { ElMessage } from "element-plus";
const { proxy } = getCurrentInstance();
const { D_BZ_ZZMM,D_BZ_XB,D_BZ_MZ,D_BA_SHZT,D_BAXX_SSHY,D_BA_SPZT,D_BZ_WHCD } = proxy.$dict('D_BZ_ZZMM','D_BZ_XB','D_BZ_MZ','D_BA_SHZT','D_BAXX_SSHY','D_BA_SPZT','D_BZ_WHCD');
const userInfo = getItem('userInfo');
const detailDiloag = ref();
const RefSteap = ref();
const shForm = ref();
@ -86,7 +88,7 @@ const searchConfiger = ref([
},
{
label: "审核状态",
prop: "shzt",
prop: "bakkShzt",
showType: "select",
placeholder: "不限",
clearable: true,
@ -129,7 +131,7 @@ const pageData = reactive({
{ label: "服务行业", prop: "fwxy", showSolt: true },
{ label: "入职时间", prop: "rzsj" },
{ label: "上岗证号码", prop: "sgxkhm", showOverflowTooltip: true },
{ label: "审核状态", prop: "shzt", showSolt: true },
{ label: "审核状态", prop: "bakkShzt", showSolt: true },
{ label: "审核时间", prop: "shsj" },
{ label: "送培状态", prop: "sptz", showSolt: true }
]
@ -155,9 +157,12 @@ const changeSize = (val) => {
// 获取列表
const getList = () => {
pageData.tableConfiger.loading = true;
const promes = {
...pageData.pageConfiger,
...queryFrom.value,
ssbakk:userInfo.pxgs,
ssbakkId:userInfo.pxgsid
}
qcckPost(promes,'/mosty-base/bans/njxx/page').then(res => {
pageData.tableData = res.records || [];
@ -172,17 +177,33 @@ const chooseData = (rows) => {
selectedRows.value = Array.isArray(rows) ? rows : [];
};
const onBatchAudit = (ids) => {
if (!ids.length) return ElMessage.warning("请选择需要的数据");
const onBatchAudit = (valIds) => {
let ids = [];
valIds.forEach(id =>{
let obj = pageData.tableData.find(it=>it.id == id);
if(obj && obj.bakkShzt == 0) ids.push(id);
});
if (!ids.length) return ElMessage.warning("请选择未审核的数据!该数据再审核状态下不能操作!");
shForm.value.init(ids);
};
// 送培
const handleItemSp = (ids) =>{
const handleItemSp = (valIds) =>{
let ids = [];
valIds.forEach(id =>{
let obj = pageData.tableData.find(it=>it.id == id);
if(obj && obj.sptz == 0 && obj.bakkShzt == 1) ids.push(id);
});
if (!ids.length) return ElMessage.warning("请选择未送培的数据!该数据已送培!");
proxy.$modal.confirm("是否确认送培?").then(() => {
qcckPost(ids,'/mosty-base/bans/njxx/sendTraining').then(res=>{
ElMessage.success("送培成功");
let params = {
ssbakk:userInfo.pxgs,
ssbakkId:userInfo.pxgsid,
ids:ids
}
qcckPost(params,'/mosty-base/bans/njxx/sendTraining').then(res=>{
getList()
ElMessage.success("送培成功");
})
});
}