NurseStationUI/src/views/system/person/personjs.js
2023-04-12 11:53:55 +08:00

658 lines
23 KiB
JavaScript

import {
listPerson,
getPerson,
delPerson,
addPerson,
updatePerson,
stationList,
StationDepartmentList,
getNurseStationPersonCheck,
updateNurseStationPersonChecks
} from "@/api/system/person";
import { getToken } from "@/utils/auth";
import { getListByUser } from "@/api/system/userlist.js";
import stationAcatar from "../stationAvatar/index.vue";
import baseurl from '@/api/baseurl'
export default {
components: { stationAcatar },
name: "Person",
data() {
// 验证手机号的规则
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 checkMobile2 = (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("请输入正确的联系电话"));
};
return {
baseurl: null,
//男女选择
positionalTitleLevellist: [{
label: "初级",
value: "PRIMARY_LEVEL",
}, {
label: "中级",
value: "MIDDLE_LEVEL",
}, {
label: "高级",
value: "HIGH_LEVEL",
}],
modifyCheckStatuslist: [{
label: "已审核",
value: "CHECKED",
}, {
label: "未审核",
value: "NOT_CHECK",
}],
sexs: [{
label: "男",
value: "MALE",
},
{
label: "女",
value: "FEMALE",
},
],
nursePersonTypes: [{
label: "护士",
value: "NURSE",
},
{
label: "护理师",
value: "NURSE_TEACHER",
},
],
innerVisible: false,
innerVisible2: false,
innerVisiblexg: false,
innerVisiblexg2: false,
// 遮罩层
loading: true,
// 用户导入参数
upload: {
// 是否显示弹出层(用户导入)
open: false,
// 弹出层标题(用户导入)
title: "",
// 是否禁用上传
isUploading: false,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url: process.env.VUE_APP_BASE_API +
"/system/person/insertNurseStationPersonImportList",
},
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
departtotal: 0,
nursetotal: 0,
// 护理站人员信息表格数据
nurseStationPersonList: [],
// 护理站名称
stationLists: [],
// 所属科室
StationDepartmentLists: [],
nurseStationlist: [],
handstationlist: [], //页面搜索list
stationid: "",
stationid2: "",
departid: "",
nurseStationName: "请选择所属护理站",
departmentName: "请选择所属科室",
// 弹出层标题
title: "",
title2: "",
title3: "",
// 修改弹出层
open: false,
templeopen: false,
// 添加弹出层
//权限查询
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
nurseStationId: null,
departmentCode: null,
userId: null,
departmentName: null,
nursePersonCode: null,
nursePersonName: null,
nursePersonType: null,
phone: null,
address: null,
},
queryParams2: {
pageNum: 1,
pageSize: 10,
nurseStationName: null,
departmentName: null,
id: null,
nurseStationId: null,
},
queryParams3: {
pageNum: 1,
pageSize: 10,
nurseStationName: null,
id: null,
departmentCode: null,
departmentName: null,
nurseStationId: null,
},
nurseStationqueryParams: {
pageNum: 1,
pageSize: 10,
},
StationqueryParams: {
pageNum: 1,
pageSize: 10,
},
// 表单参数
form: {},
index: "",
idd: 1,
// 表单校验
rules: {
geniusItem: [
{ required: true, message: "请输入擅长项目", trigger: "blur" },
],
birthDate: [
{ required: true, message: "请选择出生日期", trigger: "blur" },
],
positionalTitleLevel: [
{ required: true, message: "请选择职称级别", trigger: "blur" },
],
nurseStationId: [
{ required: true, message: "请选择所属护理站", trigger: "blur" },
],
departmentName: [
{ required: true, message: "所属科室不能为空", trigger: "blur" },
],
nursePersonName: [
{ required: true, message: "护理人姓名不能为空", trigger: "blur" },
],
nursePersonType: [
{ required: true, message: "护理人职称不能为空", trigger: "blur" },
],
sex: [{ required: true, message: "性别不能为空", trigger: "blur" }],
phone: [{
required: true,
validator: checkMobile2,
message: "",
trigger: "blur",
}, ],
address: [
{ required: true, message: "居住地址不能为空", trigger: "blur" },
],
nurseStationPersonList: {
nursePersonName: [{
required: true,
message: "请选择所属护理站",
trigger: "blur",
}, ],
departmentCode: [
{ required: true, message: "所属科室不能为空", trigger: "blur" },
],
nurseStationId: [
{ required: true, message: "请选择所属护理站", trigger: "blur" },
],
nursePersonName: [
{ required: true, message: "护理人姓名不能为空", trigger: "blur" },
],
nursePersonType: [
{ required: true, message: "护理人职称不能为空", trigger: "blur" },
],
sex: [{ required: true, message: "性别不能为空", trigger: "blur" }],
phone: [{
required: true,
validator: checkMobile,
message: "",
trigger: "blur",
}, ],
address: [
{ required: true, message: "居住地址不能为空", trigger: "blur" },
],
},
},
};
},
created() {
this.baseurl = baseurl
this.infos();
this.info();
},
methods: {
//删除Certificate
delCertificate(index) {
if (this.form.nurseStationPersonCertificateList.length == 1) {
this.$message.error("不可全部删除");
} else {
this.form.nurseStationPersonCertificateList.splice(index, 1);
}
},
//添加Certificate
addCertificate() {
this.idd++;
var obj = {
certificateName: null,
certificateUrl: null,
sort: null,
idd: this.idd
};
if (this.form.nurseStationPersonCertificateList.length == 5) {
this.$message.error("最多只能5条");
} else {
this.form.nurseStationPersonCertificateList.push(obj);
}
},
imgUrl(imgUrl) {},
//接收图片所属的item
imgclassifyItem(item) {
let items = JSON.parse(item);
if (items.idd && !items.id) {
this.form.nurseStationPersonCertificateList.forEach((e) => {
if (e.idd == items.idd) {
e.certificateUrl = items.certificateUrl;
}
});
} else if (!items.idd && items.id) {
this.form.nurseStationPersonCertificateList.forEach((e) => {
if (e.id == items.id) {
e.certificateUrl = items.certificateUrl;
}
});
}
},
// // 新增所属科室按钮
departclick(item, index) {
if (this.form.nurseStationId != null) {
this.getList3();
this.departid = item.departmentCode;
this.innerVisible2 = true;
this.index = index;
} else {
// this.innerVisible2 = false;
this.$message.error("请先选择所属护理站");
}
},
// // 修改所属科室按钮
departclick2() {
if (this.form.nurseStationId != null) {
this.getList3();
this.departid2 = this.form.departmentCode;
this.innerVisiblexg2 = true;
} else {
// this.innerVisible2 = false;
this.$message.error("请先选择所属护理站");
}
},
//修改护理站按钮
departclickxg() {
this.info();
this.stationid2 = this.form.nurseStationId;
this.innerVisiblexg = true;
// this.index = index;
},
// 新增护理站按钮
clickinnerVisible(item, index) {
this.info();
this.stationid = item.nurseStationId;
this.innerVisible = true;
this.index = index;
},
// 修改护理站
nurseclick2(row) {
this.nurseStationName = row.nurseStationName;
this.stationid2 = row.id;
this.form.nurseStationId = row.id;
this.queryParams3.nurseStationId = row.id;
this.innerVisiblexg = false;
this.form.nursename = row.nurseStationName;
},
// 护理站名称
nurseclick(row) {
this.nursename = row.nurseStationName;
this.stationid = row.id;
this.form.nurseStationId = row.id;
this.queryParams3.nurseStationId = row.id;
this.innerVisible = false;
this.form.nursename = row.nurseStationName;
this.form.nurseStationPersonList[this.index].nurseStationName =
row.nurseStationName;
this.form.nurseStationPersonList[this.index].nurseStationId = row.id;
},
// 所属科室
StationDepartmentclick(row) {
this.departname = row.departmentName;
this.departid = row.departmentCode;
this.departmentCode = row.departmentCode;
// this.form.nurseStationId = row.id;
this.innerVisible2 = false;
this.form.departname = row.departmentName;
this.form.nurseStationPersonList[this.index].departmentName =
row.departmentName;
this.form.nurseStationPersonList[this.index].departmentCode =
row.departmentCode;
},
// 修改科室
StationDepartmentclick2(row) {
this.departmentName = row.departmentName;
this.form.departmentCode = row.departmentCode;
this.departid2 = row.departmentCode;
this.form.departmentName = row.id;
this.innerVisiblexg2 = false;
},
/** 查询护理站人员信息列表 */
getList() {
// 护理站名称
this.loading = true;
listPerson(this.queryParams).then((response) => {
this.nurseStationPersonList = response.rows;
this.total = response.total;
this.loading = false;
});
},
getList3() {
this.loading = true;
StationDepartmentList(this.queryParams3).then((res) => {
this.StationDepartmentLists = res.rows;
this.departtotal = res.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.nurseStationName = "请选择所属护理站";
this.departmentName = "请选择所属科室";
// this.upload.open=false;
this.reset();
},
// 表单重置
reset() {
this.form = {
geniusItem: null,
birthDate: null,
id: null,
nurseStationId: null,
departmentCode: null,
userId: null,
nursePersonCode: null,
nursePersonName: null,
nursePersonType: null,
phone: null,
address: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
nurseStationName: "请选择所属护理站",
departmentName: "请选择所属科室",
nurseStationPersonCertificateList: [{
certificateName: null,
certificateUrl: null,
sort: null,
idd: this.idd
}]
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery2() {
this.nurseStationqueryParams.pageNum = 1;
this.info();
},
// 修改护理站弹框的搜索
handleQuery4() {
this.nurseStationqueryParams.pageNum = 1;
this.info();
},
//修改所属科室
handleQuery3() {
this.queryParams3.pageNum = 1;
this.getList3();
},
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
addcancel() {
this.innerVisible = false;
this.innerVisiblexg = false;
this.resetQuery2();
},
departcancel() {
this.innerVisible2 = false;
this.innerVisiblexg2 = false;
// this.resetQuery3();
},
resetQuery2() {
this.resetForm("queryForm");
this.nurseStationqueryParams = {
pageNum: 1,
pageSize: 10,
};
this.handleQuery2();
},
resetQuery4() {
this.resetForm("queryForm");
this.nurseStationqueryParams = {
pageNum: 1,
pageSize: 10,
};
this.handleQuery4();
},
resetQuery3() {
this.queryParams3.pageNum = 1;
this.queryParams3.pageSize = 10;
this.queryParams3.departmentName = null;
this.queryParams3.departmentCode = null;
this.handleQuery3();
},
resetQuery() {
if (this.nurseStationlist[0]) {
this.queryParams.pageNum = 1;
this.queryParams.pageSize = 10;
this.queryParams.departmentName = null;
this.queryParams.phone = null;
this.queryParams.nursePersonName = null;
this.queryParams.positionalTitleLevel = null;
this.queryParams.modifyCheckStatus = null;
}
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.queryParams3.nurseStationId = null
this.reset();
this.open = true;
this.title = "添加护理站人员信息";
this.title2 = "请选择所属护理站";
this.title3 = "请选择科室";
},
/** 修改按钮操作 */
handleUpdate(row) {
const id = row.id || this.ids;
getPerson(id).then((response) => {
this.departmentName = response.data.departmentName;
this.nurseStationName = response.data.nurseStationName;
this.form = response.data;
var obj = {
certificateName: null,
certificateUrl: null,
sort: null,
idd: this.idd
};
if (this.form.nurseStationPersonCertificateList.length == 0) {
this.form.nurseStationPersonCertificateList.push(obj);
}
this.queryParams3.nurseStationId = response.data.nurseStationId;
this.open = true;
this.title = "修改护理站人员信息";
if (this.departmentName == null && this.departmentName == undefined) {
this.departmentName = "请选择所属科室";
} else {
this.departmentName = response.data.departmentName;
}
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.nurseStationPersonCertificateList.length > 0) {
this.form.nurseStationPersonCertificateList.forEach(e => {
if (!e.certificateName && !e.certificateUrl && !e.sort) {
this.form.nurseStationPersonCertificateList = this.form.nurseStationPersonCertificateList.filter(el => el != e)
}
})
}
if (this.form.id != null) {
updatePerson(this.form).then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addPerson(this.form).then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
this.nurseStationName = "请选择所属护理站";
this.departmentName = "请选择所属科室";
});
}
}
});
},
// 审核
handshenhe(row) {
getNurseStationPersonCheck(row.id).then(res => {
this.form = res.data;
this.templeopen = true;
})
},
// 审核提交
templesubmit() {
this.form.positionalTitleLevel = this.form.positionalTitleLevelCheck
this.form.geniusItem = this.form.geniusItemCheck
updateNurseStationPersonChecks(this.form).then(res => {
this.$modal.msgSuccess("审核成功");
this.getList();
this.templeopen = false
})
},
templeopenfalse() {
this.templeopen = false
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal
.confirm("是否确认删除护理站人员信息的数据项?")
.then(function() {
return delPerson(ids);
})
.then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {});
},
/** 导入按钮操作 */
handleImport() {
this.upload.open = true;
this.upload.title = "护理站人员导入";
},
/** 下载模板操作 */
importTemplate() {
this.download(
"/system/station/downloadTemplate?fileType=nurseStationPerson", {},
`护理站人员基本信息导入模板.xlsx`
);
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit();
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
this.upload.open = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
this.$alert(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
response.msg +
"</div>",
"导入结果", { dangerouslyUseHTMLString: true }
);
this.getList();
},
// 文件上传中处理
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
/** 导出按钮操作 */
handleExport() {
this.download(
"system/person/export", {
...this.queryParams,
},
`person_${new Date().getTime()}.xlsx`
);
},
//权限列表
info() {
this.loading = true;
getListByUser(this.nurseStationqueryParams).then((res) => {
this.nursetotal = res.total;
this.nurseStationlist = res.rows;
});
this.loading = false;
},
infos() {
var queryFor = {
pageNum: 1,
pageSize: 999,
};
getListByUser(queryFor).then((res) => {
this.handstationlist = res.rows;
this.queryParams.nurseStationId = res.rows[0].id;
this.queryParams3.nurseStationId = res.rows[0].id;
this.getList();
});
},
},
};