Browse Source

Merge remote-tracking branch 'origin/master'

main
不爱学习的石同学 11 months ago
parent
commit
b9565ab289
  1. 6
      src/api/data/videoInspection.ts
  2. 7
      src/components/home/work/index.vue
  3. 8
      src/components/negative/description.vue
  4. 1927
      src/components/negative/verify.vue
  5. 4
      src/enums/dictEnums.ts
  6. 8
      src/views/books/Ajhc.vue
  7. 3
      src/views/books/Gabxf.vue
  8. 2
      src/views/books/Gjxf.vue
  9. 165
      src/views/data/VideoInspection.vue
  10. 243
      src/views/system/DepartMaping.vue
  11. 5
      src/views/system/ProblemMaping.vue
  12. 5
      src/views/work/VerifySubmit.vue

6
src/api/data/videoInspection.ts

@ -5,4 +5,10 @@ export function listVideoInspection(query) {
url: `/videoInspection`,
query: query
});
}
export function getVideoInspectionInfo(id) {
return request.get({
url: `/videoInspection/${id}`
});
}

7
src/components/home/work/index.vue

@ -39,7 +39,7 @@
</el-badge>
<span class="tab-nav-title" v-else>通知提醒</span>
</template>
<div v-loading="loading" class="pt-20">
<div v-loading="alarmLoading" class="pt-20">
<home-work-my-alarm :data="alarms" @update="getAlarmList" />
</div>
</el-tab-pane>
@ -73,15 +73,16 @@ function getList() {
});
}
const alarmLoading = ref(true)
function getAlarmList() {
loading.value = true
alarmLoading.value = true
alarmNotificationPageByTodo({
current: 1,
size: 100,
}).then((data) => {
alarms.value = data.records;
myAlarmTotal.value = data.total
loading.value = false
alarmLoading.value = false
});
}

8
src/components/negative/description.vue

@ -10,9 +10,9 @@
<label>问题发现时间</label>
<span>{{ negative.discoveryTime }}</span>
</div>
<div class="col col-6">
<div class="col col-6" v-if="negative.happenTime">
<label>问题发生时间</label>
<span>{{ negative.happenTime || '/' }}</span>
<span>{{ negative.happenTime }}</span>
</div>
<div class="col col-6">
<label>问题来源</label>
@ -52,9 +52,9 @@
</div>
</div>
<div class="row">
<div class="col col-12">
<div class="col col-12" v-if="negative.caseNumber">
<label>案件/警情编号</label>
<span>{{ negative.caseNumber || '/' }}</span>
<span>{{ negative.caseNumber }}</span>
</div>
<div class="col col-12">
<label>涉及单位</label>

1927
src/components/negative/verify.vue

File diff suppressed because it is too large Load Diff

4
src/enums/dictEnums.ts

@ -6,7 +6,9 @@ export enum InspectCase {
// 部分属实
PARTIALLY_TRUE = '2',
// 不属实
FALSE = '3'
FALSE = '3',
// 无法办理
UNABLE = '4'
}
// 是否整改

8
src/views/books/Ajhc.vue

@ -61,7 +61,9 @@
</el-form>
<div class="mb-25 flex between">
<div>
<el-button type="primary" @click="handleExport"
>数据导出</el-button
>
</div>
<div>
<el-button type="primary" @click="getList">
@ -204,6 +206,10 @@ function handleAction(row) {
show.value = true;
activeNegativeId.value = row.id;
}
function handleExport() {
window.open(`${BASE_PATH}/negative/books/export/ajhc?` + new URLSearchParams(query.value).toString())
}
</script>
<style lang="scss" scoped>
</style>

3
src/views/books/Gabxf.vue

@ -314,7 +314,8 @@ function handleAction(row) {
}
function handleExport() {
window.open(`${BASE_PATH}/negative/books/export/xf/${ProblemSources.GABXF}`)
window.open(`${BASE_PATH}/negative/books/export/xf/${ProblemSources.GABXF}?` + new URLSearchParams(query.value).toString())
}
</script>
<style lang="scss" scoped>

2
src/views/books/Gjxf.vue

@ -314,7 +314,7 @@ function handleAction(row) {
}
function handleExport() {
window.open(`${BASE_PATH}/negative/books/export/xf/${ProblemSources.GABXF}`)
window.open(`${BASE_PATH}/negative/books/export/xf/${ProblemSources.GABXF}?` + new URLSearchParams(query.value).toString())
}
</script>
<style lang="scss" scoped>

165
src/views/data/VideoInspection.vue

@ -61,7 +61,9 @@
</el-table-column>
<el-table-column label="操作" width="160">
<template #default="{ row }">
<el-button type="primary" link>查看详情</el-button>
<el-button type="primary" link @click="handleShowInfo(row)"
>查看详情</el-button
>
</template>
</el-table-column>
</el-table>
@ -80,54 +82,98 @@
</div>
</div>
<el-dialog title="视频督察详情" v-model="show" width="80vw">
<div class="row">
<div class="col col-6">
<label>预警时间</label>
<span>{{ }}</span>
</div>
<div class="col col-6">
<label>预警级别</label>
<span>{{ }}</span>
</div>
<div class="col col-6">
<label>预警开始时间</label>
<span>{{ }}</span>
</div>
<div class="col col-6">
<label>预警结束时间</label>
<span>{{ }}</span>
</div>
<div class="col col-12">
<label>登记单位</label>
<span>{{ }}</span>
</div>
<div class="col col-12">
<label>发生单位</label>
<span>{{ }}</span>
</div>
<div class="col col-24">
<label>督察方式</label>
<span>{{ }}</span>
</div>
<div class="col col-24">
<label>督察方式</label>
<span>{{ }}</span>
</div>
<div class="col col-24">
<label>预警名称</label>
<span>{{ }}</span>
</div>
<div class="col col-24">
<label>预警标题</label>
<span>{{ }}</span>
<el-dialog
title="视频督察详情"
v-model="show"
width="80vw"
top="2vh"
style="margin-bottom: 0"
v-loading="infoLoading"
>
<div class="top-container" >
<div class="row">
<div class="col col-6">
<label>预警时间</label>
<span>{{ info.rqsj }}</span>
</div>
<div class="col col-6">
<label>预警级别</label>
<span>{{ info.alarmLevel }}</span>
</div>
<div class="col col-12">
<label>登记单位</label>
<span>{{ info.registrationDepartName }}</span>
</div>
<div class="col col-12">
<label>发生单位</label>
<span>{{ info.happenDepartName }}</span>
</div>
<div class="col col-24">
<label>督察方式</label>
<span>{{ info.systemKeyName }}</span>
</div>
<div class="col col-24">
<label>预警项名称</label>
<span>{{ info.sTitle }}</span>
</div>
<div class="col col-24">
<label>预警标题</label>
<span>{{ info.title }}</span>
</div>
<div class="col col-24">
<label>简要情况</label>
<span
>{{ info.content }}</span
>
</div>
</div>
</div>
<el-row>
<el-col :span="5">
<h5
class="text-center text-bold"
style="margin-bottom: 8px; margin-top: 8px"
>
证据图片时间
</h5>
<el-scrollbar max-height="500px">
<div class="img-item pointer" v-for="item in info.zlList" :key="item" @click="activeZl = item" :active="activeZl.id === item.id">{{ item.dmtbzrqsj }}</div>
</el-scrollbar>
</el-col>
<el-col :span="19">
<el-scrollbar height="560px">
<div class="row">
<div class="col col-24">
<label>预警项名称</label>
<span>{{ info.sTitle }}</span>
</div>
<div class="col col-24">
<label>发生单位</label>
<span>{{ info.happenDepartName }}</span>
</div>
<div class="col col-24">
<label>预警时间</label>
<span>{{ activeZl.dmtbzrqsj }}</span>
</div>
</div>
<div>
<img
style="width: 100%"
:src="activeZl.dzwjwz"
alt=""
/>
</div>
</el-scrollbar>
</el-col>
</el-row>
</el-dialog>
</template>
<script setup>
import { listVideoInspection } from "@/api/data/videoInspection";
import {
listVideoInspection,
getVideoInspectionInfo,
} from "@/api/data/videoInspection";
import feedback from "@/utils/feedback";
const query = ref({
current: 1,
@ -156,6 +202,35 @@ function reset() {
}
const show = ref(false);
const infoLoading = ref(false);
const info = ref({})
const activeZl = ref({})
async function handleShowInfo(row) {
infoLoading.value = true
show.value = true;
info.value = await getVideoInspectionInfo(row.id);
if (info.value.zlList.length > 0) {
activeZl.value = info.value.zlList[0]
} else {
activeZl.value = {}
}
infoLoading.value = false
}
</script>
<style scoped>
<style scoped lang="scss">
.top-container {
border-bottom: 1px solid #e9ebfd;
margin-bottom: 20px;
}
.img-item {
height: 32px;
line-height: 32px;
padding-left: 20px;
font-size: 12px;
&:hover, &[active=true] {
background: #e1e5ff;
}
}
</style>

243
src/views/system/DepartMaping.vue

@ -1,9 +1,13 @@
<template>
<div class="container">
<el-tabs v-model="activeName" type="card">
<el-tab-pane label="情指行" name="情指行"> </el-tab-pane>
<el-tab-pane label="重点人员" name="重点人员"> </el-tab-pane>
<el-tab-pane label="民意感知" name="民意感知"> </el-tab-pane>
<el-tab-pane
v-for="item in sources"
:key="item"
:label="item.label"
:name="item.value"
>
</el-tab-pane>
</el-tabs>
<header>
<el-row>
@ -75,141 +79,70 @@
</div>
</header>
<p></p>
<el-tabs v-model="activeMaping">
<el-tab-pane label="全部" name="all">
<div class="table-container">
<el-table :data="list">
<el-table-column
:label="`${activeName}单位编码`"
prop="externalId"
width="150"
/>
<el-table-column
:label="`${activeName}单位名称`"
prop="externalName"
/>
<el-table-column
label="数字督察单位"
prop="internalName"
/>
<el-table-column
label="单位层级"
prop="level"
width="100"
align="center"
>
<template #default="{ row }">
<span v-if="row.level === 2">二级单位</span>
<span v-if="row.level === 3">三级单位</span>
<span v-if="row.level === 4">四级单位</span>
</template>
</el-table-column>
<el-table-column
label="最后修改时间"
prop="updateTime"
width="160"
/>
<el-table-column label="操作" width="160">
<template #default="{ row }">
<el-button
type="primary"
link
@click="handleEdit(row)"
>编辑</el-button
>
<el-button
type="danger"
link
@click="handleDel(row)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</div>
<div class="flex end mt-8">
<el-pagination
@size-change="getList"
@current-change="getList"
:page-sizes="[10, 20, 50]"
v-model:page-size="query.size"
v-model:current-page="query.current"
layout="total, sizes, prev, pager, next"
:total="total"
>
</el-pagination>
</div>
</el-tab-pane>
<el-tabs v-model="query.activeMaping" @tab-change="getList">
<el-tab-pane label="全部" name="all"></el-tab-pane>
<el-tab-pane label="未映射" name="noMaping">
<template #label>
<el-badge :value="0">
<el-badge :value="noMapingTotal" v-if="noMapingTotal > 0">
<span>未映射</span>
</el-badge>
<span v-else>未映射</span>
</template>
<div class="table-container">
<el-table :data="list">
<el-table-column
:label="`${activeName}单位编码`"
prop="externalId"
width="150"
/>
<el-table-column
:label="`${activeName}单位名称`"
prop="externalName"
/>
<el-table-column
label="数字督察单位"
prop="internalName"
/>
<el-table-column
label="单位层级"
prop="level"
width="100"
align="center"
>
<template #default="{ row }">
<span v-if="row.level === 2">二级单位</span>
<span v-if="row.level === 3">三级单位</span>
<span v-if="row.level === 4">四级单位</span>
</template>
</el-table-column>
<el-table-column
label="最后修改时间"
prop="updateTime"
width="160"
/>
<el-table-column label="操作" width="160">
<template #default="{ row }">
<el-button
type="primary"
link
@click="handleEdit(row)"
>编辑</el-button
>
<el-button
type="danger"
link
@click="handleDel(row)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</div>
<div class="flex end mt-8">
<el-pagination
@size-change="getList"
@current-change="getList"
:page-sizes="[10, 20, 50]"
v-model:page-size="query.size"
v-model:current-page="query.current"
layout="total, sizes, prev, pager, next"
:total="total"
>
</el-pagination>
</div>
</el-tab-pane>
</el-tabs>
<div class="table-container" v-loading="loading">
<el-table :data="list">
<el-table-column
:label="`${activeName}单位编码`"
prop="externalId"
width="150"
/>
<el-table-column
:label="`${activeName}单位名称`"
prop="externalName"
/>
<el-table-column label="数字督察单位" prop="internalName" />
<el-table-column
label="单位层级"
prop="level"
width="100"
align="center"
>
<template #default="{ row }">
<span v-if="row.level === 2">二级单位</span>
<span v-if="row.level === 3">三级单位</span>
<span v-if="row.level === 4">四级单位</span>
</template>
</el-table-column>
<el-table-column
label="最后修改时间"
prop="updateTime"
width="160"
/>
<el-table-column label="操作" width="160">
<template #default="{ row }">
<el-button type="primary" link @click="handleEdit(row)"
>编辑</el-button
>
<el-button type="danger" link @click="handleDel(row)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</div>
<div class="flex end mt-8">
<el-pagination
@size-change="getList"
@current-change="getList"
:page-sizes="[10, 20, 50]"
v-model:page-size="query.size"
v-model:current-page="query.current"
layout="total, sizes, prev, pager, next"
:total="total"
>
</el-pagination>
</div>
</div>
<el-dialog
@ -232,9 +165,12 @@
clearable
style="width: 280px"
>
<el-option label="情指行" value="情指行"></el-option>
<el-option label="重点人员" value="重点人员"></el-option>
<el-option label="民意感知" value="民意感知"></el-option>
<el-option
v-for="item in sources"
:key="item"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
@ -272,11 +208,6 @@
<el-form-item
label="数字督察单位"
prop="internalId"
:rules="{
required: true,
message: '请选择',
trigger: ['blur'],
}"
>
<depart-tree-select
v-model="formData.internalId"
@ -301,19 +232,48 @@ import {
delDepartMaping,
} from "@/api/system/departMaping";
import feedback from "@/utils/feedback";
const activeName = ref("情指行");
const activeMaping = ref("all");
const sources = [
{
value: "情指行",
label: "情指行",
},
{
value: "重点人员",
label: "重点人员",
},
{
value: "民意感知",
label: "民意感知",
},
{
value: "局长信箱",
label: "局长信箱",
},
];
const activeName = ref(sources[0].value);
const query = ref({
current: 1,
size: 10,
activeMaping: 'all'
});
const list = ref([]);
const total = ref(0);
const loading = ref(true)
const noMapingTotal = ref(0)
function getList() {
loading.value = true
listDepartMaping(activeName.value, query.value).then((data) => {
list.value = data.records;
total.value = data.total;
loading.value = false
});
listDepartMaping(activeName.value, {
activeMaping: 'noMaping'
}).then((data) => {
noMapingTotal.value = data.total;
});
}
@ -321,6 +281,7 @@ function reset() {
query.value = {
current: 1,
size: 10,
activeMaping: 'all'
};
getList();
}

5
src/views/system/ProblemMaping.vue

@ -108,11 +108,6 @@
<el-form-item
label="数字督察问题类型"
prop="internalId"
:rules="{
required: true,
message: '请选择',
trigger: ['blur'],
}"
>
<problem-type-select
v-model="formData.internalId"

5
src/views/work/VerifySubmit.vue

@ -1518,7 +1518,7 @@ import { setToken } from "@/utils/token";
const route = useRoute();
const router = useRouter();
if (!route.query.outerId) {
if (!route.query.outerId || !route.query.token) {
router.push("/401");
}
const id = route.query.outerId;
@ -1554,6 +1554,7 @@ async function getDetails() {
}
onMounted(async () => {
document.body.style.fontSize = '14px'
await getDetails();
getFormData();
});
@ -1778,10 +1779,8 @@ p {
.wrapper {
overflow: auto;
height: 100vh;
font-size: 14px;
}
.container {
width: 1100px;
margin: auto;
}
.message {

Loading…
Cancel
Save