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( "
" + response.msg + "
", "导入结果", { 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(); }); }, }, };