This commit is contained in:
lcw
2025-08-16 16:54:03 +08:00
parent 71487ac647
commit 42f5e37f65
69 changed files with 5913 additions and 978 deletions

View File

@ -0,0 +1,269 @@
<template>
<div class="dialog" v-if="dialogForm">
<div class="head_box">
<span class="title">重点人员深度发掘详情</span>
<div>
<el-button size="small" @click="close">关闭</el-button>
</div>
</div>
<div class="flex just-between">
<div :class="listQuery.gzlid ? 'ww79' : 'ww100'">
<div class="" style="overflow: auto;height: 100%;color: #000;">
<el-card shadow="never" style="border: none;">
<template #header>
<h3 class="card-header">
基础信息
</h3>
</template>
<div class="flex flex-warp just-between">
<div class="flex flex-1" v-for="(item, index) in basicInformation" :key="index">
<div class="lable">{{ item.label }}</div>
<div v-if="item.showSolt">
<DictTag :tag="false" :value="listQuery[item.key]" color="#000" :options="item.options" />
</div>
<div v-else>
{{ listQuery[item.key] }}
</div>
</div>
</div>
</el-card>
<el-card shadow="never" style="border: none;">
<template #header>
<h3 class="card-header">
附件
</h3>
</template>
<div class="grid-container">
<div class="grid-item" :key="index">
<el-image :src="setAddress(listQuery.ryFjZp)" :zoom-rate="1.2" :max-scale="7" :min-scale="0.2"
:preview-src-list="[listQuery.ryFjZp]" show-progress :initial-index="4" fit="cover">
<template #error>
<div class="image-slot">
<el-icon><icon-picture /></el-icon>
</div>
</template>
</el-image>
</div>
</div>
</el-card>
</div>
</div>
<div class="ww20" v-if="listQuery.gzlid">
<ApprovalEcho ref="approvalEcho" />
</div>
</div>
</div>
</template>
<script setup>
import { qcckGet } from '@/api/qcckApi'
import { ref, defineExpose, watch,getCurrentInstance } from "vue";
import ApprovalEcho from "@/components/flowPath/ApprovalEcho.vue";
import { Picture as IconPicture } from '@element-plus/icons-vue'
import { setAddress } from '@/utils/tools'
const { proxy } = getCurrentInstance();
const { D_GS_RQFJ_FXDJ, D_GS_RQFJ_FXLB } =
proxy.$dict(
"D_BZ_RCSHZT",
"D_GS_RQFJ_LX",
"D_GS_RQFJ_FXDJ",
"D_BZ_SF",
"D_GS_RQFJ_FXLB"
);
const dialogForm = ref(false); //弹窗
const approvalEcho=ref()
const listQuery = ref({})
// 基础信息
const basicInformation = ref(
[
{
label: '姓名',
key: 'ryXm',
},
{
label: '电话',
key: 'rySjhm'
},
{
label: '身份证号',
key: 'rySfzh'
},
{
label: '户籍地址',
key: 'ryHjdz',
},
{
label: '护照号码',
key: 'ryHzhm',
},
{
label: '现住地址',
key: 'ryXzdz',
},
{
label: '管辖单位',
key: 'gxDwMc',
}, {
label: '责任部门',
key: 'ssbm',
},
{
label: '标签',
key: 'bqList',
},
{
label: '风险积分',
key: 'fxjf',
}, {
label: '风险等级',
key: 'fxDj',
showSolt: true,
options: D_GS_RQFJ_FXDJ
}, {
label: '风险类别',
key: 'fxLb',
showSolt: true,
options: D_GS_RQFJ_FXLB
}
]
)
// 初始化数据
const init = (row) => {
dialogForm.value = true
qcckGet({}, '/mosty-gsxt/tbGsxtRqfjRy/' + row.id).then(res => {
listQuery.value = res
})
};
watch(() => approvalEcho.value, (val) => {
if (val) {
approvalEcho.value.getWorkflow(listQuery.value.gzlid)
}
}, { deep: true })
// 关闭
const close = () => {
dialogForm.value = false;
};
defineExpose({ init });
</script>
<style lang="scss" scoped>
@import "~@/assets/css/layout.scss";
@import "~@/assets/css/element-plus.scss";
.dialog {
::v-deep .el-form-item--default {
margin: 0 1% 0 0 !important;
padding-bottom: 0 !important;
}
}
::v-deep .el-card {
background-color: #fff;
color: #000;
}
.nodeBox {
width: 80%;
text-align: center;
line-height: 30px;
border-radius: 10px;
overflow: hidden;
background-color: aliceblue;
.nodeorgNameTg {
background-color: #1abe20;
}
.nameTag {
line-height: 30px;
padding: 0 10px;
}
.nodeorgNameDd {
background-color: #18a2dd;
}
.fontColor {
color: #1abe20;
}
.fontColorDd {
color: #18a2dd;
}
}
.card-header {
font-size: 18px;
color: #303133;
font-weight: 600;
margin: 0;
}
::v-deep .el-card {
border: none !important;
}
.flex-1 {
width: 48%;
font-family: verdana;
font-size: 14px;
margin-bottom: 20px;
.lable {
font-size: 14px;
width: 13%;
font-weight: 700;
}
}
.el-image {
padding: 0 5px;
max-width: 300px;
max-height: 200px;
width: 100%;
height: 200px;
}
.image-slot {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
background: var(--el-fill-color-light);
color: var(--el-text-color-secondary);
font-size: 30px;
border: 1px solid silver;
border-radius: 5px;
}
.grid-container {
display: grid;
grid-template-columns: repeat(6, 1fr);
/* 5等分列 */
gap: 0px;
width: 100%;
box-sizing: border-box;
}
.grid-item {
width: 290px;
display: flex;
align-items: center;
justify-content: center;
img {
width: 100%;
}
}
</style>

View File

@ -35,7 +35,10 @@
</template>
<!-- 操作 -->
<template #controls="{ row }">
<el-link type="primary" v-if="roleList.includes('BK_SH_RY')" size="small" @click="handleDetail(row,'审核')">审核</el-link>
<el-link type="primary" size="small" @click="showDetail(row)">指令下发</el-link>
<el-link type="primary" v-if="roleList.includes('BK_SH_RY')" size="small" @click="createProcess(row)">审核</el-link>
<el-link type="primary" size="small" @click="opeshow(row)">详情</el-link>
<!-- <el-link type="primary" v-if="roleList.includes('BK_SH_RY')" size="small" @click="handleDetail(row,'审核')">审核</el-link> -->
</template>
</MyTable>
<Pages
@ -49,7 +52,14 @@
></Pages>
</div>
<Model v-model="isShow" :data="chooeRow" @change="getList" :dic="{D_BZ_RCSHZT}"></Model>
<Details ref="details"/>
</div>
<SubmissionProcess v-model="showSp" :data="rowData"
:userData="{ ajmc: '重点人员深度发掘审批', flowType: 'ZDRYSDFJDP',modelName:'重点人' }"
:path="fixedValue" @getList="getList" />
<Information v-model="showDialog" title="发送指令" @submit='submit' @close='close'>
<SemdFqzl ref="semdFqzlRef" :itemData="itemData" @handleClose="handleClose" identification="zdrfj" :tacitly="tacitly"/>
</Information>
</template>
<script setup>
@ -61,7 +71,10 @@ import Pages from "@/components/aboutTable/Pages.vue";
import Search from "@/components/aboutTable/Search.vue";
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
import SubmissionProcess from '@/components/flowPath/submissionProcess.vue'
import Details from './details.vue'
import Information from "@/views/home/model/information.vue";
import SemdFqzl from '@/components/instructionHasBeen/sendFqzl.vue'
const { proxy } = getCurrentInstance();
const { D_BZ_RCSHZT, D_GS_RQFJ_LX, D_GS_RQFJ_FXDJ, D_BZ_SF, D_GS_RQFJ_FXLB } =
proxy.$dict(
@ -115,9 +128,9 @@ const pageData = reactive({
pageSize: 20,
pageCurrent: 1
},
controlsWidth: 120,
controlsWidth: 240,
tableColumn: [
{ label: "姓名", prop: "ryXm",showOverflowTooltip:true ,showSolt: true},
{ label: "个人信息", prop: "ryXm",showOverflowTooltip:true ,showSolt: true},
{ label: "户籍地址", prop: "ryHjdz" ,showOverflowTooltip:true},
{ label: "护照号码", prop: "ryHzhm" ,showOverflowTooltip:true},
{ label: "现住地址", prop: "ryXzdz" ,showOverflowTooltip:true},
@ -184,6 +197,45 @@ const tabHeightFn = () => {
tabHeightFn();
};
};
// 审批流
// 固定值
const fixedValue = {
clueVerification:'focusExploration',
byMeansOf: 'tbGsxtRqfjRy/callback',
nobyMeansOf: 'tbGsxtRqfjRy/callback',
recycle:'tbGsxtRqfjRy/callback',
}
const showSp = ref(false);
const rowData = ref()
const createProcess = (row) => {
showSp.value = true;
rowData.value = row
}
const details=ref()
const opeshow = (row) => {
details.value.init(row)
}
//下发指令
const showDialog = ref(false)
const itemData = ref()
const semdFqzlRef=ref()
const handleClose = () => {
showDialog.value = false;
}
const showDetail = (item) => {
showDialog.value = true;
itemData.value=item
}
const submit=()=>{
semdFqzlRef.value.getsendFqzl()
}
const close = () => {
semdFqzlRef.value.close()
}
const tacitly = {
title:'ryXm'
}
</script>
<style lang="scss" scoped>