NurseStationUI/src/views/system/person/index.vue
2023-04-11 11:04:38 +08:00

595 lines
22 KiB
Vue

<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="70px"
>
<el-form-item label="护理站" prop="nurseStationId">
<el-select
v-model="queryParams.nurseStationId"
placeholder="请选择护理站"
@keyup.enter.native="handleQuery"
@change="handleQuery"
>
<el-option
v-for="item in handstationlist"
:key="item.id"
:label="item.nurseStationName"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="所属科室" prop="departmentName">
<el-input
v-model="queryParams.departmentName"
placeholder="请输入所属科室"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="姓名" prop="nursePersonName">
<el-input
v-model="queryParams.nursePersonName"
placeholder="请输入姓名"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="联系电话" prop="phone">
<el-input
v-model="queryParams.phone"
placeholder="请输入联系电话"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="职称级别" prop="positionalTitleLevel">
<el-select v-model="queryParams.positionalTitleLevel" clearable>
<el-option
v-for="item in positionalTitleLevellist"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="审核状态" prop="modifyCheckStatus">
<el-select v-model="queryParams.modifyCheckStatus" clearable>
<el-option
v-for="item in modifyCheckStatuslist"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:person:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:person:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:person:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="info"
plain
icon="el-icon-upload2"
size="mini"
@click="handleImport"
v-hasPermi="['system:person:importStationPerson']"
>导入</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="nurseStationPersonList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column
label="护理站名称"
align="center"
prop="nurseStationName"
:show-overflow-tooltip="true"
/>
<el-table-column label="科室名称" align="center" prop="departmentName" />
<el-table-column label="姓名" align="center" prop="nursePersonName" />
<el-table-column label="性别" align="center" prop="sex">
<template slot-scope="scope">
{{ scope.row.sex == "MALE" ? "男" : "" }}
{{ scope.row.sex == "FEMALE" ? "女" : "" }}
</template>
</el-table-column>
<el-table-column label="联系电话" align="center" prop="phone" />
<el-table-column label="居住地址" align="center" prop="address" :show-overflow-tooltip="true" />
<el-table-column label="星级评价" align="center" prop="evaluateStarCount" />
<el-table-column label="创建人" align="center" prop="createBy" />
<el-table-column label="创建时间" align="center" prop="createTime" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-s-check"
@click="handshenhe(scope.row)"
v-if="scope.row.modifyInfoFlag==1"
>审核</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:person:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:person:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 护理站弹框 -->
<el-dialog
:title="title2"
:visible.sync="innerVisiblexg"
width="1000px"
append-to-body
:before-close="addcancel"
>
<el-form
ref="queryForm"
:model="nurseStationqueryParams"
:rules="rules"
label-width="80px"
:inline="true"
>
<el-form-item label="护理站编码" prop="nurseStationCode" label-width="120">
<el-input
v-model="nurseStationqueryParams.nurseStationCode"
placeholder="请输入护理站编码"
clearable
/>
</el-form-item>
<el-form-item label="护理站名称" prop="nurseStationName" label-width="120">
<el-input
v-model="nurseStationqueryParams.nurseStationName"
placeholder="请输入护理站名称"
clearable
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery4">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery4">重置</el-button>
</el-form-item>
</el-form>
<el-table :data="nurseStationlist" @cell-dblclick="nurseclick2">
<el-table-column label="请选择" width="100" align="center">
<template slot-scope="scope">
<el-button
type="primary"
style="width: 15px; height: 15px"
v-if="stationid2 == scope.row.id"
circle
@click="nurseclick2(scope.row)"
></el-button>
<el-button
v-else
style="width: 15px; height: 15px"
circle
@click="nurseclick2(scope.row)"
></el-button>
</template>
</el-table-column>
<el-table-column property="nurseStationCode" label="护理站编码" align="center"></el-table-column>
<el-table-column property="nurseStationName" label="护理站名称" align="center"></el-table-column>
<el-table-column property="phone" label="联系电话" align="center"></el-table-column>
<el-table-column property="address" label="护理站地址" align="center"></el-table-column>
</el-table>
<pagination
v-show="nursetotal > 0"
:total="nursetotal"
:page.sync="nurseStationqueryParams.pageNum"
:limit.sync="nurseStationqueryParams.pageSize"
@pagination="info"
/>
</el-dialog>
<!-- 所属科室弹框 -->
<el-dialog
:title="title3"
:visible.sync="innerVisiblexg2"
width="1000px"
append-to-body
:before-close="departcancel"
>
<el-form
ref="queryForm"
:model="queryParams3"
:rules="rules"
label-width="80px"
:inline="true"
>
<el-form-item label="科室编码" prop="departmentCode" label-width="120">
<el-input v-model="queryParams3.departmentCode" placeholder="请输入科室编码" clearable />
</el-form-item>
<el-form-item label="科室名称" prop label-width="120">
<el-input v-model="queryParams3.departmentName" placeholder="请输入科室名称" clearable />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery3">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery3">重置</el-button>
</el-form-item>
</el-form>
<el-table :data="StationDepartmentLists" @cell-dblclick="StationDepartmentclick2">
<el-table-column label="请选择" width="100" align="center">
<template slot-scope="scope">
<el-button
type="primary"
style="width: 15px; height: 15px"
v-if="departid2 == scope.row.departmentCode"
circle
@click="StationDepartmentclick2(scope.row)"
></el-button>
<el-button
v-else
style="width: 15px; height: 15px"
circle
@click="StationDepartmentclick2(scope.row)"
></el-button>
</template>
</el-table-column>
<el-table-column property="nurseStationName" label="护理站名称" align="center"></el-table-column>
<el-table-column property="departmentCode" label="科室编码" align="center"></el-table-column>
<el-table-column property="departmentName" label="科室名称" align="center"></el-table-column>
<el-table-column property="departmentPerson" label="科室负责人" align="center"></el-table-column>
<el-table-column property="phone" label="联系电话" align="center"></el-table-column>
</el-table>
<pagination
v-show="departtotal > 0"
:total="departtotal"
:page.sync="queryParams3.pageNum"
:limit.sync="queryParams3.pageSize"
@pagination="getList3"
/>
</el-dialog>
<!-- 新增修改 -->
<el-dialog
:title="title"
:visible.sync="open"
width="900px"
append-to-body
:before-close="cancel"
>
<el-form ref="form" :model="form" :rules="rules" label-width="100px" :inline="true">
<el-form-item label="所属护理站" prop="nurseStationId">
<el-button
type
@click="departclickxg"
v-if="nurseStationName == '请选择所属护理站'"
style="width: 300px; text-align: left; height: 36px; color: #c0c4cc"
>{{ nurseStationName }}</el-button>
<el-button
type
@click="departclickxg()"
v-else
style="
width: 300px;
text-align: left;
height: 36px;
"
>{{ nurseStationName }}</el-button>
</el-form-item>
<el-form-item label="所属科室" prop="departmentName">
<el-button
type
@click="departclick2"
v-if="departmentName == '请选择所属科室'"
style="width: 300px; text-align: left; height: 36px; color: #c0c4cc"
>{{ departmentName }}</el-button>
<el-button
type
@click="departclick2()"
v-else
style="
width: 300px;
text-align: left;
height: 36px;
"
>{{ departmentName }}</el-button>
</el-form-item>
<el-form-item label="姓名" prop="nursePersonName">
<el-input
maxlength="15"
v-model="form.nursePersonName"
placeholder="请输入姓名"
style="width: 300px"
/>
</el-form-item>
<el-form-item label="出生日期" prop="birthDate">
<el-date-picker
v-model="form.birthDate"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd"
type="date"
placeholder="选择日期"
style="width: 300px"
></el-date-picker>
</el-form-item>
<el-form-item label="护理人职称" prop="nursePersonType">
<el-select
v-model="form.nursePersonType"
clearable
placeholder="请选择"
style="width: 300px"
>
<el-option
v-for="item in nursePersonTypes"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="性别" prop="sex">
<el-select v-model="form.sex" clearable placeholder="请选择" style="width: 300px">
<el-option
v-for="item in sexs"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="联系电话" prop="phone">
<el-input v-model="form.phone" placeholder="请输入联系电话" maxlength="11" style="width: 300px" />
</el-form-item>
<el-form-item label="居住地址" prop="address">
<el-input
v-model="form.address"
placeholder="请输入居住地址"
maxlength="50"
style="width: 300px"
/>
</el-form-item>
<el-form-item label="职称级别">
<el-select v-model="form.positionalTitleLevel" style="width: 300px" clearable>
<el-option
v-for="item in positionalTitleLevellist"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="擅长项目">
<el-input
maxlength="300"
v-model="form.geniusItem"
placeholder="请输入擅长项目"
style="width: 300px"
/>
</el-form-item>
<el-form-item label="证书资质" required>
<el-table :data="form.nurseStationPersonCertificateList" style="width: 850px">
<el-table-column property="consumableCount" label="证书名称" align="center">
<template slot-scope="scope">
<el-input maxlength="100" v-model="scope.row.certificateName" placeholder="请输入证书名称"></el-input>
</template>
</el-table-column>
<el-table-column property="certificateUrl" label="证书图片" align="center">
<template slot-scope="scope">
<stationAcatar
@imgUrl="imgUrl"
@item="imgclassifyItem"
:img="scope.row.certificateUrl"
:item="scope.row"
:type="'personCertificateUrl'"
/>
</template>
</el-table-column>
<el-table-column property="sort" label="证书排序" align="center">
<template slot-scope="scope">
<el-input
maxlength="5"
v-model.number="scope.row.sort"
placeholder="请输入排序(只能输入数字)"
oninput="value=value.replace(/[^\d]/g,'')"
/>
</template>
</el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="addCertificate">新增</el-button>
<el-button size="mini" type="text" @click="delCertificate(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<!-- 导入 -->
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
<el-upload
ref="upload"
:limit="1"
accept=".xlsx, .xls"
:headers="upload.headers"
:action="upload.url"
:disabled="upload.isUploading"
:on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess"
:auto-upload="false"
drag
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
将文件拖到此处,或
<em>点击上传</em>
</div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许导入xls、xlsx格式文件。</span>
<el-link
type="primary"
:underline="false"
style="font-size: 12px; vertical-align: baseline"
@click="importTemplate"
>下载模板</el-link>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm">确 定</el-button>
<el-button @click="upload.open = false">取 消</el-button>
</div>
</el-dialog>
<!-- 审核 -->
<el-dialog
title="审核"
:visible.sync="templeopen"
width="1100px"
append-to-body
:before-close="templeopenfalse"
>
<el-form ref="form" :model="form" label-width="100px" :inline="true">
<!-- <el-form-item label="所属护理站">
<div class="text">{{ form.nurseStationName }}</div>
</el-form-item>
<el-form-item label="所属科室">
<div class="text">{{ form.departmentName }}</div>
</el-form-item>-->
<el-form-item label="姓名">
<div class="text">{{ form.nursePersonName }}</div>
</el-form-item>
<!-- <el-form-item label="护理人职称">
<div class="text">
{{ form.nursePersonType=='NURSE'?"护士":'' }}
{{ form.nursePersonType=='NURSE_TEACHER'?"护理师":'' }}
</div>
</el-form-item>
<el-form-item label="性别">
<div class="text">
{{ form.sex=='MALE'?'男':'' }}
{{ form.sex=='FEMALE'?'女':'' }}
</div>
</el-form-item>
<el-form-item label="联系电话">
<div class="text">{{ form.phone }}</div>
</el-form-item>
<el-form-item label="居住地址">
<div class="text">{{ form.address }}</div>
</el-form-item>-->
<el-form-item label="职称级别">
<div class="text">
{{ form.positionalTitleLevelCheck=='PRIMARY_LEVEL'?'初级':'' }}
{{ form.positionalTitleLevelCheck=='MIDDLE_LEVEL'?'中级':'' }}
{{ form.positionalTitleLevelCheck=='HIGH_LEVEL'?'高级':'' }}
</div>
</el-form-item>
<el-form-item label="擅长项目">
<div class="text" style="width:600px">{{ form.geniusItemCheck }}</div>
</el-form-item>
<el-form-item label="证书资质">
<el-table :data="form.nurseStationPersonCheckList" style="width: 1050px">
<el-table-column property="consumableCount" label="证书名称" align="center" width="600px">
<template slot-scope="scope">
<div
style="text-align:left;width:500px"
class="text"
>{{ scope.row.certificateName }}</div>
</template>
</el-table-column>
<el-table-column property="certificateUrl" label="证书图片" align="center">
<template slot-scope="scope">
<img :src="baseurl+scope.row.certificateUrl" alt style="width:100px;height:100px" />
<!-- <stationAcatar
@imgUrl="imgUrl"
@item="imgclassifyItem"
:img="scope.row.certificateUrl"
:item="scope.row"
:type="'personCertificateUrl'"
/>-->
</template>
</el-table-column>
<el-table-column property="sort" label="证书排序" align="center">
<template slot-scope="scope">
<div style="text-align:left;width:200px" class="text">{{ scope.row.sort }}</div>
</template>
</el-table-column>
</el-table>
</el-form-item>
</el-form>
<div style="display: flex;justify-content: space-evenly;">
<el-button type="primary" @click="templesubmit">同意</el-button>
<el-button @click="templeopen=false">取消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import personjs from "./personjs";
export default personjs;
</script>
<style scoped>
.text {
width: 400px;
height: 40px;
overflow: hidden;
font-size: 14px;
line-height: 40px;
border-radius: 4px;
padding-left: 20px;
border: 1px solid #e6ebf5;
}
</style>