浏览代码

员工的修改和添加

DESKTOP-MINPJAU\Administrator 3 年之前
父节点
当前提交
8a861f901d

+ 10 - 2
src/api/settings/permission-settings.js

@@ -69,11 +69,19 @@ export function saveRoleMenus(data) {
     })
 }
 
-export function savePersonnelInformation(data) {
+export function modifyEmployeeInfo(data) {
     return request({
-        url: '/settings/savePersonnelInformation',
+        url: '/settings/modifyEmployeeInfo',
         method: 'post',
         data,
     })
 }
+export function saveEmployeeInfo(data) {
+    return request({
+        url: '/settings/saveEmployeeInfo',
+        method: 'post',
+        data,
+    })
+}
+
 

+ 22 - 7
src/components/settings/permissions/PersonnelInformationEditing.vue

@@ -1,5 +1,7 @@
 <template>
-  <el-dialog v-model="dialog" :title="'正在编辑:'+ props.userInfo.name" @closed="emit('close')">
+  <el-dialog v-model="dialog"
+             :title="title"
+             @closed="emit('close')">
     <el-container>
       <el-form :model="userInfo" :inline="true" label-width="80px" :rules="rules" ref="formRef">
         <el-form-item prop="name" label="姓名">
@@ -28,7 +30,7 @@
         </el-form-item>
 
         <el-form-item prop="ifcader" label="干工标志">
-          <xc-select :data="peopleAddData.zdIfcadre" v-model="userInfo" :name="['ifcader','ifcaderName']"></xc-select>
+          <xc-select :data="peopleAddData.zdIfcadre" v-model="userInfo" :name="['ifcadre','ifcadreName']"></xc-select>
         </el-form-item>
 
         <el-form-item prop="orderYn" label="处方权">
@@ -85,7 +87,8 @@ import Sleep from "element-plus/packages/test-utils/sleep";
 import {idVerificationApi} from "@/api/public-api";
 import {isValidPhone} from "@/utils/validate";
 import {ElMessage} from "element-plus";
-import {savePersonnelInformation} from "@/api/settings/permission-settings";
+import {modifyEmployeeInfo, saveEmployeeInfo} from "@/api/settings/permission-settings";
+import {stringIsBlank} from "@/utils/blank-utils";
 
 const props = defineProps({
   userInfo: {
@@ -93,10 +96,15 @@ const props = defineProps({
     default: {
       name: '添加员工'
     }
-  }
+  },
+  index: {
+    type: Number,
+    default: -1
+  },
 })
-const emit = defineEmits(['close'])
+const emit = defineEmits(['close', 'changeTheData'])
 const dialog = ref(true)
+const title = stringIsBlank(props.userInfo.name) ? '添加员工' : '正在编辑:' + props.userInfo.name
 let userInfo = $ref({})
 
 const doctorSPrescription = [
@@ -154,9 +162,16 @@ const rules = reactive({
 
 const confirm = (formRef) => {
   if (!formRef) return
-  formRef.validate((valid) => {
+  formRef.validate(async (valid) => {
     if (valid) {
-      savePersonnelInformation(userInfo)
+      if (props.index !== -1) {
+        await modifyEmployeeInfo(userInfo);
+        emit('changeTheData', props.index, userInfo)
+      } else {
+        await saveEmployeeInfo(userInfo)
+        emit('changeTheData', props.index, userInfo)
+      }
+
     } else {
       ElMessage.error("请仔细检查")
     }

+ 31 - 5
src/views/settings/permissions/UserRoleSettings.vue

@@ -33,9 +33,14 @@
             <el-option v-for="item in dropDownSelection" :key="item.code" :value="item.code" :label="item.name">
             </el-option>
           </el-select>
+          医保码:
+          <el-input v-model="queryConditions.ybCode" style="width: 120px" clearable></el-input>
           <el-button icon="el-icon-search" type="primary" @click="clickToQuery">
             查询
           </el-button>
+          <el-button icon="el-icon-plus" type="success" @click="addEmployees">
+            添加
+          </el-button>
           <div style="height: 5px"></div>
           <el-table :data="users" border
                     :height="tableHeight - 40" stripe highlight-current-row>
@@ -46,7 +51,7 @@
             <el-table-column prop="title" label="职称"></el-table-column>
             <el-table-column prop="position" label="职务"></el-table-column>
             <el-table-column prop="markName" label="在院标志"></el-table-column>
-            <el-table-column prop="ifcaderName" label="干工标志"></el-table-column>
+            <el-table-column prop="ifcadreName" label="干工标志"></el-table-column>
             <el-table-column prop="orderYn" label="医生处方权">
               <template #default="scope">
                 <span v-if="scope.row.orderYn === '1'"> 普通处方权</span>
@@ -71,9 +76,9 @@
             <el-table-column prop="ybCode" label="医保编码"></el-table-column>
             <el-table-column label="操作" fixed="right">
               <template v-slot="scope">
-                <el-button type="text" size="small" @click="viewUserRoles(scope.row)">角色</el-button>
+                <el-button type="text" @click="clickToEdit(scope.$index,scope.row)">编辑</el-button>
                 <br>
-                <el-button type="text" @click="clickToEdit(scope.row)">编辑</el-button>
+                <el-button type="text" size="small" v-if="competence" @click="viewUserRoles(scope.row)">角色</el-button>
               </template>
             </el-table-column>
           </el-table>
@@ -113,7 +118,7 @@
     </el-main>
   </el-container>
   <PersonnelInformationEditing :userInfo="userInfo" v-if="editDialog"
-                               @close="editDialog = false"/>
+                               @close="editDialog = false" :index="roleIndex" @changeTheData="changeTheData"/>
 </template>
 
 <script setup name="UserRoleSettings">
@@ -128,10 +133,13 @@ import {
 } from '@/api/settings/permission-settings'
 import {ElMessage, ElMessageBox} from 'element-plus'
 import PersonnelInformationEditing from "@/components/settings/permissions/PersonnelInformationEditing.vue";
+import {needRule} from "@/utils/public";
 
 const windowSize = store.state.app.windowSize
 const tableHeight = windowSize.h - 45
 
+const competence = needRule([1])
+
 const depts = ref([])
 const users = ref([])
 const roles = ref([])
@@ -139,6 +147,7 @@ const roles = ref([])
 let queryConditions = $ref({
   code: '',
   deptCode: '',
+  ybCode: '',
   whetherToDisable: 9,
   isThereAMedicalInsuranceCode: 9,
   pageSize: 30,
@@ -148,6 +157,7 @@ let queryConditions = $ref({
 
 let userInfo = $ref({})
 let editDialog = $ref(false)
+let roleIndex = $ref(-1)
 
 const searchDeptContent = ref('')
 
@@ -218,9 +228,19 @@ const toggleSelection = (rows) => {
   }
 }
 
-const clickToEdit = (row) => {
+const clickToEdit = (index, row) => {
   editDialog = true
   userInfo = row
+  roleIndex = index
+}
+
+const changeTheData = (index, data) => {
+  if (index === -1) {
+    users.value.push(data)
+  } else {
+    users.value[index] = data;
+  }
+  editDialog = false
 }
 
 const beforeAddRole = () => {
@@ -270,6 +290,12 @@ const clickToQuery = () => {
   })
 }
 
+const addEmployees = () => {
+  roleIndex = -1
+  editDialog = true
+  userInfo = {}
+}
+
 
 onMounted(() => {
   clickToQuery()