|
|
|
@ -2,11 +2,17 @@ |
|
|
|
<script setup> |
|
|
|
<script setup> |
|
|
|
|
|
|
|
|
|
|
|
import {warningPage, excelWarningList} from "@/api/warning/index"; |
|
|
|
import {warningPage, excelWarningList} from "@/api/warning/index"; |
|
|
|
|
|
|
|
import {auditRejectWarning} from "@/api/warning/business"; |
|
|
|
import {timeFormat} from "@/utils/util"; |
|
|
|
import {timeFormat} from "@/utils/util"; |
|
|
|
import {useRoute} from "vue-router"; |
|
|
|
import {useRoute} from "vue-router"; |
|
|
|
|
|
|
|
import feedback from "@/utils/feedback"; |
|
|
|
|
|
|
|
import finishDistrbute from '@/components/reportAudit/finishDistrbute.vue'; |
|
|
|
const route = useRoute() |
|
|
|
const route = useRoute() |
|
|
|
const loading =ref(false) |
|
|
|
const loading =ref(false) |
|
|
|
const exportLoading = ref(false) |
|
|
|
const exportLoading = ref(false) |
|
|
|
|
|
|
|
const batchRejectLoading = ref(false) |
|
|
|
|
|
|
|
const finishDialog = ref(false) |
|
|
|
|
|
|
|
const selectedRows = ref([]) |
|
|
|
const total =ref(10) |
|
|
|
const total =ref(10) |
|
|
|
const tableData =ref([]) |
|
|
|
const tableData =ref([]) |
|
|
|
const activeTab = ref(route.query.specialArea === 'cwlnt' ? 'cwlnt' : route.query.warningState === '1' ? '1' : '0') |
|
|
|
const activeTab = ref(route.query.specialArea === 'cwlnt' ? 'cwlnt' : route.query.warningState === '1' ? '1' : '0') |
|
|
|
@ -44,6 +50,44 @@ const reset =()=>{ |
|
|
|
getList(); |
|
|
|
getList(); |
|
|
|
} |
|
|
|
} |
|
|
|
const warningStateDisabled = computed(() => activeTab.value !== 'cwlnt' && activeTab.value !== 'all') |
|
|
|
const warningStateDisabled = computed(() => activeTab.value !== 'cwlnt' && activeTab.value !== 'all') |
|
|
|
|
|
|
|
const batchItems = computed(() => selectedRows.value.map(row => ({ |
|
|
|
|
|
|
|
reportId: row.id, |
|
|
|
|
|
|
|
flowId: row.flowId |
|
|
|
|
|
|
|
}))) |
|
|
|
|
|
|
|
const handleSelectionChange = (rows) => { |
|
|
|
|
|
|
|
selectedRows.value = rows |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
const selectable = (row) => Boolean(row.flowId) |
|
|
|
|
|
|
|
const handleBatchPass = () => { |
|
|
|
|
|
|
|
finishDialog.value = true |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
const handleBatchPassSuccess = () => { |
|
|
|
|
|
|
|
finishDialog.value = false |
|
|
|
|
|
|
|
selectedRows.value = [] |
|
|
|
|
|
|
|
getList() |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
const handleBatchReject = async () => { |
|
|
|
|
|
|
|
await feedback.confirm(`确定批量驳回选中的 ${selectedRows.value.length} 个项目吗?`) |
|
|
|
|
|
|
|
batchRejectLoading.value = true |
|
|
|
|
|
|
|
try { |
|
|
|
|
|
|
|
const results = await Promise.allSettled(selectedRows.value.map(row => auditRejectWarning({ |
|
|
|
|
|
|
|
flowId: row.flowId, |
|
|
|
|
|
|
|
reportId: row.id, |
|
|
|
|
|
|
|
approverMessage: '' |
|
|
|
|
|
|
|
}))) |
|
|
|
|
|
|
|
const successCount = results.filter(item => item.status === 'fulfilled').length |
|
|
|
|
|
|
|
const failCount = results.length - successCount |
|
|
|
|
|
|
|
if (failCount > 0) { |
|
|
|
|
|
|
|
feedback.msgError(`批量驳回完成:成功 ${successCount} 个,失败 ${failCount} 个`) |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
feedback.msgSuccess(`已批量驳回 ${successCount} 个项目`) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
selectedRows.value = [] |
|
|
|
|
|
|
|
getList() |
|
|
|
|
|
|
|
} finally { |
|
|
|
|
|
|
|
batchRejectLoading.value = false |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
const getList = async ()=>{ |
|
|
|
const getList = async ()=>{ |
|
|
|
loading.value=true |
|
|
|
loading.value=true |
|
|
|
const res = await warningPage(query.value) |
|
|
|
const res = await warningPage(query.value) |
|
|
|
@ -146,6 +190,19 @@ watch(()=>route.query.load,(val)=>{ |
|
|
|
</el-form> |
|
|
|
</el-form> |
|
|
|
<div class="flex end"> |
|
|
|
<div class="flex end"> |
|
|
|
<div> |
|
|
|
<div> |
|
|
|
|
|
|
|
<template v-if="activeTab === '2'"> |
|
|
|
|
|
|
|
<el-button |
|
|
|
|
|
|
|
type="success" |
|
|
|
|
|
|
|
:disabled="selectedRows.length === 0" |
|
|
|
|
|
|
|
@click="handleBatchPass" |
|
|
|
|
|
|
|
>批量通过</el-button> |
|
|
|
|
|
|
|
<el-button |
|
|
|
|
|
|
|
type="danger" |
|
|
|
|
|
|
|
:disabled="selectedRows.length === 0" |
|
|
|
|
|
|
|
:loading="batchRejectLoading" |
|
|
|
|
|
|
|
@click="handleBatchReject" |
|
|
|
|
|
|
|
>批量驳回</el-button> |
|
|
|
|
|
|
|
</template> |
|
|
|
<el-button type="primary" :loading="exportLoading" @click="handleExcel">导出</el-button> |
|
|
|
<el-button type="primary" :loading="exportLoading" @click="handleExcel">导出</el-button> |
|
|
|
<el-button type="primary" @click="getList"> |
|
|
|
<el-button type="primary" @click="getList"> |
|
|
|
<template #icon> |
|
|
|
<template #icon> |
|
|
|
@ -166,7 +223,13 @@ watch(()=>route.query.load,(val)=>{ |
|
|
|
<el-tab-pane label="已预警" name="1"></el-tab-pane> |
|
|
|
<el-tab-pane label="已预警" name="1"></el-tab-pane> |
|
|
|
<el-tab-pane label="长望浏宁" name="cwlnt"></el-tab-pane> |
|
|
|
<el-tab-pane label="长望浏宁" name="cwlnt"></el-tab-pane> |
|
|
|
</el-tabs> |
|
|
|
</el-tabs> |
|
|
|
<el-table :data="tableData"> |
|
|
|
<el-table :data="tableData" @selection-change="handleSelectionChange"> |
|
|
|
|
|
|
|
<el-table-column |
|
|
|
|
|
|
|
v-if="activeTab === '2'" |
|
|
|
|
|
|
|
type="selection" |
|
|
|
|
|
|
|
width="50" |
|
|
|
|
|
|
|
:selectable="selectable" |
|
|
|
|
|
|
|
/> |
|
|
|
<el-table-column label="项目名称" prop="reportName" width="200" /> |
|
|
|
<el-table-column label="项目名称" prop="reportName" width="200" /> |
|
|
|
<el-table-column |
|
|
|
<el-table-column |
|
|
|
label="报审类型" |
|
|
|
label="报审类型" |
|
|
|
@ -294,6 +357,15 @@ watch(()=>route.query.load,(val)=>{ |
|
|
|
<p> |
|
|
|
<p> |
|
|
|
列表根据权限范围,展示涉及的可预警项目,针对项目进行问题预警、报审单位签收。 |
|
|
|
列表根据权限范围,展示涉及的可预警项目,针对项目进行问题预警、报审单位签收。 |
|
|
|
</p> |
|
|
|
</p> |
|
|
|
|
|
|
|
<finish-distrbute |
|
|
|
|
|
|
|
v-if="finishDialog" |
|
|
|
|
|
|
|
@submitFeedback="handleBatchPassSuccess" |
|
|
|
|
|
|
|
@closeFun="finishDialog = false" |
|
|
|
|
|
|
|
:isWarning="true" |
|
|
|
|
|
|
|
:batchItems="batchItems" |
|
|
|
|
|
|
|
:dialog="finishDialog" |
|
|
|
|
|
|
|
:nextNode="'end'" |
|
|
|
|
|
|
|
/> |
|
|
|
</el-main> |
|
|
|
</el-main> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
|