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