Browse Source

250109

main
wxc 1 year ago
parent
commit
a646b6a127
  1. 41
      src/api/mv/VideoComponent.vue
  2. 1
      src/api/request.ts
  3. 16
      src/api/work/negative.ts
  4. 129
      src/components/data/gab-import.vue
  5. 126
      src/components/data/gj-import.vue
  6. 28
      src/components/negative/dialog.vue
  7. 27
      src/components/negative/verify-description.vue
  8. 12
      src/components/negative/verify.vue
  9. 5
      src/components/negativeInfo/depart-dialog.vue
  10. 2
      src/components/time-limit-select.vue
  11. 2
      src/permission.ts
  12. 7
      src/router/routes.ts
  13. 30
      src/utils/token.ts
  14. 1
      src/views/baseData/Personal.vue
  15. 1
      src/views/baseData/WorkPlace.vue
  16. 1
      src/views/books/Ajhc.vue
  17. 3
      src/views/books/Gabxf.vue
  18. 3
      src/views/books/Gjxf.vue
  19. 3
      src/views/books/Hdjq.vue
  20. 9
      src/views/books/Mail12337.vue
  21. 3
      src/views/books/Xcdc.vue
  22. 1
      src/views/data/Ajhc.vue
  23. 1
      src/views/data/Gabxf.vue
  24. 1
      src/views/data/Gjxf.vue
  25. 76
      src/views/data/Mail12337.vue
  26. 1
      src/views/data/PoliceMeeting.vue
  27. 1
      src/views/data/VideoInspection.vue
  28. 1
      src/views/sensitivePerception/DepartNegative.vue
  29. 1
      src/views/sensitivePerception/Model.vue
  30. 1
      src/views/sensitivePerception/ModelClue.vue
  31. 1
      src/views/sensitivePerception/ModelClueManual.vue
  32. 1
      src/views/sensitivePerception/ModelClueTask.vue
  33. 1
      src/views/sensitivePerception/PoliceNegative.vue
  34. 1
      src/views/sensitivePerception/RiskClue.vue
  35. 1
      src/views/sensitivePerception/RiskPersonnel.vue
  36. 1
      src/views/system/Depart.vue
  37. 2
      src/views/system/DepartMaping.vue
  38. 2
      src/views/system/Dict.vue
  39. 1
      src/views/system/Police.vue
  40. 1
      src/views/system/ProblemMaping.vue
  41. 1
      src/views/system/User.vue
  42. 1
      src/views/work/Alarm.vue
  43. 9
      src/views/work/BatchDistribute.vue
  44. 1
      src/views/work/Done.vue
  45. 3
      src/views/work/Fav.vue
  46. 3
      src/views/work/NegativeTask.vue
  47. 1
      src/views/work/News.vue
  48. 5
      src/views/work/Query.vue
  49. 5
      src/views/work/Todo.vue
  50. 1798
      src/views/work/VerifySubmit.vue
  51. 3
      vite.config.ts

41
src/api/mv/VideoComponent.vue

@ -1,41 +0,0 @@
<template>
<div>
<!-- 用于显示视频流的video元素 -->
<video ref="videoPlayer" id="videoPlayer" class="video-js vjs-default-skin" controls></video>
</div>
</template>
<script>
// srs.js
import 'https://cdn.jsdelivr.net/npm/srs.js@latest/dist/srs.min.js'; // 使 srs.js
export default {
mounted() {
// WebRTC
this.player = new SRS.Player({
url: 'webrtc://47.121.143.167/live/livestream', // WebRTC
el: this.$refs.videoPlayer, //
width: '100%', // 100%
height: 'auto', //
});
this.player.play().catch((err) => {
console.error('Failed to play WebRTC stream:', err);
});
},
beforeDestroy() {
//
if (this.player) {
this.player.dispose();
}
}
};
</script>
<style scoped>
/* 确保视频播放器自适应 */
#videoPlayer {
width: 100%;
height: auto;
}
</style>

1
src/api/request.ts

@ -38,7 +38,6 @@ function del(options: Options) {
let isRelogin = false; let isRelogin = false;
function ajax(url: string, options: Options) { function ajax(url: string, options: Options) {
const headers: Record<string, string> = { const headers: Record<string, string> = {
"Authorization": getToken() "Authorization": getToken()
}; };
let body: string | FormData; let body: string | FormData;

16
src/api/work/negative.ts

@ -15,6 +15,12 @@ export function getNegativeDetails(id, workId) {
}); });
} }
export function getNegativeDetailsByOuter(id) {
return request.get({
url: `/negative/outer/${id}`
});
}
export function addNegative(body) { export function addNegative(body) {
return request.post({ return request.post({
url: `/negative`, url: `/negative`,
@ -74,10 +80,18 @@ export function transferTodo(id) {
}); });
} }
// 抽检
export function spotCheckNegative(id, body) { export function spotCheckNegative(id, body) {
return request.post({ return request.post({
url: `/negative/${id}/spotCheck`, url: `/negative/${id}/spotCheck`,
body body
}); });
}
// 提交办结
export function verifySubmitNegative(id, body) {
return request.post({
url: `/negative/${id}/verifySubmit`,
body
});
} }

129
src/components/data/gab-import.vue

@ -1,5 +1,5 @@
<template> <template>
<el-dialog title="公安部信访投诉导入" width="80vw" ref="dialogRef"> <el-dialog title="公安部信访投诉导入" width="80vw" ref="dialogRef" top="8vh">
<header class="flex center mb-40"> <header class="flex center mb-40">
<el-steps <el-steps
:space="400" :space="400"
@ -14,43 +14,49 @@
</header> </header>
<div style="min-height: 50vh"> <div style="min-height: 50vh">
<template v-if="activeStep === 0"> <template v-if="activeStep === 0">
<el-upload <div v-loading="loading">
drag <el-upload
:multiple="false" drag
:auto-upload="false" :multiple="false"
:show-file-list="false" :auto-upload="false"
v-model:file-list="fileList" :show-file-list="false"
accept="application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" v-model:file-list="fileList"
class="mt-20" accept="application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
> class="mt-20"
<template v-if="fileList.length === 0">
<el-icon class="el-icon--upload"
><upload-filled
/></el-icon>
<div class="el-upload__text">
<p>点击或拖拽文件到此区域上传</p>
</div>
</template>
<template v-else>
<el-icon class="el-icon--upload"><Select /></el-icon>
<div class="el-upload__text">
已选择文件{{ fileList[fileList.length - 1].name }}
</div>
</template>
</el-upload>
<div class="mt-20">
<span>文件模板</span>
<a
class="link"
:href="`${BASE_PATH}/templates/公安信访投诉数据导入模板.xls`"
target="__blank"
>公安信访投诉数据导入模板.xls 下载</a
> >
<template v-if="fileList.length === 0">
<el-icon class="el-icon--upload"
><upload-filled
/></el-icon>
<div class="el-upload__text">
<p>点击或拖拽文件到此区域上传</p>
</div>
</template>
<template v-else>
<el-icon class="el-icon--upload"
><Select
/></el-icon>
<div class="el-upload__text">
已选择文件{{
fileList[fileList.length - 1].name
}}
</div>
</template>
</el-upload>
<div class="mt-20">
<span>文件模板</span>
<a
class="link"
:href="`${BASE_PATH}/templates/公安信访投诉数据导入模板.xls`"
target="__blank"
>公安信访投诉数据导入模板.xls 下载</a
>
</div>
</div> </div>
</template> </template>
<template v-if="activeStep === 1"> <template v-if="activeStep === 1">
<div class="table-container"> <div class="table-container" v-loading="loading">
<el-table :data="importTableData"> <el-table :data="importTableData.slice(0, Math.min(20, importTableData.length))" :max-height="500">
<el-table-column <el-table-column
label="办理单位" label="办理单位"
prop="discoverTime" prop="discoverTime"
@ -111,7 +117,7 @@
prop="discoveryTime" prop="discoveryTime"
width="110" width="110"
/> />
<el-table-column <el-table-column
label="信访内容" label="信访内容"
prop="thingDesc" prop="thingDesc"
@ -173,7 +179,6 @@
prop="handleDepartName" prop="handleDepartName"
width="120" width="120"
/> />
</el-table> </el-table>
</div> </div>
</template> </template>
@ -187,14 +192,14 @@
</template> </template>
</div> </div>
<footer class="flex end mt-20 v-center"> <footer class="flex end mt-20 v-center">
<el-button size="large" @click="handlePrev" v-if="activeStep !== 3" <el-button size="large" @click="handlePrev" v-if="activeStep !== 3 && activeStep !== 0"
>上一步</el-button >上一步</el-button
> >
<el-button <el-button
type="primary" type="primary"
size="large" size="large"
@click="handleNext" @click="handleNext"
v-loading="loading" :disabled="loading"
>{{ activeStep === 2 ? "确定" : "下一步" }}</el-button >{{ activeStep === 2 ? "确定" : "下一步" }}</el-button
> >
</footer> </footer>
@ -210,7 +215,7 @@ import { onMounted } from "vue";
const emit = defineEmits(["close", "update"]); const emit = defineEmits(["close", "update"]);
const activeStep = ref(0) const activeStep = ref(0);
const fileList = ref([]); const fileList = ref([]);
@ -227,9 +232,7 @@ async function handleNext() {
formData.append("file", fileList.value[fileList.value.length - 1].raw); formData.append("file", fileList.value[fileList.value.length - 1].raw);
loading.value = true; loading.value = true;
try { try {
importTableData.value = await importPetitionComplaintGab( importTableData.value = await importPetitionComplaintGab(formData);
formData
);
} catch (e) { } catch (e) {
loading.value = false; loading.value = false;
throw e; throw e;
@ -239,29 +242,23 @@ async function handleNext() {
return; return;
} }
if (activeStep.value === 1) { if (activeStep.value === 1) {
importTableData.value.forEach((item) => {
if (!item.departId) {
feedback.msgWarning("请选择办理单位");
throw e;
}
});
loading.value = true; loading.value = true;
try { try {
await addPetitionComplaintGab(importTableData.value); await addPetitionComplaintGab(importTableData.value);
} catch(e) { } catch (e) {
loading.value = false loading.value = false;
return return;
} }
loading.value = false loading.value = false;
activeStep.value = 2; activeStep.value = 2;
emit('update') emit("update");
return; return;
} }
if (activeStep.value === 2) { if (activeStep.value === 2) {
emit('close') emit("close");
activeStep.value = 0 activeStep.value = 0;
importTableData.value = [] importTableData.value = [];
fileList.value = [] fileList.value = [];
} }
} }
@ -269,16 +266,18 @@ function handlePrev() {
activeStep.value = activeStep.value - 1; activeStep.value = activeStep.value - 1;
} }
const dialogRef = ref() const dialogRef = ref();
watch(() => dialogRef.value?.visible, (val) => { watch(
if (!val) { () => dialogRef.value?.visible,
activeStep.value = 0 (val) => {
importTableData.value = [] if (!val) {
fileList.value = [] activeStep.value = 0;
importTableData.value = [];
fileList.value = [];
}
} }
}) );
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
</style> </style>

126
src/components/data/gj-import.vue

@ -14,43 +14,49 @@
</header> </header>
<div style="min-height: 50vh"> <div style="min-height: 50vh">
<template v-if="activeStep === 0"> <template v-if="activeStep === 0">
<el-upload <div v-loading="loading">
drag <el-upload
:multiple="false" drag
:auto-upload="false" :multiple="false"
:show-file-list="false" :auto-upload="false"
v-model:file-list="fileList" :show-file-list="false"
accept="application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" v-model:file-list="fileList"
class="mt-20" accept="application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
> class="mt-20"
<template v-if="fileList.length === 0">
<el-icon class="el-icon--upload"
><upload-filled
/></el-icon>
<div class="el-upload__text">
<p>点击或拖拽文件到此区域上传</p>
</div>
</template>
<template v-else>
<el-icon class="el-icon--upload"><Select /></el-icon>
<div class="el-upload__text">
已选择文件{{ fileList[fileList.length - 1].name }}
</div>
</template>
</el-upload>
<div class="mt-20">
<span>文件模板</span>
<a
class="link"
:href="`${BASE_PATH}/templates/国家信访投诉数据导入模板.xls`"
target="__blank"
>国家信访投诉数据导入模板.xls 下载</a
> >
<template v-if="fileList.length === 0">
<el-icon class="el-icon--upload"
><upload-filled
/></el-icon>
<div class="el-upload__text">
<p>点击或拖拽文件到此区域上传</p>
</div>
</template>
<template v-else>
<el-icon class="el-icon--upload"
><Select
/></el-icon>
<div class="el-upload__text">
已选择文件{{
fileList[fileList.length - 1].name
}}
</div>
</template>
</el-upload>
<div class="mt-20">
<span>文件模板</span>
<a
class="link"
:href="`${BASE_PATH}/templates/国家信访投诉数据导入模板.xls`"
target="__blank"
>国家信访投诉数据导入模板.xls 下载</a
>
</div>
</div> </div>
</template> </template>
<template v-if="activeStep === 1"> <template v-if="activeStep === 1">
<div class="table-container"> <div class="table-container" v-loading="loading">
<el-table :data="importTableData"> <el-table :data="importTableData.slice(0, Math.min(20, importTableData.length))" :max-height="500">
<el-table-column <el-table-column
label="办理单位" label="办理单位"
prop="discoverTime" prop="discoverTime"
@ -112,7 +118,7 @@
prop="discoveryTime" prop="discoveryTime"
width="110" width="110"
/> />
<el-table-column <el-table-column
label="信访内容" label="信访内容"
prop="thingDesc" prop="thingDesc"
@ -150,14 +156,14 @@
</template> </template>
</div> </div>
<footer class="flex end mt-20 v-center"> <footer class="flex end mt-20 v-center">
<el-button size="large" @click="handlePrev" v-if="activeStep !== 3" <el-button size="large" @click="handlePrev" v-if="activeStep !== 3 && activeStep !== 0"
>上一步</el-button >上一步</el-button
> >
<el-button <el-button
type="primary" type="primary"
size="large" size="large"
@click="handleNext" @click="handleNext"
v-loading="loading" :disabled="loading"
>{{ activeStep === 2 ? "确定" : "下一步" }}</el-button >{{ activeStep === 2 ? "确定" : "下一步" }}</el-button
> >
</footer> </footer>
@ -173,7 +179,7 @@ import { onMounted } from "vue";
const emit = defineEmits(["close", "update"]); const emit = defineEmits(["close", "update"]);
const activeStep = ref(0) const activeStep = ref(0);
const fileList = ref([]); const fileList = ref([]);
@ -190,9 +196,7 @@ async function handleNext() {
formData.append("file", fileList.value[fileList.value.length - 1].raw); formData.append("file", fileList.value[fileList.value.length - 1].raw);
loading.value = true; loading.value = true;
try { try {
importTableData.value = await importPetitionComplaintGj( importTableData.value = await importPetitionComplaintGj(formData);
formData
);
} catch (e) { } catch (e) {
loading.value = false; loading.value = false;
throw e; throw e;
@ -202,29 +206,23 @@ async function handleNext() {
return; return;
} }
if (activeStep.value === 1) { if (activeStep.value === 1) {
importTableData.value.forEach((item) => {
if (!item.departId) {
feedback.msgWarning("请选择办理单位");
throw e;
}
});
loading.value = true; loading.value = true;
try { try {
await addPetitionComplaintGj(importTableData.value); await addPetitionComplaintGj(importTableData.value);
} catch(e) { } catch (e) {
loading.value = false loading.value = false;
return return;
} }
loading.value = false loading.value = false;
activeStep.value = 2; activeStep.value = 2;
emit('update') emit("update");
return; return;
} }
if (activeStep.value === 2) { if (activeStep.value === 2) {
emit('close') emit("close");
activeStep.value = 0 activeStep.value = 0;
importTableData.value = [] importTableData.value = [];
fileList.value = [] fileList.value = [];
} }
} }
@ -232,16 +230,18 @@ function handlePrev() {
activeStep.value = activeStep.value - 1; activeStep.value = activeStep.value - 1;
} }
const dialogRef = ref() const dialogRef = ref();
watch(() => dialogRef.value?.visible, (val) => { watch(
if (!val) { () => dialogRef.value?.visible,
activeStep.value = 0 (val) => {
importTableData.value = [] if (!val) {
fileList.value = [] activeStep.value = 0;
importTableData.value = [];
fileList.value = [];
}
} }
}) );
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
</style> </style>

28
src/components/negative/dialog.vue

@ -204,7 +204,33 @@
@submit="handleSubmitExecute" @submit="handleSubmitExecute"
/> />
</template> </template>
<div
v-if="negative.processingStatus ===
ProcessingStatus.COMPLETED
"
>
<h4>认定办结</h4>
<div class="row">
<div class="col col-6">
<label>核查办理情况</label>
<span>{{
getDictLable(
dict.verifySituation,
negative.verifySituation
) || "/"
}}</span>
</div>
<div class="col col-6">
<label>佐证材料情况</label>
<span>{{
getDictLable(
dict.verifyFileSituation,
negative.verifyFileSituation
) || "/"
}}</span>
</div>
</div>
</div>
<el-form <el-form
class="mt-20" class="mt-20"
:model="formData" :model="formData"

27
src/components/negative/verify-description.vue

@ -216,32 +216,7 @@
> >
<file-list :files="negative.files" /> <file-list :files="negative.files" />
</el-collapse-item> </el-collapse-item>
<el-collapse-item
title="认定办结"
name="completed"
v-if="negative.processingStatus === ProcessingStatus.COMPLETED"
>
<div class="row">
<div class="col col-6">
<label>核查办理情况</label>
<span>{{
getDictLable(
dict.verifySituation,
negative.verifySituation
) || '/'
}}</span>
</div>
<div class="col col-6">
<label>佐证材料情况</label>
<span>{{
getDictLable(
dict.verifyFileSituation,
negative.verifyFileSituation
) || '/'
}}</span>
</div>
</div>
</el-collapse-item>
</el-collapse> </el-collapse>
</template> </template>
<script setup> <script setup>

12
src/components/negative/verify.vue

@ -1346,18 +1346,6 @@ function handleRemoveBlameLeader(index) {
form.value.blameLeaders.splice(index, 1); form.value.blameLeaders.splice(index, 1);
} }
function handleChangeBlame(val, blame) {
const police = polices.value.filter((item) => item.empNo === val)[0];
blame.blameName = police.name;
blame.blameIdCode = police.idCode;
}
function handleChangeLead(val, blame) {
const police = polices.value.filter((item) => item.empNo === val)[0];
blame.leadName = police.name;
blame.leadIdCode = police.idCode;
}
// //
watch( watch(
() => form.value.accountabilityTarget, () => form.value.accountabilityTarget,

5
src/components/negativeInfo/depart-dialog.vue

@ -283,9 +283,8 @@
<el-pagination <el-pagination
@size-change="getNegativeList" @size-change="getNegativeList"
@current-change="getNegativeList" @current-change="getNegativeList"
:current-page="negativeQuery.current" :page-sizes="[10, 20, 50, 100]"
:page-sizes="[10, 20, 50]" v-model:page-size="query.size"
:page-size="negativeQuery.size"
v-model:current-page="negativeQuery.current" v-model:current-page="negativeQuery.current"
layout="total, sizes, prev, pager, next" layout="total, sizes, prev, pager, next"
:total="negativeTotal" :total="negativeTotal"

2
src/components/time-limit-select.vue

@ -9,7 +9,7 @@
> >
</el-radio-group> </el-radio-group>
<template v-if="value === TimeLimit.OTHER"> <template v-if="value === TimeLimit.OTHER">
<el-row> <el-row style="width: 100%">
<el-col :span="8"> <el-col :span="8">
<el-form-item <el-form-item
label="签收" label="签收"

2
src/permission.ts

@ -14,7 +14,7 @@ import 'nprogress/nprogress.css'
// NProgress配置 // NProgress配置
NProgress.configure({ showSpinner: false }) NProgress.configure({ showSpinner: false })
// 免登录白名单 // 免登录白名单
const whiteList: string[] = [PageEnum.LOGIN, '/support', '/401'] const whiteList: string[] = [PageEnum.LOGIN, '/support', '/401', '/work/verifySubmit']
router.beforeEach(async (to, from, next) => { router.beforeEach(async (to, from, next) => {
// 开始 Progress Bar // 开始 Progress Bar
NProgress.start() NProgress.start()

7
src/router/routes.ts

@ -96,13 +96,10 @@ export const routes = [
component: () => import('@/views/datav/subonedatav/SubOneRightsComfort.vue'), component: () => import('@/views/datav/subonedatav/SubOneRightsComfort.vue'),
}, },
{ {
path: '/datav/test', path: '/work/verifySubmit',
component: () => import('@/api/mv/VideoComponent.vue'), component: () => import('@/views/work/VerifySubmit.vue'),
}, },
]; ];
export const INDEX_ROUTE_NAME = Symbol() export const INDEX_ROUTE_NAME = Symbol()

30
src/utils/token.ts

@ -1,39 +1,27 @@
const { VITE_PROFILES } = process.env; const { VITE_PROFILES } = process.env;
export function setCookie(name, value, daysToLive) { export function setStorageItem(name, value) {
let cookie = name + "=" + encodeURIComponent(value); window.localStorage.setItem(name, value);
if (typeof daysToLive === "number") {
cookie += "; max-age=" + (daysToLive*24*60*60); // 将天数转换为秒数
}
document.cookie = cookie;
} }
export function getCookie(name) { export function getStorageItem(name) {
const cookies = document.cookie.split("; "); return window.localStorage.getItem(name);;
for (let i = 0; i < cookies.length; i++) {
const [cookieName, cookieValue] = cookies[i].split("=");
if (name === cookieName) {
return decodeURIComponent(cookieValue);
}
}
return "";
} }
export function deleteCookie(name) { export function deleteStorageItem(name) {
document.cookie = name + `=; expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/;`; window.localStorage.removeItem(name);;
document.cookie = name + `=; expires=Thu, 01 Jan 1970 00:00:00 GMT;path=${VITE_PROFILES};`;
} }
const TOKEN_KEY = "token" const TOKEN_KEY = "token"
export function setToken(value) { export function setToken(value) {
setCookie(TOKEN_KEY, value, 1) setStorageItem(TOKEN_KEY, value, 1)
} }
export function getToken() { export function getToken() {
return getCookie(TOKEN_KEY); return getStorageItem(TOKEN_KEY);
} }
export function deleteToken() { export function deleteToken() {
return deleteCookie(TOKEN_KEY); return deleteStorageItem(TOKEN_KEY);
} }

1
src/views/baseData/Personal.vue

@ -96,7 +96,6 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current"
:page-sizes="[10, 20, 50]" :page-sizes="[10, 20, 50]"
v-model:page-size="query.size" v-model:page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"

1
src/views/baseData/WorkPlace.vue

@ -75,7 +75,6 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current"
:page-sizes="[10, 20, 50]" :page-sizes="[10, 20, 50]"
v-model:page-size="query.size" v-model:page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"

1
src/views/books/Ajhc.vue

@ -131,7 +131,6 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current"
:page-sizes="[10, 20, 50]" :page-sizes="[10, 20, 50]"
v-model:page-size="query.size" v-model:page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"

3
src/views/books/Gabxf.vue

@ -239,9 +239,8 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current"
:page-sizes="[10, 20, 50]" :page-sizes="[10, 20, 50]"
:page-size="query.size" v-model:page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"
layout="total, sizes, prev, pager, next" layout="total, sizes, prev, pager, next"
:total="total" :total="total"

3
src/views/books/Gjxf.vue

@ -239,9 +239,8 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current"
:page-sizes="[10, 20, 50]" :page-sizes="[10, 20, 50]"
:page-size="query.size" v-model:page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"
layout="total, sizes, prev, pager, next" layout="total, sizes, prev, pager, next"
:total="total" :total="total"

3
src/views/books/Hdjq.vue

@ -235,9 +235,8 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current"
:page-sizes="[10, 20, 50]" :page-sizes="[10, 20, 50]"
:page-size="query.size" v-model:page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"
layout="total, sizes, prev, pager, next" layout="total, sizes, prev, pager, next"
:total="total" :total="total"

9
src/views/books/Mail12337.vue

@ -0,0 +1,9 @@
<template>
</template>
<script setup>
</script>
<style lang="scss" scoped>
</style>

3
src/views/books/Xcdc.vue

@ -177,9 +177,8 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current"
:page-sizes="[10, 20, 50]" :page-sizes="[10, 20, 50]"
:page-size="query.size" v-model:page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"
layout="total, sizes, prev, pager, next" layout="total, sizes, prev, pager, next"
:total="total" :total="total"

1
src/views/data/Ajhc.vue

@ -210,7 +210,6 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current"
:page-sizes="[10, 20, 50]" :page-sizes="[10, 20, 50]"
v-model:page-size="query.size" v-model:page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"

1
src/views/data/Gabxf.vue

@ -194,7 +194,6 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current"
:page-sizes="[10, 20, 50]" :page-sizes="[10, 20, 50]"
v-model:page-size="query.size" v-model:page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"

1
src/views/data/Gjxf.vue

@ -195,7 +195,6 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current"
:page-sizes="[10, 20, 50]" :page-sizes="[10, 20, 50]"
v-model:page-size="query.size" v-model:page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"

76
src/views/data/Mail12337.vue

@ -139,7 +139,6 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current"
:page-sizes="[10, 20, 50]" :page-sizes="[10, 20, 50]"
v-model:page-size="query.size" v-model:page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"
@ -150,7 +149,7 @@
</div> </div>
</div> </div>
<el-dialog v-model="importShow" title="12337信访投诉导入" width="80vw"> <el-dialog v-model="importShow" title="12337信访投诉导入" width="80vw" top="8vh">
<header class="flex center mb-40"> <header class="flex center mb-40">
<el-steps <el-steps
:space="200" :space="200"
@ -199,12 +198,13 @@
</template> </template>
<template v-if="activeStep === 1"> <template v-if="activeStep === 1">
<div class="table-container"> <div class="table-container">
<el-table :data="importTableData"> <el-table :data="importTableData" max-height="500px">
<el-table-column <el-table-column
label="办理单位"
prop="discoverTime"
width="180" width="180"
> >
<template #header>
<span class="text-danger">核查办理单位*</span>
</template>
<template #default="{ row }"> <template #default="{ row }">
<depart-tree-select <depart-tree-select
size="small" size="small"
@ -212,17 +212,26 @@
/> />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column
label="核查单位"
prop="reviewOrg"
width="120"
/>
<el-table-column <el-table-column
label="被举报单位名称" label="被举报单位名称"
prop="reportedOrgName" prop="reportedOrgName"
width="200" width="170"
show-overflow-tooltip show-overflow-tooltip
/> />
<el-table-column <el-table-column
label="信息受理登记时间" label="信息受理登记时间"
prop="discoverTime" prop="discoverTime"
width="110" width="170"
/> >
<template #header>
<span class="text-danger">信息受理登记时间*</span>
</template>
</el-table-column>
<el-table-column <el-table-column
label="线索来源" label="线索来源"
prop="letterSource" prop="letterSource"
@ -250,11 +259,14 @@
show-overflow-tooltip show-overflow-tooltip
/> />
<el-table-column <el-table-column
label="核查简要情况" prop="wjwfProject"
prop="reviewDes"
show-overflow-tooltip show-overflow-tooltip
width="250" width="250"
/> >
<template #header>
<span class="text-danger">涉嫌违纪违法事项*</span>
</template>
</el-table-column>
<el-table-column <el-table-column
label="是否政法干警" label="是否政法干警"
prop="isLawPolice" prop="isLawPolice"
@ -298,24 +310,20 @@
<el-table-column <el-table-column
label="其他" label="其他"
prop="otherGuilt" prop="otherGuilt"
width="140" width="80"
show-overflow-tooltip show-overflow-tooltip
/> />
<el-table-column <el-table-column
label="转办时间" label="转办时间"
prop="passTime" prop="passTime"
width="110" width="170"
/> />
<el-table-column <el-table-column
label="核查时间" label="核查时间"
prop="reviewTime" prop="reviewTime"
width="110" width="110"
/> />
<el-table-column
label="核查单位"
prop="reviewOrg"
width="120"
/>
<el-table-column <el-table-column
label="核查人" label="核查人"
prop="reviewPersonName" prop="reviewPersonName"
@ -360,10 +368,11 @@
<el-table-column <el-table-column
label="线索举报时间" label="线索举报时间"
prop="reportTime" prop="reportTime"
width="120" width="180"
/> />
</el-table> </el-table>
</div> </div>
<div class="text-danger text-wrap mt-10 text-small">{{ errMsg }}</div>
</template> </template>
<template v-if="activeStep === 2"> <template v-if="activeStep === 2">
<el-form :model="formData" ref="formRef" style="margin: 0 80px" v-loading="loading"> <el-form :model="formData" ref="formRef" style="margin: 0 80px" v-loading="loading">
@ -478,7 +487,7 @@
</template> </template>
</div> </div>
<footer class="flex end mt-20 v-center"> <footer class="flex end mt-20 v-center">
<el-button size="large" @click="handlePrev" v-if="activeStep !== 3" <el-button size="large" @click="handlePrev" v-if="activeStep !== 3 && activeStep !== 0"
>上一步</el-button >上一步</el-button
> >
<el-button <el-button
@ -567,6 +576,8 @@ const formRef = ref();
function handlePrev() { function handlePrev() {
activeStep.value = activeStep.value - 1; activeStep.value = activeStep.value - 1;
} }
const errMsg = ref('')
async function handleNext() { async function handleNext() {
if (activeStep.value === 0) { if (activeStep.value === 0) {
if (fileList.value.length === 0) { if (fileList.value.length === 0) {
@ -594,6 +605,29 @@ async function handleNext() {
throw e; throw e;
} }
}); });
errMsg.value = ''
const error = []
for (let i = 0; i < importTableData.value.length; i++) {
const item = importTableData.value[i];
let message = ''
if (!item.departId) {
message += '核查办理单位为空;'
}
if (!item.discoverTime) {
message += '信息受理登记时间为空;'
}
if (!item.wjwfProject) {
message += '涉嫌违纪违法事项为空;'
}
if (message) {
error.push(`${i + 1}条数据:` + message)
}
}
if (error.length > 0) {
feedback.msgWarning("数据不符合规范!");
errMsg.value = error.join('\n')
throw new Error('数据不符合规范!');
}
activeStep.value = 2; activeStep.value = 2;
formData.value.taskName = formData.value.taskName =
fileList.value[fileList.value.length - 1].name; fileList.value[fileList.value.length - 1].name;
@ -625,7 +659,7 @@ async function handleNext() {
watch(importShow, (val) => { watch(importShow, (val) => {
if (val) { if (val) {
activeStep.value = 3; activeStep.value = 0;
formData.value = {}; formData.value = {};
importTableData.value = []; importTableData.value = [];
fileList.value = []; fileList.value = [];

1
src/views/data/PoliceMeeting.vue

@ -118,7 +118,6 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current"
:page-sizes="[10, 20, 50]" :page-sizes="[10, 20, 50]"
v-model:page-size="query.size" v-model:page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"

1
src/views/data/VideoInspection.vue

@ -70,7 +70,6 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current"
:page-sizes="[10, 20, 50]" :page-sizes="[10, 20, 50]"
v-model:page-size="query.size" v-model:page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"

1
src/views/sensitivePerception/DepartNegative.vue

@ -139,7 +139,6 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current"
:page-sizes="[9, 18, 36]" :page-sizes="[9, 18, 36]"
v-model:page-size="query.size" v-model:page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"

1
src/views/sensitivePerception/Model.vue

@ -130,7 +130,6 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current"
:page-sizes="[12, 24, 48]" :page-sizes="[12, 24, 48]"
v-model:page-size="query.size" v-model:page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"

1
src/views/sensitivePerception/ModelClue.vue

@ -180,7 +180,6 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current"
:page-sizes="[9, 18, 36]" :page-sizes="[9, 18, 36]"
v-model:page-size="query.size" v-model:page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"

1
src/views/sensitivePerception/ModelClueManual.vue

@ -156,7 +156,6 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current"
:page-sizes="[9, 18, 36]" :page-sizes="[9, 18, 36]"
v-model:page-size="query.size" v-model:page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"

1
src/views/sensitivePerception/ModelClueTask.vue

@ -105,7 +105,6 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current"
:page-sizes="[9, 18, 36]" :page-sizes="[9, 18, 36]"
v-model:page-size="query.size" v-model:page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"

1
src/views/sensitivePerception/PoliceNegative.vue

@ -152,7 +152,6 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current"
:page-sizes="[9, 18, 36]" :page-sizes="[9, 18, 36]"
v-model:page-size="query.size" v-model:page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"

1
src/views/sensitivePerception/RiskClue.vue

@ -96,7 +96,6 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current"
:page-sizes="[9, 18, 36]" :page-sizes="[9, 18, 36]"
v-model:page-size="query.size" v-model:page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"

1
src/views/sensitivePerception/RiskPersonnel.vue

@ -180,7 +180,6 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current"
:page-sizes="[10, 20, 50]" :page-sizes="[10, 20, 50]"
:page-size="query.size" :page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"

1
src/views/system/Depart.vue

@ -173,7 +173,6 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current"
:page-sizes="[10, 20, 50]" :page-sizes="[10, 20, 50]"
v-model:page-size="query.size" v-model:page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"

2
src/views/system/DepartMaping.vue

@ -131,7 +131,6 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current"
:page-sizes="[10, 20, 50]" :page-sizes="[10, 20, 50]"
v-model:page-size="query.size" v-model:page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"
@ -201,7 +200,6 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current"
:page-sizes="[10, 20, 50]" :page-sizes="[10, 20, 50]"
v-model:page-size="query.size" v-model:page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"

2
src/views/system/Dict.vue

@ -59,7 +59,6 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current"
:page-sizes="[10, 20, 50]" :page-sizes="[10, 20, 50]"
v-model:page-size="query.size" v-model:page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"
@ -136,7 +135,6 @@
<el-pagination <el-pagination
@size-change="getDatas" @size-change="getDatas"
@current-change="getDatas" @current-change="getDatas"
:current-page="dataQuery.current"
:page-sizes="[10, 20, 50]" :page-sizes="[10, 20, 50]"
v-model:page-size="dataQuery.size" v-model:page-size="dataQuery.size"
v-model:current-page="dataQuery.current" v-model:current-page="dataQuery.current"

1
src/views/system/Police.vue

@ -269,7 +269,6 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current"
:page-sizes="[10, 20, 50]" :page-sizes="[10, 20, 50]"
v-model:page-size="query.size" v-model:page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"

1
src/views/system/ProblemMaping.vue

@ -73,7 +73,6 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current"
:page-sizes="[10, 20, 50]" :page-sizes="[10, 20, 50]"
v-model:page-size="query.size" v-model:page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"

1
src/views/system/User.vue

@ -114,7 +114,6 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current"
:page-sizes="[10, 20, 50]" :page-sizes="[10, 20, 50]"
v-model:page-size="query.size" v-model:page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"

1
src/views/work/Alarm.vue

@ -124,7 +124,6 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current"
:page-sizes="[10, 20, 50]" :page-sizes="[10, 20, 50]"
:page-size="query.size" :page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"

9
src/views/work/BatchDistribute.vue

@ -87,7 +87,6 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current"
:page-sizes="[10, 20, 50]" :page-sizes="[10, 20, 50]"
v-model:page-size="query.size" v-model:page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"
@ -142,9 +141,9 @@
<span>文件模板</span> <span>文件模板</span>
<a <a
class="link" class="link"
:href="`${BASE_PATH}/templates/问题标准模板.xlsx`" :href="`${BASE_PATH}/templates/问题批量导入标准模板.xlsx`"
target="__blank" target="__blank"
>问题标准模板.xlsx 下载</a >问题批量导入标准模板.xlsx 下载</a
> >
</div> </div>
</template> </template>
@ -302,7 +301,7 @@
</template> </template>
</div> </div>
<footer class="flex end mt-20 v-center"> <footer class="flex end mt-20 v-center">
<el-button size="large" @click="handlePrev" v-if="activeStep !== 3" <el-button size="large" @click="handlePrev" v-if="activeStep !== 3 && activeStep !== 0"
>上一步</el-button >上一步</el-button
> >
<el-button <el-button
@ -416,7 +415,7 @@ async function handleNext() {
formData.append("file", fileList.value[fileList.value.length - 1].raw); formData.append("file", fileList.value[fileList.value.length - 1].raw);
loading.value = true; loading.value = true;
loadingText.value = '数据校验中...' loadingText.value = '数据校验中...'
debugger
try { try {
importTableData.value = await importNegative( importTableData.value = await importNegative(
formData formData

1
src/views/work/Done.vue

@ -367,7 +367,6 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current"
:page-sizes="[10, 20, 50]" :page-sizes="[10, 20, 50]"
:page-size="query.size" :page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"

3
src/views/work/Fav.vue

@ -177,9 +177,8 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current"
:page-sizes="[10, 20, 50]" :page-sizes="[10, 20, 50]"
:page-size="query.size" v-model:page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"
layout="total, sizes, prev, pager, next" layout="total, sizes, prev, pager, next"
:total="total" :total="total"

3
src/views/work/NegativeTask.vue

@ -66,9 +66,8 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current"
:page-sizes="[10, 20, 50]" :page-sizes="[10, 20, 50]"
:page-size="query.size" v-model:page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"
layout="total, sizes, prev, pager, next" layout="total, sizes, prev, pager, next"
:total="total" :total="total"

1
src/views/work/News.vue

@ -85,7 +85,6 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current"
:page-sizes="[10, 20, 50]" :page-sizes="[10, 20, 50]"
v-model:page-size="query.size" v-model:page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"

5
src/views/work/Query.vue

@ -464,9 +464,8 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current" :page-sizes="[10, 20, 50, 100]"
:page-sizes="[10, 20, 50]" v-model:page-size="query.size"
:page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"
layout="total, sizes, prev, pager, next" layout="total, sizes, prev, pager, next"
:total="total" :total="total"

5
src/views/work/Todo.vue

@ -405,9 +405,8 @@
<el-pagination <el-pagination
@size-change="getList" @size-change="getList"
@current-change="getList" @current-change="getList"
:current-page="query.current" :page-sizes="[10, 20, 50, 100]"
:page-sizes="[10, 20, 50]" v-model:page-size="query.size"
:page-size="query.size"
v-model:current-page="query.current" v-model:current-page="query.current"
layout="total, sizes, prev, pager, next" layout="total, sizes, prev, pager, next"
:total="total" :total="total"

1798
src/views/work/VerifySubmit.vue

File diff suppressed because it is too large Load Diff

3
vite.config.ts

@ -79,6 +79,9 @@ export default ({ mode }) => {
postCssPxToRem({ postCssPxToRem({
rootValue: 192, rootValue: 192,
propList: ['*'], propList: ['*'],
ignoreFiles: [
'src/views/work/VerifySubmit.vue'
]
}) })
] ]
} }

Loading…
Cancel
Save