Browse Source

fit:1、局长信箱补充了信访详情2、督察任务补充加载状态 重点督察人员前端列表强制加载

main
pengwei 4 months ago
parent
commit
dfb716cbf7
  1. 53
      src/views/data/Mailbox.vue
  2. 295
      src/views/mobileSupervise/Inspection.vue

53
src/views/data/Mailbox.vue

@ -119,12 +119,19 @@
<el-table-column label="操作" width="200">
<template #default="{ row }">
<el-button
v-if="row.checkStatus != 3"
v-if=" row.checkStatus && row.checkStatus != 3"
type="primary"
link
@click="handleAction(row)"
>问题详情</el-button
>
<el-button
v-else
type="primary"
link
@click="handleDetailRow(row)"
>问题详情</el-button
>
</template>
</el-table-column>
</el-table>
@ -143,6 +150,41 @@
</div>
</div>
<el-dialog v-model="detailShow" title="信访详情" width="50vw">
<el-row :gutter="20" tyle="margin-top: 20px">
<el-col :span="12" >
<label>反映人姓名:</label> {{actionRow.responderName}}
</el-col>
<el-col :span="12">
<label>反映人联系方式</label>{{actionRow.contactPhone}}
</el-col>
</el-row>
<el-row :gutter="20" style="margin-top: 20px">
<el-col :span="12">
<label>核查情况:</label> {{actionRow.checkStatusName}}
</el-col>
<el-col :span="12" >
<label>业务类别</label>{{actionRow.businessTypeName}}
</el-col>
</el-row>
<el-row :gutter="20" style="margin-top: 20px">
<el-col :span="12">
<label>问题发生时间</label>{{actionRow.crtTime}}
</el-col>
</el-row>
<el-row :gutter="20" style="margin-top: 20px">
<el-col >
<label>反映人内容:</label> {{actionRow.thingDesc}}
</el-col>
</el-row>
<el-row :gutter="20" style="margin-top: 20px">
<el-col >
<label>核查情况内容:</label> {{actionRow.checkStatusDesc}}
</el-col>
</el-row>
</el-dialog>
<negative-dialog
v-model="show"
:id="activeNegativeId"
@ -209,6 +251,7 @@ import { getDictLable, getYearTime} from "@/utils/util";
import useCatchStore from "@/stores/modules/catch";
import {replenishInvolvedIssueDataFun} from "@/api/data/dataThread";
import {BASE_PATH} from "@/api/request";
import Dialog from "../../components/comfort/dialog.vue";
const route = useRoute()
const catchStore = useCatchStore();
const dict = catchStore.getDicts(["distributionState"]);
@ -221,6 +264,13 @@ const query = ref({
const list = ref([]);
const total = ref(0);
const detailShow = ref(false)
const actionRow = ref({})
const handleDetailRow = (row)=>{
actionRow.value=row
detailShow.value=true
}
//
// watch(()=>route.query.toString(),
@ -264,7 +314,6 @@ const fileList = ref([])
* 涉及问题导入
* */
function handleInvolvedIssue(){
console.log('involvedIssueShow',involvedIssueShow.value)
involvedIssueShow.value=true;
}
const handleInvolvedIssueNext =async ()=>{

295
src/views/mobileSupervise/Inspection.vue

@ -147,9 +147,9 @@
</div>
<!--任务发布-->
<el-dialog title="发布任务" @close="addColse" v-model="show" width="80vw" top="5vh"
style="margin-bottom: 0" v-loading="editLoading"
style="margin-bottom: 0"
>
<el-scrollbar max-height="76vh">
<el-scrollbar max-height="76vh" v-loading="editLoading">
<el-form
:label-width="150"
ref="formRef"
@ -643,10 +643,10 @@
</footer>
</el-dialog>
<!--任务发布详情-->
<el-dialog v-model="detailShow" title="发布任务详情" width="1076px" v-loading="detailLoading"
<el-dialog v-model="detailShow" title="发布任务详情" width="1076px"
top="5vh"
style="margin-bottom: 0">
<el-scrollbar max-height="76vh">
<el-scrollbar max-height="76vh" v-loading="detailLoading">
<el-form
:label-width="150"
ref="formRef"
@ -1535,141 +1535,143 @@
</div>
</el-dialog>
<!-- 重点人员督察情况-->
<el-dialog title="重点人员督察情况" v-model="superviseRiskShow" width="80vw" style="min-height:80vh">
<el-form>
<el-row :gutter="20">
<el-col :span="6">
<el-input v-model="riskPersonalQuery.name" placeholder="请输入姓名或身份证、手机号" clearable />
</el-col>
<el-col :span="6">
<el-select v-model="riskPersonalQuery.personalType" placeholder="请选择人员类别" clearable>
<el-option v-for="(item,index) in dict.controlType"
:key="index"
:label="item.dictLabel"
:value="item.dictValue"/>
</el-select>
</el-col>
<el-col :span="6">
<el-select placeholder="管控级别" clearable v-model="riskPersonalQuery.controlLevel">
<el-option v-for="(item,index) in dict.controlLevel"
:key="index"
:label="item.dictLabel"
:value="item.dictValue"
></el-option>
</el-select>
</el-col>
<el-col :span="6">
<el-input size="default" placeholder="管控间隔" v-model="riskPersonalQuery.controlTimeInterval" />
</el-col>
</el-row>
<el-row style="margin-top:20px" :gutter="20">
<el-col :span="6" >
<depart-tree-select :size="'default'" placeholder="责任单位" v-model="riskPersonalQuery.responsibleDepartId" clearable/>
</el-col>
<el-col :span="6">
<el-input placeholder="责任民警" clearable v-model="riskPersonalQuery.responsibleName"></el-input>
</el-col>
<el-col :span="6">
<el-select placeholder="督察状态" v-model="riskPersonalQuery.supStatus" clearable>
<el-option label="在控" value="在控"></el-option>
<el-option label="失控" value="失控"></el-option>
<el-option label="无法确认" value="无法确认"></el-option>
</el-select>
</el-col>
</el-row>
</el-form>
<div class="flex end" style="margin: 10px 0">
<el-button type="primary" @click="getSuperviseTable" >
<template #icon>
<icon name="el-icon-Search"/>
</template>
查询
</el-button
>
</div>
<el-row>
<el-table :data="riskDataCards" @row-click="row=>handSupRiskCard(row)">
<el-table-column label="姓名" prop="name" width="120">
<template #default="{row}">
<div style="display:flex;align-items: center;justify-content: space-around">
<el-avatar style="height: 60px;width: 60px " shape="square" :size="100" :fit="`fit`"
:src="row.imgBase64"/>
<div >{{row.name}}</div>
</div>
</template>
</el-table-column>
<el-table-column label="性别" prop="gender" width="40"></el-table-column>
<el-table-column label="身份证号" prop="idCode" width="120"></el-table-column>
<el-table-column label="联系方式" prop="mobile"></el-table-column>
<el-table-column label="人员类别" prop="personalType"></el-table-column>
<el-table-column label="管控级别" prop="controlLevel"></el-table-column>
<el-table-column label="管控间隔" prop="controlTimeInterval"></el-table-column>
<el-table-column label="责任单位" prop="responsibleDepartName"></el-table-column>
<el-table-column label="责任民警" prop="responsibleName"></el-table-column>
<el-table-column label="督察状态" prop="supStatus">
<template #default="{row}">
<el-tag type="danger" v-if="row.supStatus == '失控'">{{row.supStatus}}</el-tag>
<el-tag type="primary" v-if="row.supStatus == '在控'">{{row.supStatus}}</el-tag>
<el-tag type="info" v-if="row.supStatus == '无法确认'">{{row.supStatus}}</el-tag>
</template>
</el-table-column>
</el-table>
<div class="flex end mt-8">
<el-pagination
@size-change="getSuperviseTable"
@current-change="getSuperviseTable"
:page-sizes="[10, 20, 50]"
v-model:page-size="riskPersonalQuery.size"
v-model:current-page="riskPersonalQuery.current"
layout="total, sizes, prev, pager, next"
:total="riskPersonalTotal"
>
</el-pagination>
</div>
</el-row>
<el-row>
<el-table ref="taskSupDataTable" :preserve-expanded-content="preserveExpanded" :data="taskSupData" v-loading="taskLoading">
<el-table-column type="expand">
<template #default="props">
<div >
<p >督察时间: {{ props.row.supTime }}</p>
<p>督察状态: {{ props.row.supStatus }}</p>
<p >督察方式: {{ props.row.supType }}</p>
<p>督察情况: {{props.row.supDesc}}</p>
<p>附件</p>
<file-list v-model:files="props.row.fileVoList" :removeEnable="false" />
</div>
</template>
</el-table-column>
<el-table-column label="督察时间" prop="supTime"></el-table-column>
<el-table-column label="督察状态" prop="supStatus">
<template #default="{row}">
<el-tag type="danger" v-if="row.supStatus == '失控'">{{row.supStatus}}</el-tag>
<el-tag type="primary" v-if="row.supStatus == '在控'">{{row.supStatus}}</el-tag>
<el-tag type="info" v-if="row.supStatus == '无法确认'">{{row.supStatus}}</el-tag>
</template>
</el-table-column>
<el-table-column label="督察方式" prop="supType"></el-table-column>
<el-table-column label="督察情况" prop="supDesc"></el-table-column>
<el-table-column label="操作">
<template #default="{row}">
<el-button v-if="row.supStatus != '在控'" @click="issueMatterFun(row,'risk_personal')" type="primary" link>下发</el-button>
<el-dialog title="重点人员督察情况" v-model="superviseRiskShow" width="80vw" style="min-height:80vh" >
<div v-loading="riskPersonalLoading">
<el-form >
<el-row :gutter="20">
<el-col :span="6">
<el-input v-model="riskPersonalQuery.name" placeholder="请输入姓名或身份证、手机号" clearable />
</el-col>
<el-col :span="6">
<el-select v-model="riskPersonalQuery.personalType" placeholder="请选择人员类别" clearable>
<el-option v-for="(item,index) in dict.controlType"
:key="index"
:label="item.dictLabel"
:value="item.dictValue"/>
</el-select>
</el-col>
<el-col :span="6">
<el-select placeholder="管控级别" clearable v-model="riskPersonalQuery.controlLevel">
<el-option v-for="(item,index) in dict.controlLevel"
:key="index"
:label="item.dictLabel"
:value="item.dictValue"
></el-option>
</el-select>
</el-col>
<el-col :span="6">
<el-input size="default" placeholder="管控间隔" v-model="riskPersonalQuery.controlTimeInterval" />
</el-col>
</el-row>
<el-row style="margin-top:20px" :gutter="20">
<el-col :span="6" >
<depart-tree-select :size="'default'" placeholder="责任单位" v-model="riskPersonalQuery.responsibleDepartId" clearable/>
</el-col>
<el-col :span="6">
<el-input placeholder="责任民警" clearable v-model="riskPersonalQuery.responsibleName"></el-input>
</el-col>
<el-col :span="6">
<el-select placeholder="督察状态" v-model="riskPersonalQuery.supStatus" clearable>
<el-option label="在控" value="在控"></el-option>
<el-option label="失控" value="失控"></el-option>
<el-option label="无法确认" value="无法确认"></el-option>
</el-select>
</el-col>
</el-row>
</el-form>
<div class="flex end" style="margin: 10px 0">
<el-button type="primary" @click="getSuperviseTable" >
<template #icon>
<icon name="el-icon-Search"/>
</template>
</el-table-column>
</el-table>
<div class="flex end mt-8">
<el-pagination
@size-change="getTaskSupDataFun"
@current-change="getTaskSupDataFun"
:page-sizes="[10, 20, 50]"
v-model:page-size="taskSupQuery.size"
v-model:current-page="taskSupQuery.current"
layout="total, sizes, prev, pager, next"
:total="taskSupTotal"
查询
</el-button
>
</el-pagination>
</div>
</el-row>
<el-row>
<el-table :data="riskDataCards" @row-click="row=>handSupRiskCard(row)">
<el-table-column label="姓名" prop="name" width="120">
<template #default="{row}">
<div style="display:flex;align-items: center;justify-content: space-around">
<el-avatar style="height: 60px;width: 60px " shape="square" :size="100" :fit="`fit`"
:src="row.imgBase64"/>
<div >{{row.name}}</div>
</div>
</template>
</el-table-column>
<el-table-column label="性别" prop="gender" width="40"></el-table-column>
<el-table-column label="身份证号" prop="idCode" width="120"></el-table-column>
<el-table-column label="联系方式" prop="mobile"></el-table-column>
<el-table-column label="人员类别" prop="personalType"></el-table-column>
<el-table-column label="管控级别" prop="controlLevel"></el-table-column>
<el-table-column label="管控间隔" prop="controlTimeInterval"></el-table-column>
<el-table-column label="责任单位" prop="responsibleDepartName"></el-table-column>
<el-table-column label="责任民警" prop="responsibleName"></el-table-column>
<el-table-column label="督察状态" prop="supStatus">
<template #default="{row}">
<el-tag type="danger" v-if="row.supStatus == '失控'">{{row.supStatus}}</el-tag>
<el-tag type="primary" v-if="row.supStatus == '在控'">{{row.supStatus}}</el-tag>
<el-tag type="info" v-if="row.supStatus == '无法确认'">{{row.supStatus}}</el-tag>
</template>
</el-table-column>
</el-table>
<div class="flex end mt-8">
<el-pagination
@size-change="getSuperviseTable"
@current-change="getSuperviseTable"
:page-sizes="[10, 20, 50]"
v-model:page-size="riskPersonalQuery.size"
v-model:current-page="riskPersonalQuery.current"
layout="total, sizes, prev, pager, next"
:total="riskPersonalTotal"
>
</el-pagination>
</div>
</el-row>
<el-row>
<el-table ref="taskSupDataTable" :preserve-expanded-content="preserveExpanded" :data="taskSupData" v-loading="taskLoading">
<el-table-column type="expand">
<template #default="props">
<div >
<p >督察时间: {{ props.row.supTime }}</p>
<p>督察状态: {{ props.row.supStatus }}</p>
<p >督察方式: {{ props.row.supType }}</p>
<p>督察情况: {{props.row.supDesc}}</p>
<p>附件</p>
<file-list v-model:files="props.row.fileVoList" :removeEnable="false" />
</div>
</template>
</el-table-column>
<el-table-column label="督察时间" prop="supTime"></el-table-column>
<el-table-column label="督察状态" prop="supStatus">
<template #default="{row}">
<el-tag type="danger" v-if="row.supStatus == '失控'">{{row.supStatus}}</el-tag>
<el-tag type="primary" v-if="row.supStatus == '在控'">{{row.supStatus}}</el-tag>
<el-tag type="info" v-if="row.supStatus == '无法确认'">{{row.supStatus}}</el-tag>
</template>
</el-table-column>
<el-table-column label="督察方式" prop="supType"></el-table-column>
<el-table-column label="督察情况" prop="supDesc"></el-table-column>
<el-table-column label="操作">
<template #default="{row}">
<el-button v-if="row.supStatus != '在控'" @click="issueMatterFun(row,'risk_personal')" type="primary" link>下发</el-button>
</template>
</el-table-column>
</el-table>
<div class="flex end mt-8">
<el-pagination
@size-change="getTaskSupDataFun"
@current-change="getTaskSupDataFun"
:page-sizes="[10, 20, 50]"
v-model:page-size="taskSupQuery.size"
v-model:current-page="taskSupQuery.current"
layout="total, sizes, prev, pager, next"
:total="taskSupTotal"
>
</el-pagination>
</div>
</el-row>
</div>
</el-dialog>
<el-dialog title="任务分发" v-model="distributeShow" width="50vw" top="2vh" style="margin-bottom: 0">
@ -1982,7 +1984,6 @@ async function submit() {
if(form.value.files ){
delete form.value.files
}
console.log('form.value',form.value)
await addTaskManagement(form.value)
feedback.msgSuccess("发布成功");
show.value = false;
@ -2039,12 +2040,11 @@ const activeRow = ref({
const editLoading = ref(false)
const editTable =async (row)=>{
console.log('row',row.taskType)
show.value = true;
editLoading.value = true;
try {
const res = await getTaskManagementDetail(row.id);
console.log('res',res)
form.value = res;
if(res.files){
form.value.files = JSON.parse(res.files)
@ -2157,6 +2157,7 @@ const SupRiskProgress = () => {
const superviseRiskShow = ref(false);
const superviseRiskLoading =ref(false);
const taskSupQuery = ref({
current: 1,
size: 10,
@ -2190,6 +2191,8 @@ const getSuperviseTable = async ()=>{
}
const showSupervise = async (row) => {
superviseRiskShow.value = true;
riskPersonalLoading.value=true;
riskPersonalQuery.value.id = row.id;
const res = await getRiskPersonalPage(riskPersonalQuery.value);
//
@ -2205,7 +2208,7 @@ const showSupervise = async (row) => {
}else{
taskSupData.value = null;
}
superviseRiskShow.value = true;
riskPersonalLoading.value=false;
}
/**
* 获取重点人员督察记录列表
@ -2244,7 +2247,6 @@ const getRiskDataTableSubmit = () => {
//
if (riskDataQuery.value.controlLevel) {
filterDataTable.value = filterDataTable.value.filter(s => s.controlLevel.includes(riskDataQuery.value.controlLevel));
console.log('filterDataTable', filterDataTable.value)
}
if (riskDataQuery.value.keyword) {
filterDataTable.value = filterDataTable.value.filter(s => s.name.includes(riskDataQuery.value.keyword) || s.idCode.includes(riskDataQuery.value.keyword) || s.mobile.includes(riskDataQuery.value.keyword));
@ -2258,8 +2260,11 @@ const getRiskDataTableSubmit = () => {
if (riskDataQuery.value.controlName) {
filterDataTable.value = filterDataTable.value.filter(s => s.controlName.includes(riskDataQuery.value.controlName));
}
riskDataTotal.value = filterDataTable.value.length;
riskDataTable.value = filterDataTable.value.slice(startValue.value, endValue.value);
nextTick(()=>{
riskDataTotal.value = filterDataTable.value.length;
riskDataTable.value = filterDataTable.value.slice(startValue.value, endValue.value);
})
}
/**
* 删除重点督察人员数据
@ -2267,7 +2272,6 @@ const getRiskDataTableSubmit = () => {
const delriskData = (row) => {
nextTick(() => {
form.value.supRiskDtoList = form.value.supRiskDtoList.filter(s => s.idCode !== row.idCode);
console.log('form.value.supRiskDtoList', form.value.supRiskDtoList)
})
}
@ -2345,7 +2349,6 @@ const selfProblemTotal = ref(0);
const handleSelfProblemShow = (row) => {
selfProblemsShow.value = true;
selfPeopleQuery.value.id = row.id;
console.log('selfPeopleQuery.value.id',selfPeopleQuery.value.id)
getSelfexaminationProblemFun();
}
@ -2353,7 +2356,6 @@ const handleSelfProblemShow = (row) => {
async function getSelfexaminationProblemFun() {
problemLoading.value = true;
try {
console.log('selfPeopleQuery.value.id',selfPeopleQuery.value.id)
const res = await getSelfexaminationProblem(selfPeopleQuery.value.id, selfPeopleQuery.value);
selfProblemList.value = res.records;
selfProblemTotal.value = res.total;
@ -2393,7 +2395,6 @@ function getProblems() {
listInspectionProblems(activeRow.value.id).then((data) => {
problems.value = data.records;
problemTotal.value=data.total;
console.log('problems.value',data.records)
});
}

Loading…
Cancel
Save