Browse Source

增加科室设置参数,修复superadmin端查询医院级数据错误的问题

vothin 3 năm trước cách đây
mục cha
commit
a5ad69db17

+ 15 - 1
languages/zh-CN.js

@@ -709,6 +709,19 @@ module.exports = {
     fixedCall: '固定电话',
     customizeRoleCallFirst: '自定义呼叫角色1',
     customizeRoleCallSecond: '自定义呼叫角色2',
+    customizeRoleCallThird: '自定义呼叫角色3',
+    customizeRoleCallFourth: '自定义呼叫角色4',
+    customizeRoleCallFifth: '自定义呼叫角色5',
+    customizeHospitalCallFirst: '自定义呼叫设备1',
+    customizeHospitalCallFirstName: '自定义呼叫设备1名称',
+    inputCustomizeHospitalCallFirstName: '输入设备1名称',
+    customizeHospitalCallSecond: '自定义呼叫设备2',
+    customizeHospitalCallSecondName: '自定义呼叫设备2名称',
+    inputCustomizeHospitalCallSecondName: '输入设备2名称',
+    customizeHospitalCallThird: '自定义呼叫设备3',
+    customizeHospitalCallThirdName: '自定义呼叫设备3名称',
+    inputCustomizeHospitalCallThirdName: '输入设备3名称',
+    inputName: '请输入名称',
     doctorTitle: '模拟分机医生标题',
     nurseTitle: '模拟分机护士标题',
     doorNurseTitle: '门口机呼叫护士标题',
@@ -828,7 +841,8 @@ module.exports = {
     ALARM_RESTRAINT_BAND: '约束带报警器',
     DOOR_LOCK: '门磁传感器',
     EMERGENCY_GATEWAY: '报警网关',
-    ALARM_433BUTTON: '433报警器'
+    ALARM_433BUTTON: '433报警器',
+    OTHER_HOST: '其他主机'
   },
   vitalSignsDeviceType: {
     BLOOD_SUGAR: '血糖仪',

+ 8 - 0
src/api/ncs_device.js

@@ -229,3 +229,11 @@ export function updateDevicesServerIp(data) {
   })
 }
 
+export function getOtherHostDevice(partId) {
+  return request({
+    url: `/ncs/device/get_other_host_device/${partId}`,
+    method: 'GET',
+    loading: false
+  })
+}
+

+ 2 - 1
src/utils/enum/DeviceTypeEnum.js

@@ -34,6 +34,7 @@ export const DEVICE_TYPE = createEnum(
     ALARM_RESTRAINT_BAND: [29, i18n.t('deviceType.ALARM_RESTRAINT_BAND')],
     DOOR_LOCK: [30, i18n.t('deviceType.DOOR_LOCK')],
     EMERGENCY_GATEWAY: [31, i18n.t('deviceType.EMERGENCY_GATEWAY')],
-    ALARM_433BUTTON: [32, i18n.t('deviceType.ALARM_433BUTTON')]
+    ALARM_433BUTTON: [32, i18n.t('deviceType.ALARM_433BUTTON')],
+    OTHER_HOST: [33, i18n.t('deviceType.OTHER_HOST')]
   }
 )

+ 3 - 3
src/views/customer/components/customerManager.vue

@@ -729,7 +729,9 @@ export default {
   },
   watch: {
     frame(val, oldvalue) {
-      if (val.type === FRAME_TYPE.PART) { // 科室
+      if (val.type === FRAME_TYPE.HOSPITAL) { // 医院
+        this.params.fixedCondition = 'part_id in (SELECT shop_id FROM ncs_shop WHERE parent_id = ' + this.frame.hospital_id + ')'
+      } else if (val.type === FRAME_TYPE.PART) { // 科室
         this.params.fixedCondition = ' part_id =' + this.frame.part_id
       } else if (val.type === FRAME_TYPE.ROOM) { // 房间
         const ids = []
@@ -745,8 +747,6 @@ export default {
         this.params.fixedCondition = ' frame_id = ' + this.frame.id
       }
       this.getList()
-      // 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()
       this.infoChanged()
     }
   },

+ 1 - 1
src/views/hospital/clerkManager.vue

@@ -518,7 +518,7 @@ export default {
     },
     /** 性别格式化 */
     formatterSex(row) {
-      return row.data.sex === 1 ? this.$t('action.man') : row.data.sex === 0 ? this.$t('action.woman') : this.$t('action.unknown')
+      return row.data.sex === 1 ? this.$t('member.man') : row.data.sex === 0 ? this.$t('member.woman') : this.$t('member.unknown')
     },
     formatterRole(row) {
       if (row.data.founder === 1) {

+ 5 - 2
src/views/hospital/ncs_device/deviceManager.vue

@@ -408,7 +408,8 @@ export default {
         { key: this.$t('deviceType.ALARM_RESTRAINT_BAND'), value: 29 },
         { key: this.$t('deviceType.DOOR_LOCK'), value: 30 },
         { key: this.$t('deviceType.EMERGENCY_GATEWAY'), value: 31 },
-        { key: this.$t('deviceType.ALARM_433BUTTON'), value: 32 }
+        { key: this.$t('deviceType.ALARM_433BUTTON'), value: 32 },
+        { key: this.$t('deviceType.OTHER_HOST'), value: 33 }
       ],
       deviceStatusTransfer: [
         { key: this.$t('deviceManage.statusTure'), value: 1, color: 'green' },
@@ -745,7 +746,9 @@ export default {
     },
     /** 设备类型选中对应的空间结构  **/
     deviceTypeChangeToFrameTypeChange(val) {
-      if (val === DEVICE_TYPE.NURSE_HOST) {
+      if (val === DEVICE_TYPE.NURSE_HOST ||
+          val === DEVICE_TYPE.OTHER_HOST
+      ) {
         this.getFramesByType(FRAME_TYPE.HOSPITAL)
       } else if (val === DEVICE_TYPE.DOCTOR_HOST ||
           val === DEVICE_TYPE.LED_SCREEN ||

+ 9 - 17
src/views/ncs-device/components/deviceManager.vue

@@ -279,13 +279,11 @@ import * as API_Device from '@/api/ncs_device'
 import * as API_Frame from '@/api/ncs_hospitalFrame'
 import * as API_SosDeviceSetting from '@/api/ncs_sos_device_settings'
 import * as clerk_API from '@/api/ncs_clerk'
-// import { DeviceUrl } from '@/utils/domain'
 import { FRAME_TYPE } from '@/utils/enum/FrameTypeEnum'
 import { DEVICE_TYPE } from '@/utils/enum/DeviceTypeEnum'
-import {SOS_DEVICE_SETTING_TYPE} from "@/utils/enum/SosDeviceSettingTypeEnum";
-import {VITAL_SIGNS_DEVICE_TYPE} from "@/utils/enum/VitalSignsDeviceEnum";
+import { SOS_DEVICE_SETTING_TYPE } from "@/utils/enum/SosDeviceSettingTypeEnum";
+import { VITAL_SIGNS_DEVICE_TYPE } from "@/utils/enum/VitalSignsDeviceEnum";
 import * as shop_API from "@/api/ncs_shop";
-import {updateDevicesServerIp} from "@/api/ncs_device";
 const DeviceUrl = domain.DeviceUrl
 export default {
   name: 'DeviceManager',
@@ -421,6 +419,7 @@ export default {
         { key: this.$t('deviceType.DOOR_LOCK'), value: 30 },
         { key: this.$t('deviceType.EMERGENCY_GATEWAY'), value: 31 },
         { key: this.$t('deviceType.ALARM_433BUTTON'), value: 32 },
+        { key: this.$t('deviceType.OTHER_HOST'), value: 33 },
       ],
       deviceTypeEnum: DEVICE_TYPE.getValueList(),
       deviceStatusTransfer: [
@@ -681,9 +680,9 @@ export default {
       }
     },
     /** 将partFrames做分割 */
-    getFramesByType(device_type) {
+    getFramesByType(frame_type) {
       if (this.partFrames != null) {
-        this.typeFrames = this.partFrames.filter(item => item.type === device_type)
+        this.typeFrames = this.partFrames.filter(item => item.type === frame_type)
       }
     },
 
@@ -835,6 +834,9 @@ export default {
     /** 设备类型选中对应的空间结构  **/
     deviceTypeChangeToFrameTypeChange(val) {
       if (val === DEVICE_TYPE.NURSE_HOST ||
+          val === DEVICE_TYPE.OTHER_HOST) {
+        this.getFramesByType(FRAME_TYPE.HOSPITAL)
+      } else if (val === DEVICE_TYPE.NURSE_HOST ||
           val === DEVICE_TYPE.DOCTOR_HOST ||
           val === DEVICE_TYPE.LED_SCREEN ||
           val === DEVICE_TYPE.LCD_SCREEN ||
@@ -870,7 +872,7 @@ export default {
         priority: 1,
         code: 'C' + parseInt(Math.random() * 100000),
         model: 'M' + parseInt(Math.random() * 100000),
-        part_id: this.frame.part_id,
+        part_id: this.frame.type === FRAME_TYPE.HOSPITAL ? this.frame.hospital_id : this.frame.part_id,
         status: 1
       }
       this.sosDeviceSetting = {
@@ -922,7 +924,6 @@ export default {
       this.$refs[formName].validate((valid) => {
         if (valid) {
           const _this = this;
-          this.deviceModel.part_id = this.getPartId(this.deviceModel.frame_id)
           /** 新增 */
           if (!this.deviceModel.id) {
              API_Device.add(this.deviceModel).then(r => {
@@ -999,15 +1000,6 @@ export default {
         this.getTypeFrame(shopId)
       })
     },
-    getPartId(frame_id) {
-      let frame= {}
-      frame = this.partFrames.filter(p => p.id === frame_id)[0]
-      if (frame.part_id != null) {
-        return frame.part_id
-      } else {
-        return this.$store.getters.partId
-      }
-    },
 
     initWebSocket: function() {
       var stockbase = DeviceUrl.replace('http', 'ws')

+ 101 - 3
src/views/ncs-orginazition/components/partInfoEdit.vue

@@ -343,7 +343,11 @@
             <el-form-item :label="this.$t('partInfo.customizeRoleCallFirst')" prop="customize_role_call_first">
               <el-radio-group v-model="formmodel.customize_role_call_first">
                 <el-radio :label="0">{{ this.$t('partInfo.onDisplay') }}</el-radio>
-                <el-radio :disabled="formmodel.customize_role_call_second===item.role_id" :label="item.role_id" v-for="(item,index) in partRoles" :key="index">{{item.role_name}}</el-radio>
+                <el-radio :label="item.role_id" :disabled="formmodel.customize_role_call_second===item.role_id ||
+                                                            formmodel.customize_role_call_third===item.role_id ||
+                                                            formmodel.customize_role_call_fourth===item.role_id ||
+                                                            formmodel.customize_role_call_fifth===item.role_id "
+                          v-for="(item,index) in partRoles" :key="index">{{item.role_name}}</el-radio>
               </el-radio-group>
             </el-form-item>
           </el-row>
@@ -352,10 +356,89 @@
             <el-form-item :label="this.$t('partInfo.customizeRoleCallSecond')" prop="customize_role_call_second">
               <el-radio-group v-model="formmodel.customize_role_call_second">
                 <el-radio :label="0">{{ this.$t('partInfo.onDisplay') }}</el-radio>
-                 <el-radio :label="item.role_id" :disabled="formmodel.customize_role_call_first===item.role_id" v-for="(item,index) in partRoles" :key="index">{{item.role_name}}</el-radio>
+                 <el-radio :label="item.role_id" :disabled="formmodel.customize_role_call_first===item.role_id ||
+                                                            formmodel.customize_role_call_third===item.role_id ||
+                                                            formmodel.customize_role_call_fourth===item.role_id ||
+                                                            formmodel.customize_role_call_fifth===item.role_id "
+                           v-for="(item,index) in partRoles" :key="index">{{item.role_name}}</el-radio>
               </el-radio-group>
             </el-form-item>
           </el-row>
+
+
+          <el-row>
+            <el-form-item :label="this.$t('partInfo.customizeRoleCallThird')" prop="customize_role_call_third">
+              <el-radio-group v-model="formmodel.customize_role_call_third">
+                <el-radio :label="0">{{ this.$t('partInfo.onDisplay') }}</el-radio>
+                 <el-radio :label="item.role_id" :disabled="formmodel.customize_role_call_first===item.role_id ||
+                                                            formmodel.customize_role_call_second===item.role_id ||
+                                                            formmodel.customize_role_call_fourth===item.role_id ||
+                                                            formmodel.customize_role_call_fifth===item.role_id "
+                           v-for="(item,index) in partRoles" :key="index">{{item.role_name}}</el-radio>
+              </el-radio-group>
+            </el-form-item>
+          </el-row>
+
+
+          <el-row>
+            <el-form-item :label="this.$t('partInfo.customizeRoleCallFourth')" prop="customize_role_call_fourth">
+              <el-radio-group v-model="formmodel.customize_role_call_fourth">
+                <el-radio :label="0">{{ this.$t('partInfo.onDisplay') }}</el-radio>
+                 <el-radio :label="item.role_id" :disabled="formmodel.customize_role_call_first===item.role_id ||
+                                                            formmodel.customize_role_call_second===item.role_id ||
+                                                            formmodel.customize_role_call_third===item.role_id ||
+                                                            formmodel.customize_role_call_fifth===item.role_id "
+                           v-for="(item,index) in partRoles" :key="index">{{item.role_name}}</el-radio>
+              </el-radio-group>
+            </el-form-item>
+          </el-row>
+
+
+          <el-row>
+            <el-form-item :label="this.$t('partInfo.customizeRoleCallFifth')" prop="customize_role_call_fifth">
+              <el-radio-group v-model="formmodel.customize_role_call_fifth">
+                <el-radio :label="0">{{ this.$t('partInfo.onDisplay') }}</el-radio>
+                 <el-radio :label="item.role_id" :disabled="formmodel.customize_role_call_first===item.role_id ||
+                                                            formmodel.customize_role_call_second===item.role_id ||
+                                                            formmodel.customize_role_call_third===item.role_id ||
+                                                            formmodel.customize_role_call_fourth===item.role_id "
+                           v-for="(item,index) in partRoles" :key="index">{{item.role_name}}</el-radio>
+              </el-radio-group>
+            </el-form-item>
+          </el-row>
+
+          <el-row>
+            <el-col :span="8">
+              <el-form-item :label="this.$t('partInfo.customizeHospitalCallFirst')">
+                <el-input v-model="formmodel.customize_hospital_call_first_name" :label="this.$t('partInfo.customizeHospitalCallFirstName')" :maxlength="15" :placeholder="this.$t('partInfo.inputName')">
+                  <el-select v-model="formmodel.customize_hospital_call_first" filterable slot="prepend" :placeholder="this.$t('action.choice')">
+                    <el-option v-for="(item,index) in otherHostDevice" :key="index" :label="item.name" :value="item.id" />
+                  </el-select>
+                </el-input>
+              </el-form-item>
+            </el-col>
+
+            <el-col :span="8">
+              <el-form-item :label="this.$t('partInfo.customizeHospitalCallSecond')">
+                <el-input v-model="formmodel.customize_hospital_call_second_name" :label="this.$t('partInfo.customizeHospitalCallSecondName')" :maxlength="15" :placeholder="this.$t('partInfo.inputName')">
+                  <el-select v-model="formmodel.customize_hospital_call_second" filterable slot="prepend" :placeholder="this.$t('action.choice')">
+                    <el-option v-for="(item,index) in otherHostDevice" :key="index" :label="item.name" :value="item.id" />
+                  </el-select>
+                </el-input>
+              </el-form-item>
+            </el-col>
+
+            <el-col :span="8">
+              <el-form-item :label="this.$t('partInfo.customizeHospitalCallThird')">
+                <el-input v-model="formmodel.customize_hospital_call_third_name" :label="this.$t('partInfo.customizeHospitalCallThirdName')" :maxlength="15" :placeholder="this.$t('partInfo.inputName')">
+                  <el-select v-model="formmodel.customize_hospital_call_third" filterable slot="prepend" :placeholder="this.$t('action.choice')">
+                    <el-option v-for="(item,index) in otherHostDevice" :key="index" :label="item.name" :value="item.id" />
+                  </el-select>
+                </el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+
           <el-row>
             <el-col :span="8">
               <el-form-item :label="this.$t('partInfo.doctorTitle')">
@@ -432,6 +515,7 @@ import Storage from '@/utils/storage'
 import {bindDeviceTransAudio, init485Device, initData, initDeviceList} from '@/api/initialize'
 import * as API_Clerk from '@/api/ncs_clerk'
 import * as API_SystemConfig from '@/api/ncs_systemconfig'
+import * as API_Device from '@/api/ncs_device'
 export default {
   name: 'PartInfoEdit',
   props: {
@@ -458,7 +542,8 @@ export default {
       partRoles: [],
       systemConfig: {},
       formmodelAdmin: {},
-      noMember: true
+      noMember: true,
+      otherHostDevice: []
     }
   },
   async mounted() {
@@ -467,6 +552,7 @@ export default {
     this.getPartInfo()
     this.getPartents()
     this.getRoles({ page_size: 200, page_no: 1, fixedCondition: ' shop_id = -1 and role_name<>"护士"', sort: ' role_id', dir: 'desc' })
+    this.getOtherHostDevice(this.$store.getters.partId)
   },
   methods: {
     getPartInfo() {
@@ -517,6 +603,9 @@ export default {
                 communication_mode_mobile: 1,
                 customize_role_call_first: 0,
                 customize_role_call_second: 0,
+                customize_role_call_third: 0,
+                customize_role_call_fourth: 0,
+                customize_role_call_fifth: 0,
                 auto_accept: 0,
                 door_nurse_title: '呼叫护士',
                 door_nurse_valid: 1,
@@ -677,6 +766,15 @@ export default {
         member_name: '',
         member_password: ''
       }
+    },
+    getOtherHostDevice(part_id) {
+      console.log("111111111")
+      const _this = this
+      API_Device.getOtherHostDevice(part_id).then(r => {
+        _this.otherHostDevice = r
+      })
+      this.otherHostDevice = _this.otherHostDevice
+      console.log("this.otherHostDevice", this.otherHostDevice)
     }
   }
 }