22 changed files with 1488 additions and 255 deletions
@ -0,0 +1,9 @@
|
||||
import request from "@/api/request"; |
||||
|
||||
|
||||
export function listComfort(query) { |
||||
return request.get({ |
||||
url: `/comfort`, |
||||
query: query |
||||
}); |
||||
} |
||||
@ -0,0 +1,661 @@
|
||||
<template> |
||||
<div class="container"> |
||||
<header class="mb-20"> |
||||
<el-form :label-width="114"> |
||||
<el-row> |
||||
<el-col :span="6"> |
||||
<el-form-item label="申请时间"> |
||||
<date-time-range-picker-ext |
||||
v-model="query.applyDate" |
||||
/> |
||||
</el-form-item> |
||||
</el-col> |
||||
<el-col :span="6"> |
||||
<el-form-item label="事发时间"> |
||||
<date-time-range-picker-ext |
||||
v-model="query.happenTime" |
||||
/> |
||||
</el-form-item> |
||||
</el-col> |
||||
<el-col :span="6"> |
||||
<el-form-item label="姓名"> |
||||
<el-input |
||||
placeholder="请输入姓名" |
||||
v-model="query.applicantEmpName" |
||||
/> |
||||
</el-form-item> |
||||
</el-col> |
||||
<el-col :span="6"> |
||||
<el-form-item label="申请人单位"> |
||||
<depart-tree-select v-model="query.departId" /> |
||||
</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="number" |
||||
show-overflow-tooltip |
||||
/> |
||||
<el-table-column |
||||
label="申请时间" |
||||
prop="applyDate" |
||||
width="160" |
||||
/> |
||||
<el-table-column |
||||
label="事发时间" |
||||
prop="happenTime" |
||||
width="160" |
||||
/> |
||||
<el-table-column |
||||
label="申请人姓名" |
||||
prop="applicantEmpName" |
||||
width="100" |
||||
/> |
||||
<el-table-column label="申请人单位" prop="departName" /> |
||||
<el-table-column label="开户行"> |
||||
<template #default="{ row }"> |
||||
<span>{{ row.bankCard }}</span> |
||||
<span>{{ row.bankBranch }}</span> |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column label="状态" width="100"> |
||||
<template #default="{ row }"> |
||||
<el-tag type="success" v-if="row.status === 1" |
||||
>正常</el-tag |
||||
> |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column label="操作" width="200"> |
||||
<template #default="{ row }"> |
||||
<!-- <el-button |
||||
link |
||||
>查看</el-button |
||||
> |
||||
<el-button |
||||
link |
||||
>下载</el-button |
||||
> |
||||
<el-button |
||||
link |
||||
type="danger" |
||||
>删除</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="mode === 'add' ? '申请抚慰' : '编辑抚慰信息'" |
||||
v-model="show" |
||||
width="60vw" |
||||
top="5vh" |
||||
> |
||||
<el-form :label-width="140" ref="formRef" :model="form"> |
||||
<h5>办理信息</h5> |
||||
<el-form-item |
||||
label="申请时间" |
||||
:rules="{ |
||||
required: true, |
||||
trigger: ['blur'], |
||||
}" |
||||
prop="" |
||||
> |
||||
<el-date-picker |
||||
v-model="formData.applyDate" |
||||
type="date" |
||||
placeholder="请选择" |
||||
value-format="YYYY-MM-DD" |
||||
style="width: 300px" |
||||
:disabled-date="disabledDate" |
||||
/> |
||||
</el-form-item> |
||||
<el-row> |
||||
<el-col :span="12"> |
||||
<el-form-item |
||||
label="主办民警" |
||||
:rules="{ |
||||
required: true, |
||||
trigger: ['blur'], |
||||
}" |
||||
prop="" |
||||
> |
||||
<el-input style="width: 300px" /> |
||||
</el-form-item> |
||||
</el-col> |
||||
<el-col :span="12"> |
||||
<el-form-item |
||||
label="主办单位" |
||||
:rules="{ |
||||
required: true, |
||||
trigger: ['blur'], |
||||
}" |
||||
prop="handleDepartId" |
||||
> |
||||
<div style="width: 300px"> |
||||
<depart-tree-select |
||||
v-model="formData.handleDepartId" |
||||
:check-strictly="true" |
||||
@node-click=" |
||||
(node) => |
||||
(formData.handleDepartName = |
||||
node.shortName) |
||||
" |
||||
/> |
||||
</div> |
||||
</el-form-item> |
||||
</el-col> |
||||
</el-row> |
||||
<el-divider /> |
||||
<el-row> |
||||
<el-col :span="12"> |
||||
<el-form-item |
||||
label="是否为本人申请" |
||||
:rules="{ |
||||
required: true, |
||||
trigger: ['blur'], |
||||
}" |
||||
prop="" |
||||
> |
||||
<el-radio-group v-model="formData.isSelf"> |
||||
<el-radio :value="1">是</el-radio> |
||||
<el-radio :value="0">否</el-radio> |
||||
</el-radio-group> |
||||
</el-form-item> |
||||
</el-col> |
||||
<el-col :span="12" v-if="formData.isSelf === 0"> |
||||
<el-form-item |
||||
label="关系" |
||||
:rules="{ |
||||
required: true, |
||||
trigger: ['blur'], |
||||
message: '请选择', |
||||
}" |
||||
prop="relation" |
||||
> |
||||
<el-radio-group v-model="formData.relation"> |
||||
<el-radio :value="1">同事</el-radio> |
||||
<el-radio :value="2">亲属</el-radio> |
||||
</el-radio-group> |
||||
</el-form-item> |
||||
</el-col> |
||||
<el-col :span="12" v-if="formData.isSelf === 0"> |
||||
<el-form-item |
||||
label="代理人姓名" |
||||
:rules="{ |
||||
required: true, |
||||
trigger: ['blur'], |
||||
}" |
||||
prop="" |
||||
> |
||||
<el-input style="width: 300px" placeholder="请输入" /> |
||||
</el-form-item> |
||||
</el-col> |
||||
<el-col :span="12" v-if="formData.isSelf === 0"> |
||||
<el-form-item |
||||
label="代理人单位" |
||||
:rules="{ |
||||
required: true, |
||||
trigger: ['blur'], |
||||
}" |
||||
prop="" |
||||
> |
||||
<div style="width: 300px"> |
||||
<depart-tree-select |
||||
v-model="formData.handleDepartId" |
||||
:check-strictly="true" |
||||
@node-click=" |
||||
(node) => |
||||
(formData.handleDepartName = |
||||
node.shortName) |
||||
" |
||||
/> |
||||
</div> |
||||
</el-form-item> |
||||
</el-col> |
||||
</el-row> |
||||
<h5>申请人信息</h5> |
||||
<el-row> |
||||
<el-col :span="12"> |
||||
<el-form-item |
||||
label="申请人姓名" |
||||
:rules="{ |
||||
required: true, |
||||
message: '请输入', |
||||
}" |
||||
prop="applicantEmpName" |
||||
> |
||||
<el-input |
||||
v-model="formData.applicantEmpName" |
||||
style="width: 300px" |
||||
placeholder="请输入" |
||||
/> |
||||
</el-form-item> |
||||
</el-col> |
||||
<el-col :span="12"> |
||||
<el-form-item |
||||
label="性别" |
||||
:rules="{ |
||||
required: true, |
||||
}" |
||||
prop="" |
||||
> |
||||
<el-radio-group v-model="formData.sex"> |
||||
<el-radio value="男">男</el-radio> |
||||
<el-radio value="女">女</el-radio> |
||||
</el-radio-group> |
||||
</el-form-item> |
||||
</el-col> |
||||
<el-col :span="12"> |
||||
<el-form-item |
||||
label="出生年月" |
||||
:rules="{ |
||||
required: true, |
||||
}" |
||||
prop="" |
||||
> |
||||
<el-date-picker |
||||
v-model="formData.birthday" |
||||
type="date" |
||||
placeholder="请选择" |
||||
value-format="YYYY-MM-DD" |
||||
style="width: 300px" |
||||
/> |
||||
</el-form-item> |
||||
</el-col> |
||||
<el-col :span="12"> |
||||
<el-form-item |
||||
label="文化程度" |
||||
:rules="{ |
||||
required: true, |
||||
}" |
||||
prop="" |
||||
> |
||||
<el-select |
||||
clearable |
||||
style="width: 300px" |
||||
v-model="formData.levelEducation" |
||||
> |
||||
<el-option value="高中">高中</el-option> |
||||
<el-option value="大专">大专</el-option> |
||||
<el-option value="本科">本科</el-option> |
||||
<el-option value="研究生及以上" |
||||
>研究生及以上</el-option |
||||
> |
||||
</el-select> |
||||
</el-form-item> |
||||
</el-col> |
||||
<el-col :span="12"> |
||||
<el-form-item |
||||
label="政治面貌" |
||||
:rules="{ |
||||
required: true, |
||||
}" |
||||
prop="" |
||||
> |
||||
<el-input |
||||
v-model="formData.idCode" |
||||
style="width: 300px" |
||||
placeholder="请输入" |
||||
/> |
||||
</el-form-item> |
||||
</el-col> |
||||
<el-col :span="12"> |
||||
<el-form-item |
||||
label="身份证号码" |
||||
:rules="{ |
||||
required: true, |
||||
}" |
||||
prop="" |
||||
> |
||||
<el-input |
||||
v-model="formData.idCode" |
||||
clearable |
||||
style="width: 300px" |
||||
placeholder="请输入" |
||||
/> |
||||
</el-form-item> |
||||
</el-col> |
||||
<el-col :span="12"> |
||||
<el-form-item |
||||
label="联系电话" |
||||
:rules="{ |
||||
required: true, |
||||
trigger: ['blur'], |
||||
}" |
||||
prop="" |
||||
> |
||||
<el-input |
||||
v-model="formData.idCode" |
||||
style="width: 300px" |
||||
placeholder="请输入" |
||||
/> |
||||
</el-form-item> |
||||
</el-col> |
||||
|
||||
<el-col :span="12"> |
||||
<el-form-item |
||||
label="单位" |
||||
:rules="{ |
||||
required: true, |
||||
trigger: ['blur'], |
||||
}" |
||||
prop="" |
||||
> |
||||
<div style="width: 300px"> |
||||
<depart-tree-select |
||||
v-model="formData.involveDepartId" |
||||
:check-strictly="true" |
||||
/> |
||||
</div> |
||||
</el-form-item> |
||||
</el-col> |
||||
<el-col :span="12"> |
||||
<el-form-item label="职务" prop=""> |
||||
<el-input |
||||
v-model="formData.bankCard" |
||||
style="width: 300px" |
||||
placeholder="请输入" |
||||
/> |
||||
</el-form-item> |
||||
</el-col> |
||||
<el-col :span="12"> |
||||
<el-form-item |
||||
label="警种" |
||||
:rules="{ |
||||
required: true, |
||||
trigger: ['blur'], |
||||
}" |
||||
prop="" |
||||
> |
||||
<el-select |
||||
v-model="formData.policeType" |
||||
clearable |
||||
style="width: 300px" |
||||
> |
||||
<el-option |
||||
v-for="item in dict.policeType" |
||||
:key="item.id" |
||||
:label="item.dictLabel" |
||||
:value="item.dictValue" |
||||
/> |
||||
</el-select> |
||||
</el-form-item> |
||||
</el-col> |
||||
<el-col :span="12"> |
||||
<el-form-item |
||||
label="警号" |
||||
:rules="{ |
||||
required: true, |
||||
trigger: ['blur'], |
||||
}" |
||||
prop="applicantEmpNo" |
||||
> |
||||
<el-input |
||||
v-model="formData.applicantEmpNo" |
||||
style="width: 300px" |
||||
placeholder="请输入" |
||||
/> |
||||
</el-form-item> |
||||
</el-col> |
||||
<el-col :span="12"> |
||||
<el-form-item label="警衔" prop=""> |
||||
<el-input |
||||
v-model="formData.applicantEmpNo" |
||||
style="width: 300px" |
||||
placeholder="请输入" |
||||
/> |
||||
</el-form-item> |
||||
</el-col> |
||||
<el-col :span="12"> |
||||
<el-form-item label="开户行" prop="bankCard"> |
||||
<el-input |
||||
v-model="formData.bankCard" |
||||
style="width: 300px" |
||||
placeholder="请输入" |
||||
/> |
||||
</el-form-item> |
||||
</el-col> |
||||
<el-col :span="12"> |
||||
<el-form-item label="所属支行" prop="bankBranch"> |
||||
<el-input |
||||
v-model="formData.bankBranch" |
||||
style="width: 300px" |
||||
placeholder="请输入" |
||||
/> |
||||
</el-form-item> |
||||
</el-col> |
||||
<el-col :span="12"> |
||||
<el-form-item label="银行账号" prop="bankCardAccount"> |
||||
<el-input |
||||
v-model="formData.bankCardAccount" |
||||
style="width: 300px" |
||||
placeholder="请输入" |
||||
/> |
||||
</el-form-item> |
||||
</el-col> |
||||
</el-row> |
||||
<el-divider /> |
||||
<h5>案发情况</h5> |
||||
<el-row> |
||||
<el-col :span="12"> |
||||
<el-form-item label="事发时间" prop=""> |
||||
<el-date-picker |
||||
v-model="formData.discoveryTime" |
||||
type="datetime" |
||||
placeholder="请选择" |
||||
value-format="YYYY-MM-DD HH:mm" |
||||
time-format="HH:mm" |
||||
style="width: 300px" |
||||
:disabled-date="disabledDate" |
||||
/> |
||||
</el-form-item> |
||||
</el-col> |
||||
<el-col :span="24"> |
||||
<el-form-item label="事实及理由" prop=""> |
||||
<el-input |
||||
v-model="formData.bankCardAccount" |
||||
type="textarea" |
||||
placeholder="请输入" |
||||
/> |
||||
</el-form-item> |
||||
</el-col> |
||||
<el-col :span="12"> |
||||
<el-form-item label="案发环节" prop=""> |
||||
<el-input |
||||
v-model="formData.bankCardAccount" |
||||
style="width: 300px" |
||||
placeholder="请输入" |
||||
/> |
||||
</el-form-item> |
||||
</el-col> |
||||
<el-col :span="12"> |
||||
<el-form-item label="受伤程度" prop=""> |
||||
<el-input |
||||
v-model="formData.bankCardAccount" |
||||
style="width: 300px" |
||||
placeholder="请输入" |
||||
/> |
||||
</el-form-item> |
||||
</el-col> |
||||
<el-col :span="12"> |
||||
<el-form-item label="侵权形式" prop=""> |
||||
<el-input |
||||
v-model="formData.bankCardAccount" |
||||
style="width: 300px" |
||||
placeholder="请输入" |
||||
/> |
||||
</el-form-item> |
||||
</el-col> |
||||
<el-col :span="12"> |
||||
<el-form-item label="办案单位" prop=""> |
||||
<el-input |
||||
v-model="formData.bankCardAccount" |
||||
style="width: 300px" |
||||
placeholder="请输入" |
||||
/> |
||||
</el-form-item> |
||||
</el-col> |
||||
<el-col :span="12"> |
||||
<el-form-item label="侵权人姓名" prop=""> |
||||
<el-input |
||||
v-model="formData.bankCardAccount" |
||||
style="width: 300px" |
||||
placeholder="请输入" |
||||
/> |
||||
</el-form-item> |
||||
</el-col> |
||||
<el-col :span="12"> |
||||
<el-form-item label="处理方式" prop=""> |
||||
<el-input |
||||
v-model="formData.bankCardAccount" |
||||
style="width: 300px" |
||||
placeholder="请输入" |
||||
/> |
||||
</el-form-item> |
||||
</el-col> |
||||
</el-row> |
||||
<el-divider /> |
||||
<h5>佐证材料</h5> |
||||
<el-row> |
||||
<el-col :span="12"> |
||||
<el-form-item label="附件" prop=""> |
||||
<file-upload /> |
||||
</el-form-item> |
||||
</el-col> |
||||
</el-row> |
||||
<el-divider /> |
||||
<h5>呈报审批</h5> |
||||
<el-row> |
||||
<el-col :span="12"> |
||||
<el-form-item label="审批人" prop=""> |
||||
<el-input /> |
||||
</el-form-item> |
||||
</el-col> |
||||
</el-row> |
||||
</el-form> |
||||
<footer class="flex end"> |
||||
<el-button @click="show = false" size="large">取消</el-button> |
||||
<el-button type="primary" @click="submit" size="large" |
||||
>确定</el-button |
||||
> |
||||
</footer> |
||||
</el-dialog> |
||||
</template> |
||||
<script setup> |
||||
import { listUser, addUser, updateUser } from "@/api/system/user"; |
||||
import { listComfort } from "@/api/work/comfort"; |
||||
import { listRole } from "@/api/system/role"; |
||||
import feedback from "@/utils/feedback"; |
||||
|
||||
import useCatchStore from "@/stores/modules/catch"; |
||||
|
||||
const catchStore = useCatchStore(); |
||||
const dict = catchStore.getDicts(["policeType"]); |
||||
|
||||
const list = ref([]); |
||||
const query = ref({ |
||||
current: 1, |
||||
size: 10, |
||||
}); |
||||
const total = ref(0); |
||||
function getList() { |
||||
listComfort(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 mode = ref("add"); |
||||
const formData = ref({}); |
||||
const formRef = ref(null); |
||||
function handleEdit(row) { |
||||
show.value = true; |
||||
mode.value = "edit"; |
||||
form.value = row; |
||||
} |
||||
|
||||
function submit() { |
||||
formRef.value.validate((flag) => { |
||||
if (flag) { |
||||
if (mode.value === "edit") { |
||||
updateUser(form.value).then(() => { |
||||
show.value = false; |
||||
getList(); |
||||
feedback.msgSuccess("操作成功"); |
||||
}); |
||||
} else { |
||||
addUser(form.value).then(() => { |
||||
show.value = false; |
||||
form.value = {}; |
||||
getList(); |
||||
feedback.msgSuccess("操作成功"); |
||||
}); |
||||
} |
||||
} |
||||
}); |
||||
} |
||||
|
||||
watch(mode, (val) => { |
||||
if (val === "add") { |
||||
form.value = { |
||||
password: "123456", |
||||
}; |
||||
} |
||||
}); |
||||
|
||||
function handleShowAdd() { |
||||
mode.value = "add"; |
||||
show.value = true; |
||||
} |
||||
</script> |
||||
<style lang="scss" scoped> |
||||
h5 { |
||||
margin: 10px 0; |
||||
} |
||||
</style> |
||||
Loading…
Reference in new issue