科室人员信息管理

This commit is contained in:
闫晓茹 2023-02-16 15:24:34 +08:00
parent a0f302dc86
commit 73dd7e4d35

View File

@ -8,7 +8,6 @@
v-show="showSearch"
label-width="130px"
>
<el-form-item label="人员名称" prop="personName">
<el-input
v-model="queryParams.personName"
@ -25,7 +24,7 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="身份证号" prop="cardNo">
<el-input
v-model="queryParams.cardNo"
@ -34,7 +33,7 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
type="primary"
@ -108,21 +107,13 @@
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="主键id" align="center" prop="id" /> -->
<!-- <el-table-column label="主键id" align="center" prop="id" /> -->
<el-table-column label="所属医院" align="center" prop="hospitalName" />
<el-table-column label="所属部门" align="center" prop="departmentName" />
<el-table-column label="所属部门" align="center" prop="departmentName" />
<el-table-column label="人员编码" align="center" prop="personCode" />
<el-table-column label="人员名称" align="center" prop="personName" />
<el-table-column
label="人员联系电话"
align="center"
prop="personPhone"
/>
<el-table-column
label="人员地址"
align="center"
prop="personAddress"
/>
<el-table-column label="人员联系电话" align="center" prop="personPhone" />
<el-table-column label="人员地址" align="center" prop="personAddress" />
<el-table-column label="身份证号" align="center" prop="cardNo" />
<el-table-column label="人员职称" align="center" prop="academicTitle">
<template slot-scope="scope">
@ -262,10 +253,7 @@
:rules="rules.hospitalPersonInfoList.personName"
:prop="`hospitalPersonInfoList.${index}.personName`"
>
<el-input
v-model="item.personName"
placeholder="请输入人员名称"
/>
<el-input v-model="item.personName" placeholder="请输入人员名称" />
</el-form-item>
<el-form-item
label="人员联系电话"
@ -298,9 +286,12 @@
label="人员职称"
:rules="rules.hospitalPersonInfoList.academicTitle"
:prop="`hospitalPersonInfoList.${index}.academicTitle`"
>
<el-select v-model="item.academicTitle" placeholder="请选择" style="width:200px" >
<el-select
v-model="item.academicTitle"
placeholder="请选择"
style="width: 200px"
>
<el-option
v-for="item in options"
:key="item.value"
@ -332,14 +323,13 @@
:rules="rules.hospitalPersonInfoList.personIntroduce"
:prop="`hospitalPersonInfoList.${index}.personIntroduce`"
>
<editor
@imgs="imgs"
:min-height="100"
v-model="item.personIntroduce"
></editor>
</el-form-item>
<el-button
type="primary"
circle
@ -363,7 +353,7 @@
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- 选择医院 -->
<!--新增 选择医院 -->
<el-dialog
title="选择医院"
:visible.sync="innerVisible"
@ -471,6 +461,7 @@
@pagination="info"
/>
</el-dialog>
<!-- 选择科室 -->
<el-dialog
title="选择科室"
@ -575,26 +566,66 @@
@pagination="departmentList"
/>
</el-dialog>
<!-- 修改对话框 -->
<el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="110px">
<!-- 修改对话框 -->
<el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="110px" :inline="true">
<el-form-item label="所属医院" prop="hospitalName">
<el-input
v-model="form.hospitalName"
disabled
placeholder="请输入所属医院"
style="width: 250px"
maxlength="15"
/>
<el-button
type=""
v-if="form.hospitalName == '请选择所属医院'"
@click="clickinnerVisiblexg()"
style="
width: 250px;
text-align: left;
height: 36px;
color: #c0c4cc;
overflow: hidden;
"
>{{ foem.hospitalName }}</el-button
>
<el-button
@click="clickinnerVisiblexg()"
type=""
v-else
style="
width: 250px;
text-align: left;
height: 36px;
padding-left: -10px;
overflow: hidden;
"
>{{ form.hospitalName }}</el-button
>
</el-form-item>
<el-form-item label="所属科室" prop="departmentName">
<el-input
v-model="form.departmentName"
disabled
placeholder="请输入科室名称"
style="width: 250px"
maxlength="15"
/>
<el-button
type=""
v-if="form.departmentName == '请选择所属科室'"
@click="clickdepartmentlist()"
style="
width: 250px;
text-align: left;
height: 36px;
color: #c0c4cc;
overflow: hidden;
"
>{{ form.departmentName }}</el-button
>
<el-button
@click="clickdepartmentlist()"
type=""
v-else
style="
width: 250px;
text-align: left;
height: 36px;
padding-left: -10px;
overflow: hidden;
"
>{{ form.departmentName }}</el-button
>
</el-form-item>
<el-form-item label="人员名称" prop="personName">
<el-input
@ -604,6 +635,14 @@
maxlength="15"
/>
</el-form-item>
<el-form-item label="人员联系电话" prop="personPhone">
<el-input
v-model="form.personPhone"
placeholder="请输入身份证号"
maxlength="11"
style="width: 250px"
/>
</el-form-item>
<el-form-item label="科室地址" prop="personAddress">
<el-input
v-model="form.personAddress"
@ -611,6 +650,8 @@
style="width: 250px"
/>
</el-form-item>
<el-form-item label="身份证" prop="cardNo">
<el-input
v-model="form.cardNo"
@ -619,17 +660,21 @@
style="width: 250px"
/>
</el-form-item>
<el-form-item label="人员职称" prop="academicTitle">
<el-select v-model="form.academicTitle" placeholder="请选择人员职称" style="width:250px">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<el-select
v-model="form.academicTitle"
placeholder="请选择人员职称"
style="width: 250px"
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="咨询费用" prop="consultingFee">
<el-input
@ -647,10 +692,10 @@
</el-form-item>
<el-form-item label="个人简介" prop="personIntroduce">
<editor
@imgs="imgs"
:min-height="100"
v-model="form.personIntroduce"
></editor>
@imgs="imgs"
:min-height="100"
v-model="form.personIntroduce"
></editor>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@ -658,6 +703,218 @@
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!--修改 选择医院 -->
<el-dialog
title="选择医院"
:visible.sync="innerVisiblexg"
width="1000px"
append-to-body
:before-close="innerVisiblecancelxg"
>
<el-form
ref="queryForm"
:model="hospitalqueryParams"
:rules="rules"
label-width="80px"
:inline="true"
>
<el-form-item label="医院编码" prop="hospitalCode" label-width="120">
<el-input
v-model="hospitalqueryParams.hospitalCode"
placeholder="请输入科室编码"
clearable
/>
</el-form-item>
<el-form-item label="医院名称" prop="hospitalName" label-width="120">
<el-input
v-model="hospitalqueryParams.hospitalName"
placeholder="请输入医院名称"
clearable
/>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="info"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="addresetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-table
:data="infolist"
@cell-dblclick="nurseclick"
v-loading="loading"
>
<el-table-column label="请选择" width="100" align="center">
<template slot-scope="scope">
<el-button
type="primary"
style="width: 15px; height: 15px"
v-if="form.hospitalId == scope.row.id"
circle
@click="nurseclickxg(scope.row)"
></el-button>
<el-button
v-else
style="width: 15px; height: 15px"
circle
@click="nurseclickxg(scope.row)"
></el-button>
</template>
</el-table-column>
<el-table-column
property="hospitalCode"
label="医院编码"
align="center"
>
</el-table-column>
<el-table-column
property="hospitalName"
label="医院名称"
align="center"
:show-overflow-tooltip="true"
>
</el-table-column>
<el-table-column
property="hospitalAddress"
label="医院地址"
align="center"
>
</el-table-column>
<!-- <el-table-column
property="hospitalIntroduce"
label="医院介绍"
align="center"
:show-overflow-tooltip="true"
>
</el-table-column> -->
<el-table-column
property="phone"
label="联系电话"
align="center"
:show-overflow-tooltip="true"
>
</el-table-column>
</el-table>
<pagination
v-show="total2 > 0"
:total="total2"
:page.sync="hospitalqueryParams.pageNum"
:limit.sync="hospitalqueryParams.pageSize"
@pagination="info"
/>
</el-dialog>
<!-- 修改科室 -->
<el-dialog
title="选择科室"
:visible.sync="innerVisibledepartmentxg"
width="1000px"
append-to-body
:before-close="innerVisiblecanceldepartxg"
>
<el-form
ref="queryForm"
:model="departmentqueryParams"
:rules="rules"
label-width="80px"
:inline="true"
>
<el-form-item label="科室编码" prop="departmentCode" label-width="120">
<el-input
v-model="departmentqueryParams.departmentCode"
placeholder="请输入科室编码"
clearable
/>
</el-form-item>
<el-form-item label="科室名称" prop="departmentName" label-width="120">
<el-input
v-model="departmentqueryParams.departmentName"
placeholder="请输入医院名称"
clearable
/>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="departmentList"
>搜索</el-button
>
<el-button
icon="el-icon-refresh"
size="mini"
@click="departresetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-table
:data="hospitalDepartmentList"
@cell-dblclick="nurseclick"
v-loading="loading"
>
<el-table-column label="请选择" width="100" align="center">
<template slot-scope="scope">
<el-button
type="primary"
style="width: 15px; height: 15px"
v-if="form.departmentId == scope.row.id"
circle
@click="departmentclickxg(scope.row)"
></el-button>
<el-button
v-else
style="width: 15px; height: 15px"
circle
@click="departmentclickxg(scope.row)"
></el-button>
</template>
</el-table-column>
<el-table-column
property="departmentCode"
label="科室编码"
align="center"
>
</el-table-column>
<el-table-column
property="departmentName"
label="科室名称"
align="center"
:show-overflow-tooltip="true"
>
</el-table-column>
<el-table-column
property="departmentPhone"
label="科室联系电话"
align="center"
>
</el-table-column>
<el-table-column
property="departmentAddress"
label="科室地址"
align="center"
:show-overflow-tooltip="true"
>
</el-table-column>
</el-table>
<pagination
v-show="total3 > 0"
:total="total3"
:page.sync="departmentqueryParams.pageNum"
:limit.sync="departmentqueryParams.pageSize"
@pagination="departmentList"
/>
</el-dialog>
</div>
</template>
@ -676,8 +933,8 @@ export default {
components: { editor },
name: "HospitalPerson",
data() {
//
var isCardId = (rule, value, callback) => {
//
var isCardId = (rule, value, callback) => {
if (!value) {
return new Error("请输入身份证号)");
} else {
@ -691,16 +948,19 @@ export default {
}
}
};
//
var checkMobile = (rule, value, cb) => {
//
const regMobile =
/^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57]|19[0-9])[0-9]{8}$/;
if (regMobile.test(value)) {
return cb();
}
cb(new Error("请输入正确的联系电话"));
};
//
// var checkMobile = (rule, value, cb) => {
// //
// const regMobile =
// // /^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57]|19[0-9])[0-9]{8}$/;
// // /^((0\\d{2,3}(-)?\\d{7,8})|((13[0-9]{1})|(14[0-9]{1})|(15[0-9]{1})|(16[2567]{1})(17[0-9]{1})|(18[0-9]{1})|(19[0-9]{1}))+\\d{8})$/;
// /^((0\d{2,3}(-)?\d{7,8})|(13[0-9]|14[0-9]|15[0-9]|16[2567]|17[0-9]|18[0-9]|19[0-9])+\d{8})$/;
// if (regMobile.test(value)) {
// return cb();
// }
// cb(new Error(""));
// };
return {
//
loading: true,
@ -710,6 +970,8 @@ export default {
total3: 0,
innerVisible: false,
innerVisibledepartment: false,
innerVisibledepartmentxg: false,
innerVisiblexg: false,
imgsurl: { pictureUrlList: [] },
options: [
{
@ -825,7 +1087,7 @@ export default {
personIntroduce: [
{
required: true,
trigger: "blur",
message: "请选择个人简介",
},
@ -840,8 +1102,8 @@ export default {
personPhone: [
{
required: true,
validator: checkMobile,
message: "",
// validator: checkMobile,
message: "请输入联系电话",
trigger: "blur",
},
],
@ -853,7 +1115,7 @@ export default {
trigger: "blur",
},
],
consultingFee: [
{
required: true,
@ -863,79 +1125,79 @@ export default {
],
},
hospitalId: [
{
required: true,
message: "请选择所属医院",
trigger: "blur",
},
],
departmentId: [
{
required: true,
message: "请选择所属科室",
trigger: "blur",
},
],
personName: [
{
required: true,
message: "请选择科室人员名称",
trigger: "blur",
},
],
personAddress: [
{
required: true,
message: "请选择科室人员地址",
trigger: "blur",
},
],
academicTitle: [
{
required: true,
message: "请选择人员职称",
trigger: "blur",
},
],
personIntroduce: [
{
required: true,
trigger: "blur",
message: "请选择个人简介",
},
],
personSort: [
{
required: true,
message: "请选择排序",
trigger: "blur",
},
],
personPhone: [
{
required: true,
validator: checkMobile,
message: "",
trigger: "blur",
},
],
cardNo: [
{
required: true,
message: "",
validator: isCardId,
trigger: "blur",
},
],
consultingFee: [
{
required: true,
message: "请选择咨询费用",
trigger: "blur",
},
],
{
required: true,
message: "请选择所属医院",
trigger: "blur",
},
],
departmentId: [
{
required: true,
message: "请选择所属科室",
trigger: "blur",
},
],
personName: [
{
required: true,
message: "请选择科室人员名称",
trigger: "blur",
},
],
personAddress: [
{
required: true,
message: "请选择科室人员地址",
trigger: "blur",
},
],
academicTitle: [
{
required: true,
message: "请选择人员职称",
trigger: "blur",
},
],
personIntroduce: [
{
required: true,
trigger: "blur",
message: "请选择个人简介",
},
],
personSort: [
{
required: true,
message: "请选择排序",
trigger: "blur",
},
],
personPhone: [
{
required: true,
// validator: checkMobile,
message: "11",
trigger: "blur",
},
],
cardNo: [
{
required: true,
message: "",
validator: isCardId,
trigger: "blur",
},
],
consultingFee: [
{
required: true,
message: "请选择咨询费用",
trigger: "blur",
},
],
},
};
},
@ -948,7 +1210,7 @@ export default {
console.log(item);
this.imgsurl.pictureUrlList.push(item);
},
nurseclick(row) {
console.log(row);
this.form.hospitalPersonInfoList[this.nnerVisibleindex].hospitalName =
@ -957,6 +1219,13 @@ export default {
row.id;
this.innerVisible = false;
},
nurseclickxg(row) {
console.log(row);
this.form.hospitalName = row.hospitalName;
this.form.hospitalId = row.id;
this.innerVisiblexg = false;
},
//
departmentclick(row) {
console.log(row);
this.form.hospitalPersonInfoList[
@ -967,13 +1236,28 @@ export default {
// }
this.innerVisibledepartment = false;
},
departmentclickxg(row) {
console.log(row);
this.form.departmentName = row.departmentName;
this.form.departmentId = row.id;
// }
this.innerVisibledepartmentxg = false;
},
//
innerVisiblecancel() {
this.innerVisible = false;
},
innerVisiblecancelxg() {
this.innerVisiblexg = false;
},
//
innerVisiblecanceldepart() {
this.innerVisibledepartment = false;
},
innerVisiblecanceldepartxg() {
this.innerVisibledepartmentxg = false;
},
//deldisease
deldisease(index) {
this.form.hospitalPersonInfoList.splice(index, 1);
@ -982,7 +1266,7 @@ export default {
var obj = {
hospitalId: "",
departmentCode: "",
departmentId:"",
departmentId: "",
departmentName: "请选择所属科室",
departmentPerson: "",
departmentPhone: "",
@ -1012,6 +1296,15 @@ export default {
this.innerVisible = true;
// this.homenumber = item;
},
//
clickinnerVisiblexg(item) {
this.addresetQuery();
// this.form.hospitalId = item.hospitalId;
// this.nnerVisibleindex = index;
// console.log(this.nnerVisibleindex);
this.innerVisiblexg = true;
// this.homenumber = item;
},
//
clicklist(item, index) {
this.departmentList();
@ -1020,6 +1313,12 @@ export default {
console.log(this.departmentListindex);
this.innerVisibledepartment = true;
},
//
clickdepartmentlist(){
this.departmentList();
// this.form.departmentId = item.departmentId;
this.innerVisibledepartmentxg = true;
},
departmentList() {
// this.loading = true;
listHospitalDepartment(this.departmentqueryParams).then((response) => {
@ -1029,7 +1328,6 @@ export default {
});
},
//
addresetQuery() {
this.hospitalqueryParams = {
pageNum: 1,
@ -1125,6 +1423,15 @@ export default {
},
/** 提交按钮 */
submitForm() {
// if (this.form.id == null) {
// this.form.departmentName = this.form.hospitalPersonInfoList[0].departmentName
// this.form.personName = this.form.hospitalPersonInfoList[0].personName
// this.form.personPhone = this.form.hospitalPersonInfoList[0].personPhone
// this.form.personAddress = this.form.hospitalPersonInfoList[0].personAddress
// this.form.cardNo = this.form.hospitalPersonInfoList[0].cardNo
// this.form.academicTitle = this.form.hospitalPersonInfoList[0].academicTitle
// this.form.consultingFee = this.form.hospitalPersonInfoList[0].consultingFee
// }
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.id != null) {