|
@@ -1,8 +1,12 @@
|
|
|
<template>
|
|
|
- <el-dialog v-model="dialog"
|
|
|
- :title="title"
|
|
|
- @closed="emit('close')">
|
|
|
- <el-form :model="userInfo" :inline="true" label-width="80px" :rules="rules" ref="formRef">
|
|
|
+ <el-dialog v-model="dialog" :title="title" @closed="emit('close')">
|
|
|
+ <el-form
|
|
|
+ :model="userInfo"
|
|
|
+ :inline="true"
|
|
|
+ label-width="80px"
|
|
|
+ :rules="rules"
|
|
|
+ ref="formRef"
|
|
|
+ >
|
|
|
<el-form-item prop="name" label="姓名">
|
|
|
<el-input v-model="userInfo.name"></el-input>
|
|
|
</el-form-item>
|
|
@@ -12,96 +16,157 @@
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item prop="deptCode" label="科室">
|
|
|
- <xc-select :data="peopleAddData.deptData" v-model="userInfo"
|
|
|
- :name="['deptCode','deptName']"></xc-select>
|
|
|
+ <xc-select
|
|
|
+ :data="peopleAddData.deptData"
|
|
|
+ v-model="userInfo"
|
|
|
+ :name="['deptCode', 'deptName']"
|
|
|
+ ></xc-select>
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item prop="empPoCode" label="职务">
|
|
|
- <xc-select :data="peopleAddData.empPosition" v-model="userInfo"
|
|
|
- :name="['empPoCode','position']"></xc-select>
|
|
|
+ <xc-select
|
|
|
+ :data="peopleAddData.empPosition"
|
|
|
+ v-model="userInfo"
|
|
|
+ :name="['empPoCode', 'position']"
|
|
|
+ ></xc-select>
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item prop="empTitCode" label="职称">
|
|
|
- <xc-select :data="peopleAddData.zdEmpTitle" v-model="userInfo"
|
|
|
- :name="['empTitCode','title']"></xc-select>
|
|
|
+ <xc-select
|
|
|
+ :data="peopleAddData.zdEmpTitle"
|
|
|
+ v-model="userInfo"
|
|
|
+ :name="['empTitCode', 'title']"
|
|
|
+ ></xc-select>
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item prop="mark" label="在院标志">
|
|
|
- <xc-select :data="peopleAddData.empInmark" v-model="userInfo" :name="['mark','markName']"></xc-select>
|
|
|
+ <xc-select
|
|
|
+ :data="peopleAddData.empInmark"
|
|
|
+ v-model="userInfo"
|
|
|
+ :name="['mark', 'markName']"
|
|
|
+ ></xc-select>
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item prop="ifcader" label="干工标志">
|
|
|
- <xc-select :data="peopleAddData.zdIfcadre" v-model="userInfo"
|
|
|
- :name="['ifcadre','ifcadreName']"></xc-select>
|
|
|
+ <xc-select
|
|
|
+ :data="peopleAddData.zdIfcadre"
|
|
|
+ v-model="userInfo"
|
|
|
+ :name="['ifcadre', 'ifcadreName']"
|
|
|
+ ></xc-select>
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item prop="orderYn" label="处方权">
|
|
|
- <xc-select :data="doctorSPrescription" v-model="userInfo" :name="['orderYn','orderYnName']"></xc-select>
|
|
|
+ <xc-select
|
|
|
+ :data="doctorSPrescription"
|
|
|
+ v-model="userInfo"
|
|
|
+ :name="['orderYn', 'orderYnName']"
|
|
|
+ ></xc-select>
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item prop="ysjb" label="病历级别">
|
|
|
- <xc-select :data="peopleAddData.ysjbData" v-model="userInfo" :name="['ysjb','ysjbName']"></xc-select>
|
|
|
+ <xc-select
|
|
|
+ :data="peopleAddData.ysjbData"
|
|
|
+ v-model="userInfo"
|
|
|
+ :name="['ysjb', 'ysjbName']"
|
|
|
+ ></xc-select>
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item prop="ghChargeType" label="挂号号别">
|
|
|
- <xc-select :data="peopleAddData.mzyZdChargeType" v-model="userInfo"
|
|
|
- :name="['ghChargeType','ghChargeTypeName']"/>
|
|
|
+ <xc-select
|
|
|
+ :data="peopleAddData.mzyZdChargeType"
|
|
|
+ v-model="userInfo"
|
|
|
+ :name="['ghChargeType', 'ghChargeTypeName']"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
<el-form-item prop="doctorXzYp" label="限制级别">
|
|
|
- <xc-select :data="peopleAddData.restrictedDrugLevels" v-model="userInfo"
|
|
|
- :name="['doctorXzYp','doctorXzYpName']"/>
|
|
|
+ <xc-select
|
|
|
+ :data="peopleAddData.restrictedDrugLevels"
|
|
|
+ v-model="userInfo"
|
|
|
+ :name="['doctorXzYp', 'doctorXzYpName']"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
<el-form-item prop="loginFlag" label="病区就诊">
|
|
|
- <el-switch v-model="userInfo.loginFlag" active-color="#ff4949" active-text="不允许" active-value="2"
|
|
|
- inactive-color="#13ce66" inactive-text="允许" inactive-value="1">
|
|
|
+ <el-switch
|
|
|
+ v-model="userInfo.loginFlag"
|
|
|
+ active-color="#ff4949"
|
|
|
+ active-text="不允许"
|
|
|
+ active-value="2"
|
|
|
+ inactive-color="#13ce66"
|
|
|
+ inactive-text="允许"
|
|
|
+ inactive-value="1"
|
|
|
+ >
|
|
|
</el-switch>
|
|
|
</el-form-item>
|
|
|
<el-form-item prop="delFlag" label="停用">
|
|
|
- <el-switch v-model="userInfo.delFlag" active-color="#ff4949" active-text="停用" active-value="1"
|
|
|
- inactive-color="#13ce66" inactive-text="开启" inactive-value="0">
|
|
|
+ <el-switch
|
|
|
+ v-model="userInfo.delFlag"
|
|
|
+ active-color="#ff4949"
|
|
|
+ active-text="停用"
|
|
|
+ active-value="1"
|
|
|
+ inactive-color="#13ce66"
|
|
|
+ inactive-text="开启"
|
|
|
+ inactive-value="0"
|
|
|
+ >
|
|
|
</el-switch>
|
|
|
</el-form-item>
|
|
|
<el-form-item prop="socialNo" label="身份证">
|
|
|
<el-input v-model="userInfo.socialNo" clearable></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item prop="phoneNo" label="手机号">
|
|
|
- <el-input v-model="userInfo.phoneNo" clearable></el-input>
|
|
|
+ <el-input
|
|
|
+ v-model="userInfo.phoneNo"
|
|
|
+ clearable
|
|
|
+ style="width: 190px"
|
|
|
+ ></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item prop="ybCode" label="医保">
|
|
|
<el-input v-model="userInfo.ybCode" clearable></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item prop="doctorZy" label="中医处方权">
|
|
|
- <el-switch v-model="userInfo.doctorZy"
|
|
|
- active-color="#ff4949"
|
|
|
- active-text="是" :active-value="1"
|
|
|
- inactive-color="#13ce66" inactive-text="否" :inactive-value="0"
|
|
|
+ <el-switch
|
|
|
+ v-model="userInfo.doctorZy"
|
|
|
+ active-color="#ff4949"
|
|
|
+ active-text="是"
|
|
|
+ :active-value="1"
|
|
|
+ inactive-color="#13ce66"
|
|
|
+ inactive-text="否"
|
|
|
+ :inactive-value="0"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
<el-form-item prop="doctorYpZl" label="肿瘤药物分级限制">
|
|
|
-
|
|
|
<el-select v-model="userInfo.doctorYpZl" style="width: 120px">
|
|
|
- <el-option v-for="item in peopleAddData.doctorYpZl" :value="item.code" :label="item.name"/>
|
|
|
+ <el-option
|
|
|
+ v-for="item in peopleAddData.doctorYpZl"
|
|
|
+ :value="item.code"
|
|
|
+ :label="item.name"
|
|
|
+ />
|
|
|
</el-select>
|
|
|
-
|
|
|
</el-form-item>
|
|
|
<el-form-item label="兼诊科室">
|
|
|
- <el-select v-model="userInfo.partTimeDept"
|
|
|
- multiple
|
|
|
- filterable
|
|
|
- placeholder="兼诊科室"
|
|
|
- style="width: 240px">
|
|
|
+ <el-select
|
|
|
+ v-model="userInfo.partTimeDept"
|
|
|
+ multiple
|
|
|
+ filterable
|
|
|
+ placeholder="兼诊科室"
|
|
|
+ style="width: 240px"
|
|
|
+ >
|
|
|
<el-option
|
|
|
- v-for="item in peopleAddData.deptData"
|
|
|
- :key="item.code"
|
|
|
- :label="item.name"
|
|
|
- :value="item.code"/>
|
|
|
+ v-for="item in peopleAddData.deptData"
|
|
|
+ :key="item.code"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.code"
|
|
|
+ />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item prop="dualchnlFlag" label="双通道医生">
|
|
|
- <el-switch v-model="userInfo.dualchnlFlag"
|
|
|
- active-color="#ff4949"
|
|
|
- active-text="是" :active-value="1"
|
|
|
- inactive-color="#13ce66" inactive-text="否" :inactive-value="0"
|
|
|
+ <el-switch
|
|
|
+ v-model="userInfo.dualchnlFlag"
|
|
|
+ active-color="#ff4949"
|
|
|
+ active-text="是"
|
|
|
+ :active-value="1"
|
|
|
+ inactive-color="#13ce66"
|
|
|
+ inactive-text="否"
|
|
|
+ :inactive-value="0"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
@@ -115,120 +180,120 @@
|
|
|
</template>
|
|
|
|
|
|
<script setup name="PersonnelInformationEditing">
|
|
|
-import {peopleAddData} from "@/components/settings/permissions/EmployeeInformationData";
|
|
|
-import {clone} from "@/utils/clone";
|
|
|
+import { peopleAddData } from "@/components/settings/permissions/EmployeeInformationData";
|
|
|
+import { clone } from "@/utils/clone";
|
|
|
import XcSelect from "@/components/xiao-chan/select/XcSelect.vue";
|
|
|
import Sleep from "@/utils/sleep";
|
|
|
-import {idVerificationApi} from "@/api/public-api";
|
|
|
-import {isValidPhone} from "@/utils/validate";
|
|
|
-import {ElMessage} from "element-plus";
|
|
|
-import {modifyEmployeeInfo, saveEmployeeInfo} from "@/api/settings/permission-settings";
|
|
|
-import {stringIsBlank} from "@/utils/blank-utils";
|
|
|
+import { idVerificationApi } from "@/api/public-api";
|
|
|
+import { isValidPhone } from "@/utils/validate";
|
|
|
+import { ElMessage } from "element-plus";
|
|
|
+import {
|
|
|
+ modifyEmployeeInfo,
|
|
|
+ saveEmployeeInfo,
|
|
|
+} from "@/api/settings/permission-settings";
|
|
|
+import { stringIsBlank } from "@/utils/blank-utils";
|
|
|
|
|
|
const props = defineProps({
|
|
|
userInfo: {
|
|
|
type: Object,
|
|
|
default: {
|
|
|
- name: '添加员工'
|
|
|
- }
|
|
|
+ name: "添加员工",
|
|
|
+ },
|
|
|
},
|
|
|
index: {
|
|
|
type: Number,
|
|
|
- default: -1
|
|
|
+ default: -1,
|
|
|
},
|
|
|
-})
|
|
|
-const emit = defineEmits(['close', 'changeTheData'])
|
|
|
-const dialog = ref(true)
|
|
|
-const title = stringIsBlank(props.userInfo.name) ? '添加员工' : '正在编辑:' + props.userInfo.name
|
|
|
-const userInfo = ref({})
|
|
|
+});
|
|
|
+const emit = defineEmits(["close", "changeTheData"]);
|
|
|
+const dialog = ref(true);
|
|
|
+const title = stringIsBlank(props.userInfo.name)
|
|
|
+ ? "添加员工"
|
|
|
+ : "正在编辑:" + props.userInfo.name;
|
|
|
+const userInfo = ref({});
|
|
|
|
|
|
const doctorSPrescription = [
|
|
|
- {code: '1', name: '普通处方权'},
|
|
|
- {code: '2', name: '毒麻药处方权'},
|
|
|
-]
|
|
|
+ { code: "1", name: "普通处方权" },
|
|
|
+ { code: "2", name: "毒麻药处方权" },
|
|
|
+];
|
|
|
|
|
|
const wardVisit = [
|
|
|
- {code: '1', name: '允许'},
|
|
|
- {code: '2', name: '不允许'}
|
|
|
-]
|
|
|
+ { code: "1", name: "允许" },
|
|
|
+ { code: "2", name: "不允许" },
|
|
|
+];
|
|
|
|
|
|
-const formRef = ref(null)
|
|
|
+const formRef = ref(null);
|
|
|
|
|
|
const idVerification = async (rule, value, callback) => {
|
|
|
if (value) {
|
|
|
- const check = await idVerificationApi(value)
|
|
|
+ const check = await idVerificationApi(value);
|
|
|
if (check) {
|
|
|
- callback()
|
|
|
+ callback();
|
|
|
} else {
|
|
|
- callback(new Error("请填写正确的身份证号码"))
|
|
|
+ callback(new Error("请填写正确的身份证号码"));
|
|
|
}
|
|
|
} else {
|
|
|
- callback(new Error("请填写身份证"))
|
|
|
+ callback(new Error("请填写身份证"));
|
|
|
}
|
|
|
-}
|
|
|
+};
|
|
|
|
|
|
const phoneNumber = (rule, value, callback) => {
|
|
|
if (value) {
|
|
|
if (isValidPhone(value)) {
|
|
|
- callback()
|
|
|
+ callback();
|
|
|
} else {
|
|
|
- callback(new Error("请填写正确的手机号"))
|
|
|
+ callback(new Error("请填写正确的手机号"));
|
|
|
}
|
|
|
} else {
|
|
|
- callback(new Error("该项不能为空"))
|
|
|
+ callback(new Error("该项不能为空"));
|
|
|
}
|
|
|
-}
|
|
|
+};
|
|
|
|
|
|
const rules = reactive({
|
|
|
- name: [{required: true, message: '该项不能为空', trigger: 'blur'}],
|
|
|
- codeRs: [{required: true, message: '该项不能为空', trigger: 'blur'}],
|
|
|
- deptCode: [{required: true, message: '该项不能为空', trigger: 'blur'}],
|
|
|
- empInmark: [{required: true, message: '该项不能为空', trigger: 'blur'}],
|
|
|
- doctorXzYp: [{required: true, message: '该项不能为空', trigger: 'blur'}],
|
|
|
+ name: [{ required: true, message: "该项不能为空", trigger: "blur" }],
|
|
|
+ codeRs: [{ required: true, message: "该项不能为空", trigger: "blur" }],
|
|
|
+ deptCode: [{ required: true, message: "该项不能为空", trigger: "blur" }],
|
|
|
+ empInmark: [{ required: true, message: "该项不能为空", trigger: "blur" }],
|
|
|
+ doctorXzYp: [{ required: true, message: "该项不能为空", trigger: "blur" }],
|
|
|
socialNo: [
|
|
|
- {required: true, message: '该项不能为空', trigger: 'blur'},
|
|
|
- {validator: idVerification, trigger: 'blur'}
|
|
|
+ { required: true, message: "该项不能为空", trigger: "blur" },
|
|
|
+ { validator: idVerification, trigger: "blur" },
|
|
|
],
|
|
|
phoneNo: [
|
|
|
- {required: true, message: '该项不能为空', trigger: 'change'},
|
|
|
- {validator: phoneNumber, trigger: 'blur'}
|
|
|
+ { required: true, message: "该项不能为空", trigger: "change" },
|
|
|
+ { validator: phoneNumber, trigger: "blur" },
|
|
|
],
|
|
|
-})
|
|
|
+});
|
|
|
|
|
|
-const confirm = (formRef) => {
|
|
|
- if (!formRef) return
|
|
|
- formRef.validate(async (valid) => {
|
|
|
+const confirm = formRef => {
|
|
|
+ if (!formRef) return;
|
|
|
+ formRef.validate(async valid => {
|
|
|
if (valid) {
|
|
|
if (props.index !== -1) {
|
|
|
await modifyEmployeeInfo(userInfo.value);
|
|
|
- emit('changeTheData', props.index, userInfo.value)
|
|
|
+ emit("changeTheData", props.index, userInfo.value);
|
|
|
} else {
|
|
|
- await saveEmployeeInfo(userInfo.value)
|
|
|
- emit('changeTheData', props.index, userInfo.value)
|
|
|
+ await saveEmployeeInfo(userInfo.value);
|
|
|
+ emit("changeTheData", props.index, userInfo.value);
|
|
|
}
|
|
|
} else {
|
|
|
- ElMessage.error("请仔细检查")
|
|
|
+ ElMessage.error("请仔细检查");
|
|
|
}
|
|
|
- })
|
|
|
-
|
|
|
-}
|
|
|
+ });
|
|
|
+};
|
|
|
|
|
|
onMounted(async () => {
|
|
|
- await Sleep(500)
|
|
|
+ await Sleep(500);
|
|
|
if (props.userInfo) {
|
|
|
- userInfo.value = clone(props.userInfo)
|
|
|
- userInfo.value.oldData = true
|
|
|
+ userInfo.value = clone(props.userInfo);
|
|
|
+ userInfo.value.oldData = true;
|
|
|
if (userInfo.value.partTimeDeptCode) {
|
|
|
- userInfo.value.partTimeDept = userInfo.value.partTimeDeptCode.split(',')
|
|
|
+ userInfo.value.partTimeDept = userInfo.value.partTimeDeptCode.split(",");
|
|
|
}
|
|
|
} else {
|
|
|
- userInfo.value.oldData = false
|
|
|
+ userInfo.value.oldData = false;
|
|
|
}
|
|
|
-})
|
|
|
-
|
|
|
-
|
|
|
+});
|
|
|
</script>
|
|
|
|
|
|
-<style scoped>
|
|
|
-
|
|
|
-</style>
|
|
|
+<style scoped></style>
|