科室人员信息管理

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