Browse Source

增加护士组长,护士成员功能

WenNingning 4 năm trước cách đây
mục cha
commit
626bc8fcde

+ 14 - 0
src/api/ncs_clerk.js

@@ -55,4 +55,18 @@ export function getRoles(params) {
     loading: true,
     data: params
   })
+}
+export function getNurseByRoleId(role_id, clerk_id) {
+  return request({
+    url: `/ncs/clerk/getNurseByRoleId/${role_id}/${clerk_id}`,
+    method: 'GET'
+  })
+}
+export function updateParentById(params) {
+  return request({
+    url: '/ncs/clerk/updateParentById',
+    method: 'POST',
+    loading: true,
+    data: params
+  })
 }

+ 54 - 3
src/views/ncs-clerk/clerkList.vue

@@ -144,6 +144,15 @@
             </el-form-item>
           </el-col>
         </el-row>
+        <el-row v-if="nurseList.length > 0">
+          <el-col :span="24">
+            <el-form-item label="小组成员">
+              <el-checkbox-group v-model="newCheckList">
+                <el-checkbox v-for="(item, index) in nurseList" :key="index" :label="item.clerk_id" style="width: 200px;">{{ item.clerk_name }}</el-checkbox>
+              </el-checkbox-group>
+            </el-form-item>
+          </el-col>
+        </el-row>
 
 
 <!--        <el-row>-->
@@ -186,6 +195,7 @@
   import AgGridImg from "@/components/AgGridImg/AgGridImg"
   import ImageViewer from "element-ui/packages/image/src/image-viewer"
   import RadioFilter from "@/components/AgGridCustomFilter/RadioFilter";
+  import * as API_event from "@/api/ncs_event";
   let prevOverflow = ''
 
   export default {
@@ -267,7 +277,12 @@
         sexTransfer: [
           { key: '男', value: 1 },
           { key: '女', value: 0 }
-        ]
+        ],
+        roleId: null,
+        roleZzId: null,
+        newCheckList: [],
+        oldCheckList: [],
+        nurseList: []
       }
     },
     computed: {
@@ -411,8 +426,16 @@
       },
       getRoles(param) {
         // 获取角色
-        clerk_API.getRoles(param).then(response => {
-          this.rolesOptions = response.data
+        clerk_API.getRoles(param).then(res => {
+          this.rolesOptions = res.data
+          const nurseZz = res.data.find(item => item.role_name === '护士组长')
+          if (nurseZz) {
+            this.roleZzId = nurseZz.role_id
+            const nurse = res.data.find(item => item.role_name === '护士')
+            if (nurse) {
+              this.roleId = nurse.role_id
+            }
+          }
         })
       },
       /** 批量数据删除处理(删除选中的行) */
@@ -460,6 +483,14 @@
               params.face = this.imageUrl
             }
             if (params.member_id) {
+              if (this.roleZzId === params.role_id) {
+                const data = {
+                  clerkId: params.clerk_id,
+                  newIds: this.newCheckList.join(','),
+                  oldIds: this.oldCheckList.join(',')
+                }
+                clerk_API.updateParentById(data)
+              }
               clerk_API.update(params.clerk_id, params).then(response => {
                 this.dialogAddMemberVisible = false
                 this.imageUrl = null
@@ -482,6 +513,7 @@
       },
       /** 添加会员 */
       handleAddMember() {
+        this.nurseList = []
         this.imageUrl = null
         this.addMemberForm = { sex: 1 }
         this.addMemberRules.password[0].required = true
@@ -490,6 +522,10 @@
       /** 编辑用户 */
       handlerEdit(row) {
         this.addMemberForm = Object.assign({}, row)
+        if (this.roleZzId && this.roleZzId === row.role_id) { // 只有护士组长才能编辑小组成员
+          this.getNurseByRoleId(row.clerk_id)
+        }
+        this.nurseList = []
         this.imageUrl = row.face
         delete this.addMemberForm.password
         this.addMemberRules.password[0].required = false
@@ -498,6 +534,21 @@
         }
         this.dialogAddMemberVisible = true
       },
+      getNurseByRoleId(id) {
+        const _this = this
+        this.newCheckList = []
+        this.oldCheckList = []
+        clerk_API.getNurseByRoleId(_this.roleId, id).then(r => {
+          _this.nurseList = r
+          r.forEach(item => {
+            if (item.parent_id=== id) {
+              _this.newCheckList.push(item.clerk_id)
+              _this.oldCheckList.push(item.clerk_id)
+            }
+          })
+        })
+
+      },
       /** 分页大小发生改变 */
       handlePageSizeChange(size) {
         this.params.page_size = size

+ 3 - 3
src/views/ncs-device/components/deviceManager.vue

@@ -146,7 +146,7 @@
           <el-col :span="12">
             <el-form-item label="适用角色" prop="role_id">
               <el-select v-model="deviceModel.role_id" placeholder="适用角色" clearable>
-                <el-option v-for="item in rolesOptions" :key="item.role_id" :label="item.role_name" :value="item.role_id"></el-option>
+                <el-option v-for="item in rolesOptions" :key="item.role_id" :label="item.role_name" :value="item.role_id" />
               </el-select>
             </el-form-item>
           </el-col>
@@ -168,7 +168,7 @@ import ListFilter from '@/components/AgGridCustomFilter/ListFilter'
 import RadioFilter from '@/components/AgGridCustomFilter/RadioFilter'
 import * as API_Device from '@/api/ncs_device'
 import * as API_Frame from '@/api/ncs_hospitalFrame'
-import * as clerk_API from "@/api/ncs_clerk"
+import * as clerk_API from '@/api/ncs_clerk'
 export default {
   name: 'DeviceManager',
   components: { ButtonCellRender, ListFilter, RadioFilter },
@@ -266,7 +266,7 @@ export default {
   },
   watch: {
     frame(val, oldvalue) {
-      console.log('watch',val)
+      console.log('watch', val)
       this.params.fixedCondition = Object.keys(this.frame).length === 0 ? 'part_id=' + this.$store.getters.partId : 'part_id=' + this.$store.getters.partId + ' and frame_id =' + this.frame.id
       this.getList()
     }