4 changed files with 22 additions and 483 deletions
@ -1,454 +0,0 @@
|
||||
<template> |
||||
<div class="container"> |
||||
<header class="mb-20"> |
||||
<el-form :label-width="114"> |
||||
<el-row> |
||||
<el-col :span="6"> |
||||
<el-form-item label="督察单位"> |
||||
<depart-tree-select v-model="query.departId" /> |
||||
</el-form-item> |
||||
</el-col> |
||||
<el-col :span="6"> |
||||
<el-form-item label="任务名称"> |
||||
<el-input |
||||
placeholder="请输入任务名称" |
||||
v-model="query.nickName" |
||||
/> |
||||
</el-form-item> |
||||
</el-col> |
||||
<el-col :span="6"> |
||||
<el-form-item label="督察类型"> |
||||
<el-select v-model="form.supervisionType" clearable> |
||||
<el-option |
||||
v-for="item in dict.supervisionType" |
||||
:key="item.id" |
||||
:label="item.dictLabel" |
||||
:value="item.dictValue" |
||||
/> |
||||
</el-select> |
||||
</el-form-item> |
||||
</el-col> |
||||
</el-row> |
||||
</el-form> |
||||
<div class="flex between"> |
||||
<el-button type="primary" @click="handleShowAdd"> |
||||
<template #icon> |
||||
<icon name="el-icon-Plus" /> |
||||
</template> |
||||
发布任务</el-button |
||||
> |
||||
<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="taskName" /> |
||||
<el-table-column |
||||
label="督察单位" |
||||
prop="supDepartName" |
||||
width="120" |
||||
/> |
||||
<el-table-column |
||||
label="参与人员" |
||||
prop="persons" |
||||
show-overflow-tooltip |
||||
/> |
||||
<el-table-column |
||||
label="任务类型" |
||||
prop="supervisionType" |
||||
width="100" |
||||
align="center" |
||||
/> |
||||
<el-table-column |
||||
label="任务内容" |
||||
prop="taskContent" |
||||
show-overflow-tooltip |
||||
/> |
||||
<el-table-column label="督察时间" prop="updateTime" width="280"> |
||||
<template #default="{ row }"> |
||||
<span>{{ row.beginTime }}</span> |
||||
<span>-</span> |
||||
<span>{{ row.endTime }}</span> |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column label="任务状态"> |
||||
<template #default="{ row }"> |
||||
<span v-if="row.taskStatus === 'todo'">执行中</span> |
||||
<span v-if="row.taskStatus === 'done'">已完成</span> |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column label="被督察单位数" prop="departNumber" align="center" /> |
||||
<el-table-column label="发现问题数" prop="problemNumber" align="center" /> |
||||
<el-table-column label="操作" width="200"> |
||||
<template #default="{ row }"> |
||||
<el-button |
||||
type="primary" |
||||
link |
||||
@click="handleShowDetail(row)" |
||||
>查看详情</el-button |
||||
> |
||||
<el-button |
||||
type="primary" |
||||
link |
||||
@click="handleProblemsShow(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 |
||||
title="发布任务" |
||||
v-model="show" |
||||
width="1076px" |
||||
top="5vh" |
||||
style="margin-bottom: 0" |
||||
> |
||||
<el-scrollbar max-height="76vh"> |
||||
<el-form |
||||
:label-width="150" |
||||
ref="formRef" |
||||
:model="form" |
||||
style="min-height: 66vh" |
||||
> |
||||
<el-form-item |
||||
label="任务名称" |
||||
:rules="{ |
||||
required: true, |
||||
message: '请输入任务名称', |
||||
trigger: ['blur'], |
||||
}" |
||||
prop="taskName" |
||||
> |
||||
<el-input |
||||
v-model="form.taskName" |
||||
placeholder="请输入任务名称" |
||||
/> |
||||
</el-form-item> |
||||
<el-form-item |
||||
label="督察单位" |
||||
:rules="{ |
||||
required: true, |
||||
message: '请选择', |
||||
}" |
||||
prop="supDepartId" |
||||
> |
||||
<div style="width: 300px"> |
||||
<depart-tree-select v-model="form.supDepartId" /> |
||||
</div> |
||||
</el-form-item> |
||||
<el-form-item |
||||
label="督察人员" |
||||
:rules="{ |
||||
required: true, |
||||
message: '请选择', |
||||
}" |
||||
prop="persons" |
||||
> |
||||
<police-picker v-model="form.persons" /> |
||||
</el-form-item> |
||||
<el-form-item |
||||
label="督察类型" |
||||
:rules="{ |
||||
required: true, |
||||
message: '请选择', |
||||
}" |
||||
prop="supervisionType" |
||||
> |
||||
<el-select |
||||
v-model="form.supervisionType" |
||||
clearable |
||||
style="width: 300px" |
||||
> |
||||
<el-option |
||||
v-for="item in dict.supervisionType" |
||||
:key="item.id" |
||||
:label="item.dictLabel" |
||||
:value="item.dictValue" |
||||
/> |
||||
</el-select> |
||||
</el-form-item> |
||||
<el-form-item |
||||
label="督察时间" |
||||
prop="times" |
||||
:rules="{ |
||||
required: true, |
||||
message: '请选择', |
||||
}" |
||||
> |
||||
<div style="width: 800px"> |
||||
<el-date-picker |
||||
v-model="form.times" |
||||
type="datetimerange" |
||||
range-separator="-" |
||||
start-placeholder="开始时间" |
||||
end-placeholder="结束时间" |
||||
/> |
||||
</div> |
||||
</el-form-item> |
||||
<el-form-item |
||||
prop="taskContentHtml" |
||||
:rules="{ |
||||
required: true, |
||||
message: '请输入任务内容' |
||||
}" |
||||
label-position="top" |
||||
> |
||||
<div style="width: 100%"> |
||||
<quill-editor |
||||
ref="quillRef" |
||||
v-model="form.taskContentHtml" |
||||
style=" |
||||
min-height: 200px; |
||||
max-height: 360px; |
||||
overflow: auto; |
||||
" |
||||
/> |
||||
</div> |
||||
</el-form-item> |
||||
</el-form> |
||||
</el-scrollbar> |
||||
<footer class="flex end mt-20"> |
||||
<el-button type="primary" @click="submit" size="large" |
||||
>发布</el-button> |
||||
</footer> |
||||
</el-dialog> |
||||
|
||||
<el-dialog title="任务详情" v-model="detailShow" width="40vw"> |
||||
<div class="row mb-40"> |
||||
<div class="col col-24"> |
||||
<label>任务名称</label> |
||||
<span>{{ activeRow.taskName }}</span> |
||||
</div> |
||||
<div class="col col-24"> |
||||
<label>督察单位</label> |
||||
<span>{{ activeRow.supDepartName }}</span> |
||||
</div> |
||||
<div class="col col-24"> |
||||
<label>参与人员</label> |
||||
<span>{{ activeRow.persons }}</span> |
||||
</div> |
||||
<div class="col col-24"> |
||||
<label>任务类型</label> |
||||
<span>{{ activeRow.supervisionType }}</span> |
||||
</div> |
||||
<div class="col col-24"> |
||||
<label>督察时间</label> |
||||
<span |
||||
><span>{{ activeRow.beginTime }}</span> |
||||
<span>-</span> |
||||
<span>{{ activeRow.endTime }}</span></span |
||||
> |
||||
</div> |
||||
<div class="col col-24"> |
||||
<label>任务内容</label> |
||||
<span>{{ activeRow.taskContent }}</span> |
||||
</div> |
||||
</div> |
||||
<footer class="flex end mt-20"> |
||||
<el-button size="large" @click="detailShow = false">关闭</el-button> |
||||
</footer> |
||||
</el-dialog> |
||||
|
||||
<el-dialog |
||||
title="问题清单" |
||||
v-model="problemsShow" |
||||
width="60vw" |
||||
style="margin-bottom: 0" |
||||
> |
||||
<header class="mb-20"> |
||||
<el-form :label-width="94"> |
||||
<el-row> |
||||
<el-col :span="6"> |
||||
<el-form-item label="具体情况"> |
||||
<el-input |
||||
v-model="problemQuery.detail" |
||||
clearable |
||||
placeholder="请输入具体情况" |
||||
/> |
||||
</el-form-item> |
||||
</el-col> |
||||
</el-row> |
||||
<div class="flex end"> |
||||
<el-button type="primary" @click="getProblems"> |
||||
<template #icon> |
||||
<icon name="el-icon-Search" /> |
||||
</template> |
||||
查询</el-button |
||||
> |
||||
<el-button @click="problemReset">重置</el-button> |
||||
</div> |
||||
</el-form> |
||||
</header> |
||||
<div style="min-height: 400px"> |
||||
<div class="table-container"> |
||||
<el-table :data="problems" :max-height="640" min-height="300"> |
||||
<el-table-column |
||||
label="是否发现督察问题" |
||||
prop="hasProblem" |
||||
width="120" |
||||
align="center" |
||||
> |
||||
<template #default="{ row }"> |
||||
<span v-if="row.hasProblem">是</span> |
||||
<span v-else>否</span> |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column |
||||
label="单位" |
||||
prop="departName" |
||||
width="140" |
||||
show-overflow-tooltip |
||||
/> |
||||
<el-table-column |
||||
label="问题类型" |
||||
prop="problemType" |
||||
width="140" |
||||
show-overflow-tooltip |
||||
/> |
||||
<el-table-column label="具体情况" prop="detail" /> |
||||
<el-table-column |
||||
label="创建时间" |
||||
prop="createTime" |
||||
width="160" |
||||
/> |
||||
<el-table-column label="操作" width="100"> |
||||
<template #default="{ row }"> |
||||
<el-button |
||||
type="primary" |
||||
link |
||||
@click="handleShowPeople(row)" |
||||
>详情</el-button |
||||
> |
||||
</template> |
||||
</el-table-column> |
||||
</el-table> |
||||
</div> |
||||
<div class="flex end mt-8"> |
||||
<el-pagination |
||||
@size-change="getProblems" |
||||
@current-change="getProblems" |
||||
:page-sizes="[10, 20, 50]" |
||||
v-model:page-size="problemQuery.size" |
||||
v-model:current-page="problemQuery.current" |
||||
layout="total, sizes, prev, pager, next" |
||||
:total="problemTotal" |
||||
> |
||||
</el-pagination> |
||||
</div> |
||||
</div> |
||||
</el-dialog> |
||||
</template> |
||||
<script setup> |
||||
import { |
||||
listInspection, |
||||
addInspection, |
||||
listInspectionProblems, |
||||
} from "@/api/mobileSupervision/inspection"; |
||||
import feedback from "@/utils/feedback"; |
||||
import useCatchStore from "@/stores/modules/catch"; |
||||
|
||||
const catchStore = useCatchStore(); |
||||
const dict = catchStore.getDicts(["supervisionType"]); |
||||
|
||||
const list = ref([]); |
||||
const query = ref({ |
||||
current: 1, |
||||
size: 10, |
||||
}); |
||||
const total = ref(0); |
||||
function getList() { |
||||
listInspection(query.value).then((data) => { |
||||
list.value = data.records; |
||||
total.value = data.total; |
||||
}); |
||||
} |
||||
|
||||
function reset() { |
||||
query.value = { |
||||
current: 1, |
||||
size: 10, |
||||
}; |
||||
getList(); |
||||
} |
||||
|
||||
getList(); |
||||
|
||||
const show = ref(false); |
||||
|
||||
const form = ref({}); |
||||
const formRef = ref(null); |
||||
|
||||
const quillRef = ref() |
||||
async function submit() { |
||||
await formRef.value.validate(); |
||||
form.value.taskContent = quillRef.value.getText() |
||||
await addInspection(form.value); |
||||
feedback.msgSuccess("发布成功"); |
||||
show.value = false; |
||||
getList(); |
||||
form.value = {}; |
||||
} |
||||
|
||||
function handleShowAdd() { |
||||
show.value = true; |
||||
} |
||||
|
||||
const detailShow = ref(false); |
||||
const activeRow = ref({}); |
||||
|
||||
function handleShowDetail(row) { |
||||
activeRow.value = row; |
||||
detailShow.value = true; |
||||
} |
||||
|
||||
const problemsShow = ref(false); |
||||
const problems = ref([]); |
||||
const problemQuery = ref({}); |
||||
const problemTotal = ref(0); |
||||
|
||||
function handleProblemsShow(row) { |
||||
activeRow.value = row; |
||||
problemsShow.value = true; |
||||
getProblems(); |
||||
} |
||||
function getProblems() { |
||||
listInspectionProblems(activeRow.value.id).then((data) => { |
||||
problems.value = data.records; |
||||
}); |
||||
} |
||||
|
||||
function problemReset() { |
||||
problemQuery.value = {}; |
||||
} |
||||
</script> |
||||
<style lang="scss" scoped> |
||||
h5 { |
||||
margin-bottom: 10px; |
||||
} |
||||
.pepole-container > * { |
||||
margin-bottom: 8px; |
||||
} |
||||
</style> |
||||
Loading…
Reference in new issue