Browse Source

fix:1、国家信访的集访、领导接访数据导入

main
pengwei 9 months ago
parent
commit
7f8eaed3d2
  1. 102
      src/components/data/gj-replenish.vue
  2. 37
      src/views/data/Gjxf.vue
  3. 20
      src/views/datav/MailVisits.vue

102
src/components/data/gj-replenish.vue

@ -0,0 +1,102 @@
<script setup>
import { BASE_PATH } from "@/api/request";
import {replenishExcelGab} from "@/api/data/petitionComplaint";
import feedback from "@/utils/feedback";
let fileList = ref([])
let loading =ref(false)
const dialogTitle = ref("国家信访集访导入")
const {replenishType} = defineProps({
replenishType:{
type: String,
defalut: 1
}
})
const emit=defineEmits(['success','close'])
//
watch(()=>replenishType,()=>{
fileList.value=[]
if (replenishType == 1){
dialogTitle.value='国家信访集访导入'
}else{
dialogTitle.value='国家信访领导接访导入'
}
})
/**
* 上传文件
* */
const handleNext = async ()=>{
//body
const formData = new FormData();
formData.append("file", fileList.value[fileList.value.length - 1].raw);
loading.value = true;
try {
await replenishExcelGab(formData);
feedback.msgSuccess("操作成功");
emit("success")
} catch (e) {
loading.value = false;
throw e;
}
loading.value = false;
}
</script>
<template>
<!--公安部数据补充-->
<el-dialog :title="dialogTitler" width="80vw" ref="dialogRef" top="8vh">
<div v-loading="loading">
<el-upload
drag
:multiple="false"
:auto-upload="false"
:show-file-list="false"
v-model:file-list="fileList"
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/${dialogTitle}模板.xlsx`"
target="__blank"
>{{dialogTitle}}模板.xlsx 下载</a
>
</div>
<footer class="flex end mt-20 v-center">
<el-button type="primary"
size="large"
@click="handleNext"
:disabled="loading">
确认
</el-button>
</footer>
</div>
</el-dialog>
</template>
<style scoped lang="scss">
</style>

37
src/views/data/Gjxf.vue

@ -90,6 +90,8 @@
<el-button type="primary" @click="show = true" <el-button type="primary" @click="show = true"
>数据导入</el-button >数据导入</el-button
> >
<el-button type="primary" @click="handleShowImportReplenish">集访导入</el-button>
<el-button type="primary" @click="handleShowldjfReplenish">领导接访导入</el-button>
<el-button type="primary" @click="handleExport">数据导出</el-button> <el-button type="primary" @click="handleExport">数据导出</el-button>
<el-badge <el-badge
:value="distributeList.length" :value="distributeList.length"
@ -251,6 +253,12 @@
</div> </div>
<data-gj-import v-model="show" @close="show = false" @update="getList" /> <data-gj-import v-model="show" @close="show = false" @update="getList" />
<!-- 集访领导接访数据补充-->
<data-gj-replenish v-model="replenishShow"
:replenishType="replenishType"
@close="replenishShow = false" @success="successFun"/>
<data-distrbute <data-distrbute
v-model:show="distributeShow" v-model:show="distributeShow"
@ -334,7 +342,7 @@
</div> </div>
<div class="col col-12"> <div class="col col-12">
<label>接访领导</label> <label>接访领导</label>
<span>{{ '/' }}</span> <span>{{ activeRow.receivingLeaderName || '/' }}</span>
</div> </div>
<div class="col col-12"> <div class="col col-12">
<label>化解情况</label> <label>化解情况</label>
@ -364,6 +372,8 @@ import useCatchStore from "@/stores/modules/catch";
import {BASE_PATH} from "@/api/request"; import {BASE_PATH} from "@/api/request";
const catchStore = useCatchStore(); const catchStore = useCatchStore();
const replenishShow = ref(false)
const replenishType =ref("1")
const dict = catchStore.getDicts(["distributionState", "initialPetition"]); const dict = catchStore.getDicts(["distributionState", "initialPetition"]);
const route = useRoute() const route = useRoute()
const query = ref({ const query = ref({
@ -384,7 +394,20 @@ function getList() {
total.value = data.total; total.value = data.total;
}); });
} }
/**
* 集访数据导入
* */
function handleShowImportReplenish(){
replenishType.value="1"
replenishShow.value=true
}
/**
* 领导接访数据导入
* */
function handleShowldjfReplenish(){
replenishType.value='2'
replenishShow.value=true
}
/** /**
* 导出数据 * 导出数据
* */ * */
@ -413,6 +436,16 @@ function reset() {
getList(); getList();
/**
* 补充成功的事件
* 补充的数据初重访群众集访
* */
function successFun(){
replenishShow.value=false
getList()
}
const show = ref(false); const show = ref(false);
async function handleDel(row) { async function handleDel(row) {
await feedback.confirm("确定要删除该数据?"); await feedback.confirm("确定要删除该数据?");

20
src/views/datav/MailVisits.vue

@ -330,17 +330,21 @@ const overview = ref({
policeMail: 0, policeMail: 0,
numberMail: 0, numberMail: 0,
manageMail: 0, manageMail: 0,
}); // });
//
//
const fxjsFirstAndRepeatOverview = ref({ const fxjsFirstAndRepeatOverview = ref({
firstMail: 0, firstMail: 0,
repeatMail: 0, repeatMail: 0,
leaderMail: 0 leaderMail: 0
}); });
//
const bwzdFirstAndRepeatOverview = ref({ const bwzdFirstAndRepeatOverview = ref({
firstMail: 0, firstMail: 0,
repeatMail: 0, repeatMail: 0,
leaderMail: 0 leaderMail: 0
}); });
const fxsjFirstMailList = ref([]); // 访 const fxsjFirstMailList = ref([]); // 访
const fxsjRepeatMailList = ref([]); // 访 const fxsjRepeatMailList = ref([]); // 访
const fxsjLeaderViewMailList = ref([]); // 访 const fxsjLeaderViewMailList = ref([]); // 访
@ -896,11 +900,21 @@ const getData = () => {
} }
const currentLeftOverview = computed(() => { const currentLeftOverview = computed(() => {
return activeTab.value === '1' ? fxjsFirstAndRepeatOverview.value : bwzdFirstAndRepeatOverview.value; // return activeTab.value === '1' ? fxjsFirstAndRepeatOverview.value : bwzdFirstAndRepeatOverview.value;
return {
firstMail : fxjsFirstAndRepeatOverview.value.firstMail + bwzdFirstAndRepeatOverview.value.firstMail,
repeatMail:fxjsFirstAndRepeatOverview.value.repeatMail + bwzdFirstAndRepeatOverview.value.repeatMail,
leaderMail:fxjsFirstAndRepeatOverview.value.leaderMail + bwzdFirstAndRepeatOverview.value.leaderMail,
}
}); });
const currentRightOverview = computed(() => { const currentRightOverview = computed(() => {
return activeTabRight.value === '1' ? fxsjMailEntanglementMassOverview.value : bwzdMailEntanglementMassOverview.value; // return activeTabRight.value === '1' ? fxsjMailEntanglementMassOverview.value : bwzdMailEntanglementMassOverview.value;
return {
entanglement: fxsjMailEntanglementMassOverview.value.entanglement + bwzdMailEntanglementMassOverview.value.entanglement,
mass: fxsjMailEntanglementMassOverview.value.mass + bwzdMailEntanglementMassOverview.value.mass,
leaderReview: fxsjMailEntanglementMassOverview.value.leaderReview + bwzdMailEntanglementMassOverview.value.leaderReview,
}
}); });
// endregion // endregion

Loading…
Cancel
Save