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