This commit is contained in:
闫晓茹 2023-03-09 14:57:33 +08:00
parent 43af4bd76d
commit 5f44a23d29

View File

@ -169,7 +169,7 @@
<el-dialog
:title="title"
:visible.sync="addopen"
width="1100px"
width="1200px"
append-to-body
>
<el-form
@ -179,161 +179,174 @@
label-width="140px"
:inline="true"
>
<el-form-item label="所属医院" prop="hospitalId">
<el-button
type=""
v-if="form.hospitalName == '请选择所属医院'"
@click="clickinnerVisible()"
style="
width: 210px;
text-align: left;
height: 36px;
color: #c0c4cc;
overflow: hidden;
"
>{{ form.hospitalName }}</el-button
>
<el-button
@click="clickinnerVisible()"
type=""
v-else
style="
width: 210px;
text-align: left;
height: 36px;
padding-left: -10px;
overflow: hidden;
"
>{{ form.hospitalName }}</el-button
>
</el-form-item>
<el-form-item label="所属科室" prop="departmentId">
<el-button
type=""
v-if="form.departmentName == '请选择所属科室'"
@click="clicklist()"
style="
width: 210px;
text-align: left;
height: 36px;
color: #c0c4cc;
overflow: hidden;
"
>{{ form.departmentName }}</el-button
>
<el-button
@click="clicklist()"
type=""
v-else
style="
width: 210px;
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 v-model="form.personName" placeholder="请输入人员名称" />
</el-form-item>
<el-form-item label="人员联系电话" prop="personPhone">
<el-input
maxlength="11"
v-model="form.personPhone"
placeholder="请输入人员联系电话"
/>
</el-form-item>
<el-form-item label="人员地址" prop="personAddress">
<el-input
v-model="form.personAddress"
style="width: 210px"
placeholder="请输入人员地址"
/>
</el-form-item>
<el-form-item label="身份证号" prop="cardNo">
<el-input
maxlength="18"
v-model="form.cardNo"
placeholder="请输入身份证号"
/>
</el-form-item>
<el-form-item label="人员职称" prop="academicTitle">
<el-select
v-model="form.academicTitle"
placeholder="请选择"
style="width: 210px"
>
<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
maxlength="10"
v-model="form.consultingFee"
placeholder="请输入咨询费用"
/>
</el-form-item>
<el-form-item label="显示顺序" prop="personSort">
<el-input
oninput="value=value.replace(/[^\d]/g,'')"
maxlength="5"
v-model="form.personSort"
placeholder="请输入显示顺序"
/>
</el-form-item>
<el-form-item label="人员头像" prop="personPictureUrl">
<stationAcatar
@imgUrl="imgUrl"
:img="form.personPictureUrl"
:type="'personPictureUrl'"
/>
</el-form-item>
<el-form-item label="个人简介" prop="personIntroduce">
<editor
@imgs="imgs"
:min-height="80"
v-model="form.personIntroduce"
></editor>
</el-form-item>
<div
v-for="(item, index) in form.hospitalPersonInfoList"
v-for="(item, index) in form.hospitalPersonCertificateList"
:key="index"
style="margin-top: 20px; border-bottom: 1px solid #f3f3f3"
>
<el-form-item
label="所属医院"
:rules="rules.hospitalPersonInfoList.hospitalId"
:prop="`hospitalPersonInfoList.${index}.hospitalId`"
>
<el-button
type=""
v-if="item.hospitalName == '请选择所属医院'"
@click="clickinnerVisible(item, index)"
style="
width: 210px;
text-align: left;
height: 36px;
color: #c0c4cc;
overflow: hidden;
"
>{{ item.hospitalName }}</el-button
>
<el-button
@click="clickinnerVisible(item, index)"
type=""
v-else
style="
width: 210px;
text-align: left;
height: 36px;
padding-left: -10px;
overflow: hidden;
"
>{{ item.hospitalName }}</el-button
>
</el-form-item>
<el-form-item
label="所属科室"
:rules="rules.hospitalPersonInfoList.departmentId"
:prop="`hospitalPersonInfoList.${index}.departmentId`"
>
<el-button
type=""
v-if="item.departmentName == '请选择所属科室'"
@click="clicklist(item, index)"
style="
width: 210px;
text-align: left;
height: 36px;
color: #c0c4cc;
overflow: hidden;
"
>{{ item.departmentName }}</el-button
>
<el-button
@click="clicklist(item, index)"
type=""
v-else
style="
width: 210px;
text-align: left;
height: 36px;
padding-left: -10px;
overflow: hidden;
"
>{{ item.departmentName }}</el-button
>
</el-form-item>
<el-form-item
label="人员名称"
:rules="rules.hospitalPersonInfoList.personName"
:prop="`hospitalPersonInfoList.${index}.personName`"
>
<el-input v-model="item.personName" placeholder="请输入人员名称" />
</el-form-item>
<el-form-item
label="人员联系电话"
:rules="rules.hospitalPersonInfoList.personPhone"
:prop="`hospitalPersonInfoList.${index}.personPhone`"
label="证书名称"
:rules="hospitalPersonCertificateList.certificateName"
:prop="`hospitalPersonCertificateList.${index}.certificateName`"
>
<el-input
maxlength="11"
v-model="item.personPhone"
placeholder="请输入人员联系电话"
oninput="value=value.replace(/[^\d]/g,'')"
maxlength="5"
v-model="item.certificateName"
placeholder="请输入证书名称"
/>
</el-form-item>
<el-form-item
label="证书图片"
:rules="hospitalPersonCertificateList.certificateUrl"
:prop="`hospitalPersonCertificateList.${index}.certificateUrl`"
>
<stationAcatar
@imgUrl="imgUrl"
@item="imgclassifyItem"
:img="item.certificateUrl"
:item="item"
:type="'certificateUrl'"
/>
</el-form-item>
<el-form-item
label="人员地址"
:rules="rules.hospitalPersonInfoList.personAddress"
:prop="`hospitalPersonInfoList.${index}.personAddress`"
label="证书显示顺序"
:rules="hospitalPersonCertificateList.certificateSort"
:prop="`hospitalPersonCertificateList.${index}.certificateSort`"
>
<el-input
v-model="item.personAddress"
placeholder="请输入人员地址"
oninput="value=value.replace(/[^\d]/g,'')"
maxlength="5"
v-model="item.certificateSort"
placeholder="请输入证书显示顺序"
/>
</el-form-item>
<el-form-item
label="身份证号"
:rules="rules.hospitalPersonInfoList.cardNo"
:prop="`hospitalPersonInfoList.${index}.cardNo`"
>
<el-input maxlength="18" v-model="item.cardNo" placeholder="请输入身份证号" />
</el-form-item>
<el-form-item
label="人员职称"
:rules="rules.hospitalPersonInfoList.academicTitle"
:prop="`hospitalPersonInfoList.${index}.academicTitle`"
>
<el-select
v-model="item.academicTitle"
placeholder="请选择"
style="width: 200px"
>
<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="咨询费用"
:rules="rules.hospitalPersonInfoList.consultingFee"
:prop="`hospitalPersonInfoList.${index}.consultingFee`"
>
<el-input
maxlength="10"
v-model="item.consultingFee"
placeholder="请输入咨询费用"
/>
</el-form-item>
<el-form-item
label="显示顺序"
:rules="rules.hospitalPersonInfoList.personSort"
:prop="`hospitalPersonInfoList.${index}.personSort`"
>
<el-input
oninput="value=value.replace(/[^\d]/g,'')"
maxlength="5"
v-model="item.personSort" placeholder="请输入显示顺序" />
</el-form-item>
<el-form-item
label="个人简介"
: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"
@ -575,7 +588,7 @@
<el-dialog
:title="title"
:visible.sync="open"
width="1000px"
width="1200px"
append-to-body
>
<el-form
@ -597,7 +610,7 @@
color: #c0c4cc;
overflow: hidden;
"
>{{ foem.hospitalName }}</el-button
>{{ form.hospitalName }}</el-button
>
<el-button
@click="clickinnerVisiblexg()"
@ -706,13 +719,84 @@
style="width: 250px"
/>
</el-form-item>
<el-form-item label="个人简介" prop="personIntroduce">
<el-form-item label="人员头像" prop="personPictureUrl">
<stationAcatar
@imgUrl="imgUrl"
:img="form.personPictureUrl"
:type="'personPictureUrl'"
/>
</el-form-item>
<el-form-item
label="个人简介"
prop="personIntroduce"
style="margin-top: 10px; margin-left: 10px"
>
<editor
@imgs="imgs"
:min-height="100"
:min-height="80"
v-model="form.personIntroduce"
></editor>
</el-form-item>
<div
v-for="(item, index) in form.hospitalPersonCertificateList"
:key="index"
style="margin-top: 20px; border-bottom: 1px solid #f3f3f3"
>
<el-form-item
label="证书名称"
:rules="hospitalPersonCertificateList.certificateName"
:prop="`hospitalPersonCertificateList.${index}.certificateName`"
>
<el-input
maxlength="90"
v-model="item.certificateName"
placeholder="请输入证书名称"
/>
</el-form-item>
<el-form-item
label="证书图片"
:rules="hospitalPersonCertificateList.certificateUrl"
:prop="`hospitalPersonCertificateList.${index}.certificateUrl`"
>
<stationAcatar
@imgUrl="imgUrl"
@item="imgclassifyItem"
:img="item.certificateUrl"
:item="item"
:type="'certificateUrl'"
/>
</el-form-item>
<el-form-item
label="证书显示顺序"
:rules="hospitalPersonCertificateList.certificateSort"
:prop="`hospitalPersonCertificateList.${index}.certificateSort`"
>
<el-input
oninput="value=value.replace(/[^\d]/g,'')"
maxlength="5"
v-model="item.certificateSort"
placeholder="请输入证书显示顺序"
/>
</el-form-item>
<el-button
type="primary"
circle
plain
icon="el-icon-circle-plus-outline"
@click="adddisease"
v-if="index == 0"
></el-button>
<el-button
type="danger"
icon="el-icon-delete"
circle
plain
@click="deldisease(index)"
v-if="index != 0"
></el-button>
</div>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
@ -945,8 +1029,10 @@ import {
updateHospitalPerson,
} from "@/api/system/hospitalPerson";
import editor from "@/components/Editor";
import stationAcatar from "../stationAvatar/index.vue";
import { updatePicture } from "@/api/system/station";
export default {
components: { editor },
components: { editor, stationAcatar },
name: "HospitalPerson",
data() {
//
@ -980,6 +1066,7 @@ export default {
return {
//
loading: true,
idd: 0,
nnerVisibleindex: "",
departmentListindex: "",
total2: 0,
@ -1023,10 +1110,13 @@ export default {
showSearch: true,
//
total: 0,
imgone: "",
// -
hospitalPersonList: [],
//
title: "",
deletNewImgs: [],
objitem: [],
//
open: false,
addopen: false,
@ -1045,9 +1135,15 @@ export default {
consultingFee: null,
personIntroduce: null,
personSort: null,
personPictureUrl: null,
certificateSort: null,
certificateName: null,
certificateUrl: null,
},
//
form: {},
form: {
// hospitalPersonCertificateList:[],
},
hospitalDepartmentList: [],
hospitalqueryParams: {
pageNum: 1,
@ -1062,84 +1158,9 @@ export default {
departmentName: "",
},
infolist: [],
deletUploadImages:[],
//
rules: {
hospitalPersonInfoList: {
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",
},
],
},
hospitalId: [
{
required: true,
@ -1194,7 +1215,7 @@ export default {
{
required: true,
// validator: checkMobile,
message: "11",
message: "请输入联系电话",
trigger: "blur",
},
],
@ -1215,6 +1236,103 @@ 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: "11",
trigger: "blur",
},
],
cardNo: [
{
required: true,
message: "",
validator: isCardId,
trigger: "blur",
},
],
consultingFee: [
{
required: true,
message: "请选择咨询费用",
trigger: "blur",
},
],
hospitalPersonCertificateList: {
certificateName: [
// {
// required: true,
// message: "",
// trigger: "blur",
// },
],
certificateSort: [
// {
// required: true,
// message: "",
// trigger: "blur",
// },
],
certificateUrl: [
// {
// required: true,
// message: "",
// trigger: "blur",
// },
],
},
};
},
created() {
@ -1226,13 +1344,34 @@ export default {
console.log(item);
this.imgsurl.pictureUrlList.push(item);
},
//item
imgclassifyItem(item) {
let imgUrlData = JSON.parse(item);
//
this.deletNewImgs.push(imgUrlData.certificateUrl);
this.objitem.push(imgUrlData.certificateUrl);
console.log(item, "接受图片item");
let items = JSON.parse(item);
if (items.idd && !items.id) {
this.form.hospitalPersonCertificateList.forEach((e) => {
if (e.idd == items.idd) {
e.certificateUrl = items.certificateUrl;
}
});
} else if (!items.idd && items.id) {
this.form.certificateUrl = items.certificateUrl;
}
},
imgUrl(imgUrl) {
console.log(imgUrl,'新上传');
this.form.personPictureUrl = imgUrl;
this.deletUploadImages.push(imgUrl)
},
nurseclick(row) {
console.log(row);
this.form.hospitalPersonInfoList[this.nnerVisibleindex].hospitalName =
row.hospitalName;
this.form.hospitalPersonInfoList[this.nnerVisibleindex].hospitalId =
row.id;
this.form.hospitalName = row.hospitalName;
this.form.hospitalId = row.id;
this.innerVisible = false;
},
nurseclickxg(row) {
@ -1244,11 +1383,8 @@ export default {
//
departmentclick(row) {
console.log(row);
this.form.hospitalPersonInfoList[
this.departmentListindex
].departmentName = row.departmentName;
this.form.hospitalPersonInfoList[this.departmentListindex].departmentId =
row.id;
this.form.departmentName = row.departmentName;
this.form.departmentId = row.id;
// }
this.innerVisibledepartment = false;
},
@ -1276,22 +1412,20 @@ export default {
},
//deldisease
deldisease(index) {
this.form.hospitalPersonInfoList.splice(index, 1);
this.form.hospitalPersonCertificateList.splice(index, 1);
},
adddisease() {
this.idd++;
var obj = {
hospitalId: "",
departmentCode: "",
departmentId: "",
departmentName: "请选择所属科室",
departmentPerson: "",
departmentPhone: "",
hospitalName: "请选择所属医院",
certificateName: "",
certificateSort: "",
certificateUrl: "",
idd: this.idd,
};
if (this.form.hospitalPersonInfoList.length == 5) {
if (this.form.hospitalPersonCertificateList.length == 5) {
this.$message.error("最多只能5条");
} else {
this.form.hospitalPersonInfoList.push(obj);
this.form.hospitalPersonCertificateList.push(obj);
}
},
/** 查询健康咨询-科室人员信息列表 */
@ -1304,29 +1438,18 @@ export default {
});
},
//
clickinnerVisible(item, index) {
clickinnerVisible() {
// this.addresetQuery();
this.form.hospitalId = item.hospitalId;
this.nnerVisibleindex = index;
console.log(this.nnerVisibleindex);
this.innerVisible = true;
// this.homenumber = item;
},
//
clickinnerVisiblexg(item) {
clickinnerVisiblexg() {
this.addresetQuery();
// this.form.hospitalId = item.hospitalId;
// this.nnerVisibleindex = index;
// console.log(this.nnerVisibleindex);
this.innerVisiblexg = true;
// this.homenumber = item;
},
//
clicklist(item, index) {
clicklist() {
this.departmentList();
this.form.departmentId = item.departmentId;
this.departmentListindex = index;
console.log(this.departmentListindex);
this.innerVisibledepartment = true;
},
//
@ -1372,6 +1495,19 @@ export default {
},
//
cancel() {
var obj = { pictureUrlList: [] };
if (this.form.hospitalPersonCertificateList) {
this.form.hospitalPersonCertificateList.forEach((e) => {
obj.pictureUrlList.push(e.certificateUrl);
});
}
console.log("2222", this.deletNewImgs);
if(this.deletUploadImages.length>0){
updatePicture({pictureUrlList:this.deletUploadImages}).then((res) => {
this.open = false;
});
}
this.imgsurl = { pictureUrlList: [] };
this.addopen = false;
this.open = false;
this.reset();
@ -1379,30 +1515,34 @@ export default {
//
reset() {
this.form = {
hospitalPersonInfoList: [
id: null,
hospitalId: null,
departmentId: null,
personCode: null,
personName: null,
personPhone: null,
personAddress: null,
cardNo: null,
academicTitle: null,
consultingFee: null,
personIntroduce: null,
personSort: null,
personPictureUrl: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
hospitalName: "请选择所属医院",
departmentName: "请选择所属科室",
hospitalPersonCertificateList: [
{
id: null,
hospitalId: null,
departmentId: null,
personCode: null,
personName: null,
personPhone: null,
personAddress: null,
cardNo: null,
academicTitle: null,
consultingFee: null,
personIntroduce: null,
personSort: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
hospitalName: "请选择所属医院",
departmentName: "请选择所属科室",
certificateName: "",
certificateSort: "",
certificateUrl: "",
},
],
};
this.deletUploadImages=[]
// this.resetForm("form");
},
/** 搜索按钮操作 */
@ -1423,6 +1563,17 @@ export default {
},
/** 新增按钮操作 */
handleAdd() {
this.form = {
hospitalPersonCertificateList: [
{
certificateSort: "",
certificateName: "",
certificateUrl: "",
idd: this.idd,
},
],
};
this.reset();
this.addopen = true;
this.title = "添加健康咨询-科室人员信息";
@ -1433,21 +1584,13 @@ export default {
const id = row.id || this.ids;
getHospitalPerson(id).then((response) => {
this.form = response.data;
this.imgone = this.form.certificateUrl;
this.open = true;
this.title = "修改健康咨询-科室人员信息";
});
},
/** 提交按钮 */
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) {