This commit is contained in:
lcw
2026-01-15 09:34:36 +08:00
parent f9f417a7cd
commit bf02efe72e
7 changed files with 411 additions and 25 deletions

View File

@ -99,7 +99,7 @@ import { ref, computed, defineEmits, getCurrentInstance,defineProps } from 'vue'
import { qcckPost } from "@/api/qcckApi.js";
const emit = defineEmits(["refresh"]);
const { proxy } = getCurrentInstance();
const baseUrl = '/bagl/mosty-base/minio/image/download'
const baseUrl = '/bagl/mosty-base/minio/image/download/'
const props = defineProps({
dic: {
default: [[]], //二维数组
@ -174,7 +174,7 @@ defineExpose({ init })
color: #0072FF;
border: 5px solid #0072FF;
}
}
}
}
.desc {

View File

@ -3,14 +3,56 @@
<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 title="保安公司审核" :description="dataForm.bakkShsj || '未审核'" />
<el-step title="培训公司审核" :description="dataForm.pxgsShsj || '未审核'" />
<el-step title="公安局审核" :description="dataForm.gonganShsj || '未审核'" />
<el-step title="保安公司审核">
<template #description>
<div class="audit-description">
<div class="audit-time">{{ dataForm.bakkShsj || '未审核' }}<span class="audit-status"
v-if="dataForm.bakkShsj"
:class="{ 'status-pending': dataForm.bakkShzt == 0, 'status-pass': dataForm.bakkShzt == 1, 'status-reject': dataForm.bakkShzt == 2 }">{{
dataForm.bakkShzt == 0 ? '待审核' : dataForm.bakkShzt == 1 ? '通过' : '驳回' }}</span></div>
<div v-if="dataForm.bakkShzt == 2" class="reject-reason">
<span class="reject-label">驳回原因</span>
<span>{{ dataForm.bhyy || '未审核' }}</span>
</div>
</div>
</template>
</el-step>
<el-step title="培训公司审核">
<template #description>
<div class="audit-description">
<div class="audit-time">{{ dataForm.pxgsShsj || '未审核' }}
<span class="audit-status" v-if="dataForm.pxgsShsj"
:class="{ 'status-pending': dataForm.pxgsShzt == 0, 'status-pass': dataForm.pxgsShzt == 1, 'status-reject': dataForm.pxgsShzt == 2 }">{{
dataForm.pxgsShzt == 0 ? '待审核' : dataForm.pxgsShzt == 1 ? '通过' : '驳回' }}</span>
</div>
<div v-if="dataForm.pxgsShsj == 2" class="reject-reason">
<span class="reject-label">驳回原因</span>
<span>{{ dataForm.pxgsBhyy || '未审核' }}</span>
</div>
</div>
</template>
</el-step>
<el-step title="公安局审核" :description="dataForm.gonganShsj || '未审核'">
<template #description>
<div class="audit-description">
<div class="audit-time">{{ dataForm.gonganShsj || '未审核' }}
<span class="audit-status" v-if="dataForm.gonganShsj"
:class="{ 'status-pending': dataForm.gonganShzt == 0, 'status-pass': dataForm.gonganShzt == 1, 'status-reject': dataForm.gonganShzt == 2 }">{{
dataForm.gonganShzt == 0 ? '待审核' : dataForm.gonganShzt == 1 ? '通过' : '驳回' }}</span>
</div>
<div v-if="dataForm.gonganShsj == 2" class="reject-reason">
<span class="reject-label">驳回原因</span>
<span>{{ dataForm.gonganBhyy || '未审核' }}</span>
</div>
</div>
</template>
</el-step>
</el-steps>
</div>
</el-dialog>
</div>
</template>
<!-- :description="dataForm.pxgsShsj || '未审核'" -->
<script setup>
import { qcckPost } from "@/api/qcckApi.js";
@ -20,7 +62,7 @@ const active = ref(0)
const dataForm = ref({})
const init = (row) => {
let ids = [row.id]
qcckPost(ids,"/mosty-base/bans/njxx/getAuditStatusList").then(res=>{
qcckPost(ids, "/mosty-base/bans/njxx/getAuditStatusList").then(res => {
dialogForm.value = true;
let obj = res ? res[0] : {};
dataForm.value = obj;
@ -35,11 +77,63 @@ defineExpose({
<style scoped lang="scss">
.steps-body {
height: 260px;
height: 300px;
padding: 6px 10px 10px;
box-sizing: border-box;
}
.audit-description {
display: flex;
flex-direction: column;
gap: 4px;
margin: 10px 0;
}
.audit-time {
font-size: 16px;
color: #9AA8B6;
line-height: 20px;
}
.reject-reason {
font-size: 14px;
line-height: 18px;
margin-top: 4px;
padding: 6px 10px;
background-color: #fef2f2;
border-left: 3px solid #f87171;
border-radius: 0 4px 4px 0;
color: #dc2626;
}
.reject-label {
font-weight: 600;
margin-right: 4px;
}
.audit-status {
margin-left: 8px;
padding: 2px 8px;
border-radius: 10px;
font-size: 16px;
font-weight: 500;
}
.status-pending {
background-color: #f3f4f6;
color: #6b7280;
}
.status-pass {
background-color: #d1fae5;
color: #065f46;
}
.status-reject {
background-color: #fee2e2;
color: #b91c1c;
}
:deep(.steps-dialog .el-dialog__header) {
text-align: center;
padding: 20px 20px 10px;
@ -102,19 +196,23 @@ defineExpose({
:deep(.steps-dialog .el-step__icon-inner) {
display: none;
}
::v-deep .is-finish .el-step__icon{
::v-deep .is-finish .el-step__icon {
background: #86b6f1;
}
::v-deep .el-dialog__close{
::v-deep .el-dialog__close {
width: 30px;
height: 30px;
color: #fff;
svg{
svg {
width: 30px;
height: 30px;
}
}
::v-deep .el-dialog__headerbtn{
::v-deep .el-dialog__headerbtn {
top: auto;
bottom: -60px;
border: 2px solid #fff;

View File

@ -3,7 +3,7 @@
<div class="titleBox">
<PageTitle title="保安员年检管理" >
<el-button type="primary" @click="onBatchAudit(selectedRows)">批量审核</el-button>
<el-button type="primary" @click="handleItemSp(selectedRows)">批量送培</el-button>
<!-- <el-button type="primary" @click="handleItemSp(selectedRows)">批量送培</el-button> -->
</PageTitle>
</div>
<!-- 搜索 -->
@ -32,7 +32,7 @@
<!--currentAuditStage 当前审核阶段1-保安公司审核阶段2-培训公司审核阶段3-公安局审核阶段4-审核完成 -->
<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])" v-if="row.sptz == 0 && row.bakkShzt == 1">送培</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>
@ -57,7 +57,8 @@ import MyTable from "@/components/aboutTable/MyTable.vue";
import Pages from "@/components/aboutTable/Pages.vue";
import Search from "@/components/aboutTable/Search.vue";
import DetailForm from "./components/detailForm.vue";
import Steps from "./components/steps.vue";
// import Steps from "./components/steps.vue";
import Steps from '@/components/steps.vue'
import ShForm from "./components/shForm.vue";
import { qcckPost } from "@/api/qcckApi.js";
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";