12 changed files with 1977 additions and 1283 deletions
@ -0,0 +1,36 @@ |
|||||||
|
import request from "@/api/request"; |
||||||
|
|
||||||
|
export function listPetitionComplaint12337(query) { |
||||||
|
return request.get({ |
||||||
|
url: '/data/petitionComplaint12337', |
||||||
|
query |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
export function importPetitionComplaint(body) { |
||||||
|
return request.post({ |
||||||
|
url: '/data/petitionComplaint/import', |
||||||
|
body |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
export function addPetitionComplaint(body) { |
||||||
|
return request.post({ |
||||||
|
url: `/data/petitionComplaint`, |
||||||
|
body |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
export function delPetitionComplaint12337(id) { |
||||||
|
return request.del({ |
||||||
|
url: `/data/petitionComplaint12337/${id}` |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
export function distributePetitionComplaint12337(body) { |
||||||
|
return request.post({ |
||||||
|
url: `/data/petitionComplaint12337/distribute`, |
||||||
|
body |
||||||
|
}); |
||||||
|
} |
||||||
@ -0,0 +1,271 @@ |
|||||||
|
<template> |
||||||
|
<div class="container"> |
||||||
|
<header> |
||||||
|
<el-form :label-width="114"> |
||||||
|
<el-row> |
||||||
|
<el-col :span="6"> |
||||||
|
<el-form-item label="信件编号"> |
||||||
|
<el-input |
||||||
|
placeholder="请输入" |
||||||
|
v-model="query.originId" |
||||||
|
/> |
||||||
|
</el-form-item> |
||||||
|
</el-col> |
||||||
|
<el-col :span="6"> |
||||||
|
<el-form-item label="投诉人"> |
||||||
|
<div class="flex gap"> |
||||||
|
<el-select |
||||||
|
v-model="query.responderKey" |
||||||
|
style="width: 160px" |
||||||
|
@change="delete query.responderValue" |
||||||
|
> |
||||||
|
<el-option value="name" label="姓名"/> |
||||||
|
<el-option value="phone" label="电话"/> |
||||||
|
</el-select> |
||||||
|
<el-input |
||||||
|
placeholder="请输入" |
||||||
|
v-model="query.responderValue" |
||||||
|
clearable |
||||||
|
/> |
||||||
|
</div> |
||||||
|
</el-form-item> |
||||||
|
</el-col> |
||||||
|
<el-col :span="6"> |
||||||
|
<el-form-item label="登记时间"> |
||||||
|
<date-time-range-picker-ext |
||||||
|
v-model="query.discoverTime" |
||||||
|
/> |
||||||
|
</el-form-item> |
||||||
|
</el-col> |
||||||
|
<el-col :span="6"> |
||||||
|
<el-form-item label="具体内容"> |
||||||
|
<el-input |
||||||
|
placeholder="请输入" |
||||||
|
v-model="query.thingDesc" |
||||||
|
/> |
||||||
|
</el-form-item> |
||||||
|
</el-col> |
||||||
|
</el-row> |
||||||
|
</el-form> |
||||||
|
<div class="mb-25 flex between"> |
||||||
|
<div> |
||||||
|
<el-button type="primary" @click="show = true" |
||||||
|
>数据导入 |
||||||
|
</el-button |
||||||
|
> |
||||||
|
<el-badge |
||||||
|
:value="distributeList.length" |
||||||
|
class="ml-10" |
||||||
|
v-if="distributeList.length" |
||||||
|
> |
||||||
|
<el-button type="primary" @click="distributeShow = true">问题下发</el-button> |
||||||
|
</el-badge> |
||||||
|
</div> |
||||||
|
<div> |
||||||
|
<el-button type="primary" @click="getList"> |
||||||
|
<template #icon> |
||||||
|
<icon name="el-icon-Search"/> |
||||||
|
</template> |
||||||
|
查询 |
||||||
|
</el-button |
||||||
|
> |
||||||
|
<el-button @click="reset">重置</el-button> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
<div class="table-container"> |
||||||
|
<el-table :data="list"> |
||||||
|
<el-table-column |
||||||
|
label="信件编号" |
||||||
|
prop="onlyId" |
||||||
|
show-overflow-tooltip |
||||||
|
/> |
||||||
|
<el-table-column |
||||||
|
label="投诉渠道" |
||||||
|
prop="letterSource" |
||||||
|
/> |
||||||
|
|
||||||
|
<el-table-column |
||||||
|
label="登记时间" |
||||||
|
prop="discoverTime" |
||||||
|
show-overflow-tooltip |
||||||
|
/> |
||||||
|
<el-table-column |
||||||
|
label="投诉人" |
||||||
|
prop="name" |
||||||
|
width="90" |
||||||
|
/> |
||||||
|
<el-table-column label="电话" prop="phone"/> |
||||||
|
|
||||||
|
|
||||||
|
<el-table-column |
||||||
|
label="被投诉机构" |
||||||
|
show-overflow-tooltip |
||||||
|
> |
||||||
|
<template #default="{ row }"> |
||||||
|
<span>{{ row.secondDepartName }}</span> |
||||||
|
<span>{{ row.thirdDepartName }}</span> |
||||||
|
</template> |
||||||
|
</el-table-column> |
||||||
|
<el-table-column |
||||||
|
label="具体内容" |
||||||
|
prop="wjwfProject" |
||||||
|
show-overflow-tooltip |
||||||
|
/> |
||||||
|
<el-table-column label="状态"> |
||||||
|
<template #default="{ row }"> |
||||||
|
<el-tag>{{ |
||||||
|
getDictLable( |
||||||
|
dict.distributionState, |
||||||
|
row.distributionState |
||||||
|
) |
||||||
|
}} |
||||||
|
</el-tag> |
||||||
|
</template> |
||||||
|
</el-table-column> |
||||||
|
<el-table-column label="操作" width="200"> |
||||||
|
<template #default="{ row }"> |
||||||
|
<template |
||||||
|
v-if=" |
||||||
|
row.distributionState === |
||||||
|
DistributionState.UNDISTRIBUTED |
||||||
|
" |
||||||
|
> |
||||||
|
<el-button |
||||||
|
type="primary" |
||||||
|
link |
||||||
|
@click="handleAddDistribute(row)" |
||||||
|
v-if=" |
||||||
|
distributeList.filter( |
||||||
|
(item) => item.onlyId === row.onlyId |
||||||
|
).length === 0 |
||||||
|
" |
||||||
|
>加入问题下发 |
||||||
|
</el-button |
||||||
|
> |
||||||
|
<el-button |
||||||
|
type="info" |
||||||
|
link |
||||||
|
v-else |
||||||
|
@click="handleRemoveDistribute(row)" |
||||||
|
>移除 |
||||||
|
</el-button |
||||||
|
> |
||||||
|
</template> |
||||||
|
<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" |
||||||
|
:current-page="query.current" |
||||||
|
: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> |
||||||
|
|
||||||
|
<!-- <data-import |
||||||
|
v-model="show" |
||||||
|
title="公安部信访投诉 数据导入" |
||||||
|
:problemSourcesCode="ProblemSources.GABXF" |
||||||
|
@close="show = false" |
||||||
|
@update="getList" |
||||||
|
/>--> |
||||||
|
|
||||||
|
<data-distrbute-12337 |
||||||
|
v-model:show="distributeShow" |
||||||
|
v-model:data="distributeList" |
||||||
|
@update="getList" |
||||||
|
/> |
||||||
|
|
||||||
|
</template> |
||||||
|
|
||||||
|
<script setup> |
||||||
|
import { |
||||||
|
delPetitionComplaint, |
||||||
|
} from "@/api/data/petitionComplaint"; |
||||||
|
import {ProblemSources, DistributionState} from "@/enums/dictEnums"; |
||||||
|
import feedback from "@/utils/feedback"; |
||||||
|
|
||||||
|
import {getDictLable} from "@/utils/util"; |
||||||
|
|
||||||
|
import useCatchStore from "@/stores/modules/catch"; |
||||||
|
import {delPetitionComplaint12337, listPetitionComplaint12337} from "@/api/data/petition12337.ts"; |
||||||
|
|
||||||
|
const catchStore = useCatchStore(); |
||||||
|
const dict = catchStore.getDicts([ |
||||||
|
"distributionState", |
||||||
|
"timeLimit", |
||||||
|
"approvalFlow", |
||||||
|
"distributionFlow", |
||||||
|
"distributionState", |
||||||
|
]); |
||||||
|
|
||||||
|
const query = ref({ |
||||||
|
size: 10, |
||||||
|
current: 1, |
||||||
|
responderKey: "name", |
||||||
|
problemSourcesCode: ProblemSources.GABXF, |
||||||
|
}); |
||||||
|
|
||||||
|
const list = ref([]); |
||||||
|
const total = ref(0); |
||||||
|
|
||||||
|
function getList() { |
||||||
|
listPetitionComplaint12337(query.value).then((data) => { |
||||||
|
list.value = data.records; |
||||||
|
total.value = data.total; |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
function reset() { |
||||||
|
query.value = { |
||||||
|
size: 10, |
||||||
|
current: 1, |
||||||
|
responderKey: "name", |
||||||
|
problemSourcesCode: ProblemSources.XF12337, |
||||||
|
}; |
||||||
|
getList(); |
||||||
|
} |
||||||
|
getList(); |
||||||
|
|
||||||
|
const show = ref(false); |
||||||
|
|
||||||
|
// 删除操作 |
||||||
|
async function handleDel(row) { |
||||||
|
await feedback.confirm("确定要删除该数据?"); |
||||||
|
await delPetitionComplaint12337(row.onlyId); |
||||||
|
getList(); |
||||||
|
} |
||||||
|
|
||||||
|
const distributeShow = ref(false) |
||||||
|
const distributeList = ref([]) |
||||||
|
|
||||||
|
function handleAddDistribute(row) { |
||||||
|
distributeList.value.push(row); |
||||||
|
} |
||||||
|
|
||||||
|
function handleRemoveDistribute(row) { |
||||||
|
distributeList.value.splice( |
||||||
|
distributeList.value.findIndex( |
||||||
|
(item) => item.originId === row.originId |
||||||
|
), |
||||||
|
1 |
||||||
|
); |
||||||
|
} |
||||||
|
</script> |
||||||
|
|
||||||
|
|
||||||
|
<style lang="scss" scoped> |
||||||
|
</style> |
||||||
Loading…
Reference in new issue